Class: Bosh::Director::Models::CompiledPackage
- Defined in:
- lib/bosh/director/models/compiled_package.rb
Class Method Summary collapse
-
.create_cache_key(package, transitive_dependencies, stemcell) ⇒ Object
Creates a ‘unique’ key to use in the global package cache.
-
.create_dependency_key(transitive_dependencies) ⇒ Object
Creates a dependency_key from a list of dependencies Input MUST include immediate & transitive dependencies.
- .generate_build_number(package, stemcell) ⇒ Object
Instance Method Summary collapse
Class Method Details
.create_cache_key(package, transitive_dependencies, stemcell) ⇒ Object
Creates a ‘unique’ key to use in the global package cache
14 15 16 17 18 |
# File 'lib/bosh/director/models/compiled_package.rb', line 14 def self.create_cache_key(package, transitive_dependencies, stemcell) dependency_fingerprints = transitive_dependencies.to_a.sort_by(&:name).map {|p| p.fingerprint } hash_input = ([package.fingerprint, stemcell.sha1]+dependency_fingerprints).join('') Digest::SHA1.hexdigest(hash_input) end |
.create_dependency_key(transitive_dependencies) ⇒ Object
Creates a dependency_key from a list of dependencies Input MUST include immediate & transitive dependencies
8 9 10 11 |
# File 'lib/bosh/director/models/compiled_package.rb', line 8 def self.create_dependency_key(transitive_dependencies) key = transitive_dependencies.to_a.sort_by(&:name).map { |p| [p.name, p.version]} Yajl::Encoder.encode(key) end |
.generate_build_number(package, stemcell) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/bosh/director/models/compiled_package.rb', line 40 def self.generate_build_number(package, stemcell) attrs = { :package_id => package.id, :stemcell_id => stemcell.id } filter(attrs).max(:build).to_i + 1 end |
Instance Method Details
#before_save ⇒ Object
26 27 28 29 30 |
# File 'lib/bosh/director/models/compiled_package.rb', line 26 def before_save self.dependency_key_sha1 = Digest::SHA1.hexdigest(self.dependency_key) super end |
#name ⇒ Object
32 33 34 |
# File 'lib/bosh/director/models/compiled_package.rb', line 32 def name package.name end |
#validate ⇒ Object
20 21 22 23 24 |
# File 'lib/bosh/director/models/compiled_package.rb', line 20 def validate validates_presence [:package_id, :stemcell_id, :sha1, :blobstore_id, :dependency_key] validates_unique [:package_id, :stemcell_id, :dependency_key] validates_unique [:package_id, :stemcell_id, :build] end |
#version ⇒ Object
36 37 38 |
# File 'lib/bosh/director/models/compiled_package.rb', line 36 def version package.version end |