class Bosh::Director::CompiledReleaseManifest

Public Class Methods

new(compiled_package_group, templates, stemcell) click to toggle source
# File lib/bosh/director/compiled_release_manifest.rb, line 6
def initialize(compiled_package_group, templates, stemcell)
  @compiled_packages = compiled_package_group
  @templates = templates
  @stemcell = stemcell
end

Public Instance Methods

generate_manifest() click to toggle source
# File lib/bosh/director/compiled_release_manifest.rb, line 12
def generate_manifest
  manifest = {}

  manifest['compiled_packages'] = @compiled_packages.compiled_packages.map do |compiled_package|
    {
      'name' => compiled_package.package.name,
      'version' => compiled_package.package.version,
      'fingerprint' => compiled_package.package.fingerprint,
      'sha1' => compiled_package.sha1,
      'stemcell' => "#{@stemcell.operating_system}/#{@stemcell.version}",
      'dependencies' => get_dependencies(compiled_package),
    }
  end

  manifest['jobs'] = @templates.map do |template|
    {
      'name' => template.name,
      'version' => template.version,
      'fingerprint' => template.fingerprint,
      'sha1' => template.sha1,
    }
  end

  manifest['commit_hash'] = @compiled_packages.release_version.commit_hash
  manifest['uncommitted_changes'] = @compiled_packages.release_version.uncommitted_changes
  manifest['name'] = @compiled_packages.release_version.release.name
  manifest['version'] = @compiled_packages.release_version.version

  manifest
end
get_dependencies(compiled_package) click to toggle source
# File lib/bosh/director/compiled_release_manifest.rb, line 43
def get_dependencies(compiled_package)
  dependencies = []

  compiled_package.package.dependency_set.each do |name|
    dependencies << name
  end

  dependencies
end
logger() click to toggle source
# File lib/bosh/director/compiled_release_manifest.rb, line 60
def logger
  @logger ||= Config.logger
end
write(dest_path) click to toggle source
# File lib/bosh/director/compiled_release_manifest.rb, line 53
def write(dest_path)
  manifest = generate_manifest
  manifest_yaml = YAML.dump(manifest)
  logger.debug("release.MF contents of #{manifest['name']}/#{manifest['version']} compiled release tarball:\n " + manifest_yaml)
  File.open(dest_path, 'w') { |f| f.write(manifest_yaml) }
end