class Bosh::Deployer::MicroboshJobInstance

Attributes

blobstore_options[R]
logger[R]
spec[R]

Public Class Methods

new(blobstore_ip, mbus, logger) click to toggle source
# File lib/bosh/deployer/microbosh_job_instance.rb, line 9
def initialize(blobstore_ip, mbus, logger)
  @logger = logger

  uri = URI.parse(mbus)
  user, password = uri.userinfo.split(':', 2)
  uri.userinfo = ''
  uri.host = blobstore_ip
  uri.path = '/blobs'
  @blobstore_options = {
    'endpoint' => uri.to_s,
    'user' => user,
    'password' => password,
    'ssl_no_verify' => true,
  }
end

Public Instance Methods

render_templates(spec) click to toggle source
# File lib/bosh/deployer/microbosh_job_instance.rb, line 25
def render_templates(spec)
  blobstore = Bosh::Blobstore::DavBlobstoreClient.new(blobstore_options)

  templates = spec['job']['templates'].map do |template|
    JobTemplate.new(template, blobstore)
  end

  job_template_loader =
    Bosh::Director::Core::Templates::JobTemplateLoader.new(logger)
  job_instance_renderer =
    Bosh::Director::Core::Templates::JobInstanceRenderer.new(templates, job_template_loader)

  rendered_job_instance = job_instance_renderer.render(spec)
  rendered_templates_archive = rendered_job_instance.persist(blobstore)

  spec.merge(
    'rendered_templates_archive' => rendered_templates_archive.spec,
    'configuration_hash' => rendered_job_instance.configuration_hash,
  )
rescue JobTemplate::FetchError
  logger.debug('skipping rendering since the agent appears to be ruby')
  spec
end