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:



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

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.



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

def model
  @model
end

#nameObject (readonly)

Returns the value of attribute name.



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

def name
  @name
end

#package_modelsObject (readonly)

Returns the value of attribute package_models.



11
12
13
# File 'lib/bosh/director/deployment_plan/template.rb', line 11

def package_models
  @package_models
end

#releaseObject (readonly)

Returns the value of attribute release.



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

def release
  @release
end

Instance Method Details

#bind_modelsvoid

This method returns an undefined value.

Looks up template model and its package models in DB



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

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)


67
68
69
# File 'lib/bosh/director/deployment_plan/template.rb', line 67

def blobstore_id
  present_model.blobstore_id
end

#download_blobString

Downloads template blob to a given path

Returns:

  • (String)

    Path to downloaded blob



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

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:



72
73
74
# File 'lib/bosh/director/deployment_plan/template.rb', line 72

def logs
  present_model.logs
end

#propertiesHash

Returns:



77
78
79
# File 'lib/bosh/director/deployment_plan/template.rb', line 77

def properties
  present_model.properties
end

#sha1String

Returns:

  • (String)


62
63
64
# File 'lib/bosh/director/deployment_plan/template.rb', line 62

def sha1
  present_model.sha1
end

#versionString

Returns:

  • (String)


57
58
59
# File 'lib/bosh/director/deployment_plan/template.rb', line 57

def version
  present_model.version
end