class Bosh::Director::KeyGenerator
Attributes
all_packages[R]
Public Instance Methods
dependency_key_from_manifest(package_name, compiled_packages)
click to toggle source
# File lib/bosh/director/key_generator.rb, line 21 def dependency_key_from_manifest(package_name, compiled_packages) @all_packages = compiled_packages package = compiled_packages.find { |package| package['name'] == package_name } raise ReleaseExistingPackageHashMismatch, "Package '#{package_name}' not found in the release manifest." if package.nil? package['dependencies'].sort.map do |dependency_name| arrayify(find_package_hash(dependency_name), all_packages.dup) end.to_json end
dependency_key_from_models(package, release_version)
click to toggle source
# File lib/bosh/director/key_generator.rb, line 4 def dependency_key_from_models(package, release_version) @all_packages = release_version.packages.map do |p| { 'name' => p.name, 'version' => p.version, 'dependencies' => p.dependency_set } end root_package_hash = {'name' => package.name, 'version' => package.version, 'dependencies' => package.dependency_set} package_hashes = PackageDependenciesManager.new(release_version).transitive_dependencies(package) root_package_hash['dependencies'].sort.map do |dependency_name| arrayify(find_package_hash(dependency_name), package_hashes.dup) end.to_json end
Private Instance Methods
arrayify(package, remaining_packages)
click to toggle source
# File lib/bosh/director/key_generator.rb, line 35 def arrayify(package, remaining_packages) remaining_packages.delete(package) [ package['name'], package['version'] ].tap do |output| if package['dependencies'] && package['dependencies'].length > 0 output << package['dependencies'].sort.map { |sub_dep| arrayify(find_package_hash(sub_dep), remaining_packages) } end output end end
find_package_hash(name)
click to toggle source
# File lib/bosh/director/key_generator.rb, line 49 def find_package_hash(name) all_packages.find { |package| package['name'] == name } end