Sha256: e7b1962e789a563811ca2724efe885106df3a22661d75a7236f372352cd78856

Contents?: true

Size: 1.88 KB

Versions: 12

Compression:

Stored size: 1.88 KB

Contents

module Bosh::Cloudfoundry
  # 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).
  class ReleaseVersionCpi
    attr_reader :release_version
    attr_reader :cpi

    def self.for_cpi(release_version, cpi)
      ReleaseVersionCpi.new(release_version, cpi)
    end

    def self.latest_for_cpi(cpi)
      release_version = ReleaseVersion.latest_version_number
      ReleaseVersionCpi.new(release_version, cpi)
    end

    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

    def template_dir
      File.join(release_version.template_dir, cpi)
    end

    def spec_path
      File.join(template_dir, "spec")
    end

    def spec
      @spec ||= YAML.load_file(spec_path)
    end

    def available_deployment_sizes
      spec["deployment_sizes"]
    end

    def default_deployment_size
      spec["default_deployment_size"]
    end

    def release_name
      release_version.release_name
    end

    def release_version_number
      release_version.version_number
    end

    # Attributes & their values that can be changed via setters & deployment re-deployed successfully
    def mutable_attributes
      release_version.mutable_attributes
    end

    # Attributes & their values that are not to be changed over time
    def immutable_attributes
      release_version.immutable_attributes
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
bosh-cloudfoundry-0.7.6 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.5 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.4 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.3 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.2 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.1 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.0 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.0.alpha.11 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.0.alpha.10 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.0.alpha.9 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.0.alpha.8 lib/bosh/cloudfoundry/release_version_cpi.rb
bosh-cloudfoundry-0.7.0.alpha.7 lib/bosh/cloudfoundry/release_version_cpi.rb