Class: Bosh::Cloudfoundry::ReleaseVersionCpi
- Inherits:
-
Object
- Object
- Bosh::Cloudfoundry::ReleaseVersionCpi
- Defined in:
- lib/bosh/cloudfoundry/release_version_cpi.rb
Overview
This project should support all known versions of Cloud Foundry back to v132. v132 was the first release of Cloud Foundry v2. The project also supports the different CPIs that are supported by bosh.
This class represents an available release version for a specific CPI. From this class you can navigate to one or more ReleaseVersionCpiSizes (deployment sizes).
Instance Attribute Summary collapse
-
#cpi ⇒ Object
readonly
Returns the value of attribute cpi.
-
#release_version ⇒ Object
readonly
Returns the value of attribute release_version.
Class Method Summary collapse
Instance Method Summary collapse
- #available_deployment_sizes ⇒ Object
- #default_deployment_size ⇒ Object
-
#immutable_attributes ⇒ Object
Attributes & their values that are not to be changed over time.
-
#initialize(release_version, cpi) ⇒ ReleaseVersionCpi
constructor
A new instance of ReleaseVersionCpi.
-
#mutable_attributes ⇒ Object
Attributes & their values that can be changed via setters & deployment re-deployed successfully.
- #release_name ⇒ Object
- #release_version_number ⇒ Object
- #spec ⇒ Object
- #spec_path ⇒ Object
- #template_dir ⇒ Object
Constructor Details
#initialize(release_version, cpi) ⇒ ReleaseVersionCpi
Returns a new instance of ReleaseVersionCpi.
21 22 23 24 25 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 21 def initialize(release_version, cpi) release_version = ReleaseVersion.for_version(release_version) unless release_version.is_a?(ReleaseVersion) raise "CPI #{cpi} not available for version #{release_version.version_number}" unless release_version.valid_cpi?(cpi) @release_version, @cpi = release_version, cpi end |
Instance Attribute Details
#cpi ⇒ Object (readonly)
Returns the value of attribute cpi.
10 11 12 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 10 def cpi @cpi end |
#release_version ⇒ Object (readonly)
Returns the value of attribute release_version.
9 10 11 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 9 def release_version @release_version end |
Class Method Details
.for_cpi(release_version, cpi) ⇒ Object
12 13 14 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 12 def self.for_cpi(release_version, cpi) ReleaseVersionCpi.new(release_version, cpi) end |
.latest_for_cpi(cpi) ⇒ Object
16 17 18 19 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 16 def self.latest_for_cpi(cpi) release_version = ReleaseVersion.latest_version_number ReleaseVersionCpi.new(release_version, cpi) end |
Instance Method Details
#available_deployment_sizes ⇒ Object
39 40 41 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 39 def available_deployment_sizes spec["deployment_sizes"] end |
#default_deployment_size ⇒ Object
43 44 45 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 43 def default_deployment_size spec["default_deployment_size"] end |
#immutable_attributes ⇒ Object
Attributes & their values that are not to be changed over time
61 62 63 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 61 def immutable_attributes release_version.immutable_attributes end |
#mutable_attributes ⇒ Object
Attributes & their values that can be changed via setters & deployment re-deployed successfully
56 57 58 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 56 def mutable_attributes release_version.mutable_attributes end |
#release_name ⇒ Object
47 48 49 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 47 def release_name release_version.release_name end |
#release_version_number ⇒ Object
51 52 53 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 51 def release_version_number release_version.version_number end |
#spec ⇒ Object
35 36 37 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 35 def spec @spec ||= YAML.load_file(spec_path) end |
#spec_path ⇒ Object
31 32 33 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 31 def spec_path File.join(template_dir, "spec") end |
#template_dir ⇒ Object
27 28 29 |
# File 'lib/bosh/cloudfoundry/release_version_cpi.rb', line 27 def template_dir File.join(release_version.template_dir, cpi) end |