class Bosh::Director::Core::Templates::RenderedJobInstance

Public Class Methods

new(job_templates) click to toggle source
# File lib/bosh/director/core/templates/rendered_job_instance.rb, line 9
def initialize(job_templates)
  @job_templates = job_templates
end

Public Instance Methods

configuration_hash() click to toggle source
# File lib/bosh/director/core/templates/rendered_job_instance.rb, line 13
def configuration_hash
  instance_digest = Digest::SHA1.new

  @job_templates.sort { |x, y| x.name <=> y.name }.each do |rendered_job_template|
    bound_templates = ''
    bound_templates << rendered_job_template.monit
    bound_templates << rendered_job_template.name

    rendered_job_template.templates.sort { |x, y| x.src_name <=> y.src_name }.each do |template_file|
      bound_templates << template_file.contents
      bound_templates << template_file.dest_name
    end

    instance_digest << bound_templates
  end

  instance_digest.hexdigest
end
persist(blobstore) click to toggle source
# File lib/bosh/director/core/templates/rendered_job_instance.rb, line 38
def persist(blobstore)
  file = Tempfile.new('compressed-rendered-job-templates')

  compressed_archive = CompressedRenderedJobTemplates.new(file.path)
  compressed_archive.write(@job_templates)

  blobstore_id = blobstore.create(compressed_archive.contents)
  RenderedTemplatesArchive.new(blobstore_id, compressed_archive.sha1)
ensure
  file.close!
end
template_hashes() click to toggle source
# File lib/bosh/director/core/templates/rendered_job_instance.rb, line 32
def template_hashes
  @job_templates.reduce({}) do |h, rendered_job_template|
    h.merge(rendered_job_template.name => rendered_job_template.template_hash)
  end
end