class Bosh::Director::DeploymentPlan::Stemcell

Attributes

alias[R]
model[R]
name[R]
os[R]
version[R]

Public Class Methods

new(name_alias, name, os, version) click to toggle source
# File lib/bosh/director/deployment_plan/stemcell.rb, line 29
def initialize(name_alias, name, os, version)
  @alias = name_alias
  @name = name
  @os = os
  @version = version
  @manager = Api::StemcellManager.new
end
parse(spec) click to toggle source
# File lib/bosh/director/deployment_plan/stemcell.rb, line 12
def self.parse(spec)
  name_alias = safe_property(spec, "alias", :class => String, :optional => true)
  name = safe_property(spec, "name", :class => String, :optional => true)
  os = safe_property(spec, "os", :class => String, :optional => true)
  version = safe_property(spec, "version", :class => String)

  if name.nil? && os.nil?
    raise ValidationMissingField, "Required property 'os' or 'name' was not specified in object (#{spec})"
  end

  if !name.nil? && !os.nil?
    raise StemcellBothNameAndOS, "Properties 'os' and 'name' are both specified for stemcell, choose one. (#{spec})"
  end

  new(name_alias, name, os, version)
end

Public Instance Methods

add_stemcell_model() click to toggle source
# File lib/bosh/director/deployment_plan/stemcell.rb, line 53
def add_stemcell_model
  @model = is_using_os? ?
    @manager.find_by_os_and_version(@os, @version) :
    @manager.find_by_name_and_version(@name, @version)

  @name = @model.name
  @os = @model.operating_system
  @version = @model.version
end
bind_model(deployment_model) click to toggle source
# File lib/bosh/director/deployment_plan/stemcell.rb, line 41
def bind_model(deployment_model)
  if deployment_model.nil?
    raise DirectorError, "Deployment not bound in the deployment plan"
  end

  add_stemcell_model

  unless @model.deployments.include?(deployment_model)
    @model.add_deployment(deployment_model)
  end
end
cid() click to toggle source
# File lib/bosh/director/deployment_plan/stemcell.rb, line 67
def cid
  @model.cid
end
desc() click to toggle source
# File lib/bosh/director/deployment_plan/stemcell.rb, line 63
def desc
  @model.desc
end
id() click to toggle source
# File lib/bosh/director/deployment_plan/stemcell.rb, line 71
def id
  @model.id
end
is_using_os?() click to toggle source
# File lib/bosh/director/deployment_plan/stemcell.rb, line 37
def is_using_os?
  !@os.nil? && @name.nil?
end
spec() click to toggle source
# File lib/bosh/director/deployment_plan/stemcell.rb, line 75
def spec
  {
    "name" => @name,
    "version" => @version
  }
end