Class: Bosh::Director::RenderedJobTemplatesPersister
- Defined in:
- lib/bosh/director/rendered_job_templates_persister.rb
Instance Method Summary collapse
-
#initialize(blobstore) ⇒ RenderedJobTemplatesPersister
constructor
A new instance of RenderedJobTemplatesPersister.
- #persist(instance, rendered_job_templates) ⇒ Object
- #persist_without_checking(instance, rendered_job_templates) ⇒ Object
Constructor Details
#initialize(blobstore) ⇒ RenderedJobTemplatesPersister
Returns a new instance of RenderedJobTemplatesPersister.
7 8 9 |
# File 'lib/bosh/director/rendered_job_templates_persister.rb', line 7 def initialize(blobstore) @blobstore = blobstore end |
Instance Method Details
#persist(instance, rendered_job_templates) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/bosh/director/rendered_job_templates_persister.rb', line 11 def persist(instance, rendered_job_templates) archive_model = instance.model.latest_rendered_templates_archive if !archive_model || archive_model.content_sha1 != instance.configuration_hash archive_model = persist_without_checking(instance, rendered_job_templates) end instance.rendered_templates_archive = DeploymentPlan::RenderedTemplatesArchive.new( archive_model.blobstore_id, archive_model.sha1) end |
#persist_without_checking(instance, rendered_job_templates) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/bosh/director/rendered_job_templates_persister.rb', line 23 def persist_without_checking(instance, rendered_job_templates) file = Tempfile.new('compressed-rendered-job-templates') compressed_archive = CompressedRenderedJobTemplates.new(file.path) compressed_archive.write(rendered_job_templates) blobstore_id = @blobstore.create(compressed_archive.contents) instance.model.add_rendered_templates_archive( blobstore_id: blobstore_id, sha1: compressed_archive.sha1, content_sha1: instance.configuration_hash, created_at: Time.now, ) ensure file.close! end |