Class: Bosh::Director::DeploymentPlan::Template

Inherits:
Object
  • Object
show all
Defined in:
lib/bosh/director/deployment_plan/template.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(release, name) ⇒ Template

Returns a new instance of Template.

Parameters:



13
14
15
16
17
18
19
# File 'lib/bosh/director/deployment_plan/template.rb', line 13

def initialize(release, name)
  @release = release
  @name = name
  @model = nil
  @package_models = []
  @logger = Config.logger
end

Instance Attribute Details

#modelObject (readonly)

Returns the value of attribute model.



8
9
10
# File 'lib/bosh/director/deployment_plan/template.rb', line 8

def model
  @model
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/bosh/director/deployment_plan/template.rb', line 5

def name
  @name
end

#package_modelsObject (readonly)

Returns the value of attribute package_models.



9
10
11
# File 'lib/bosh/director/deployment_plan/template.rb', line 9

def package_models
  @package_models
end

#releaseObject (readonly)

Returns the value of attribute release.



6
7
8
# File 'lib/bosh/director/deployment_plan/template.rb', line 6

def release
  @release
end

Instance Method Details

#bind_existing_model(model) ⇒ Object



35
36
37
# File 'lib/bosh/director/deployment_plan/template.rb', line 35

def bind_existing_model(model)
  @model = model
end

#bind_modelsvoid

This method returns an undefined value.

Looks up template model and its package models in DB



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/bosh/director/deployment_plan/template.rb', line 23

def bind_models
  @model = @release.get_template_model_by_name(@name)

  if @model.nil?
    raise DeploymentUnknownTemplate, "Can't find template `#{@name}'"
  end

  @package_models = @model.package_names.map do |name|
    @release.get_package_model_by_name(name)
  end
end

#blobstore_idString

Returns:

  • (String)


69
70
71
# File 'lib/bosh/director/deployment_plan/template.rb', line 69

def blobstore_id
  present_model.blobstore_id
end

#download_blobString

Downloads template blob to a given path

Returns:

  • (String)

    Path to downloaded blob



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/bosh/director/deployment_plan/template.rb', line 41

def download_blob
  uuid = SecureRandom.uuid
  path = File.join(Dir.tmpdir, "template-#{uuid}")

  @logger.debug("Downloading template `#{@name}' (#{blobstore_id})...")
  t1 = Time.now

  File.open(path, "w") do |f|
    App.instance.blobstores.blobstore.get(blobstore_id, f)
  end

  @logger.debug("Template `#{@name}' downloaded to #{path} " +
                "(took #{Time.now - t1}s)")

  path
end

#logsArray

Returns:



74
75
76
# File 'lib/bosh/director/deployment_plan/template.rb', line 74

def logs
  present_model.logs
end

#propertiesHash

Returns:



79
80
81
# File 'lib/bosh/director/deployment_plan/template.rb', line 79

def properties
  present_model.properties
end

return [Array]



89
90
91
# File 'lib/bosh/director/deployment_plan/template.rb', line 89

def provided_links
  present_model.provides.to_a.map { |l| TemplateLink.parse(l) }
end

return [Array]



84
85
86
# File 'lib/bosh/director/deployment_plan/template.rb', line 84

def required_links
  present_model.requires.to_a.map { |l| TemplateLink.parse(l) }
end

#sha1String

Returns:

  • (String)


64
65
66
# File 'lib/bosh/director/deployment_plan/template.rb', line 64

def sha1
  present_model.sha1
end

#versionString

Returns:

  • (String)


59
60
61
# File 'lib/bosh/director/deployment_plan/template.rb', line 59

def version
  present_model.version
end