Class: SmallWonder::Application

Inherits:
Object
  • Object
show all
Defined in:
lib/small_wonder/application.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(node_name, application_name, opts = {}) ⇒ Application

Returns a new instance of Application.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/small_wonder/application.rb', line 14

def initialize(node_name, application_name, opts = {})
  @node_name = node_name
  @application_name = application_name

  @config_data = Chef::DataBagItem.load(SmallWonder::Config.databag, application_name).raw_data

  data = Chef::Node.load(node_name)

  unless data[SmallWonder::Config.application_deployment_attribute]
    create_application_deployment_attribute(node_name, application_name)
    data = Chef::Node.load(node_name)
  end

  unless data[SmallWonder::Config.application_deployment_attribute].has_key?(application_name)
    create_application_deployment_attribute_child(node_name, application_name)
    data = Chef::Node.load(node_name)
  end

  unless data[SmallWonder::Config.application_deployment_attribute][application_name]
    update_application_data(node_name, application_name, "version", "0")
    update_application_data(node_name, application_name, "status", "new")
  end

  # set version to application version if we have one
  @version = opts[:version] || nil

  # set status to status before we update for deploy
  @status = opts[:status] || get_status(node_name, application_name)

  # save the data back to the chef node
  update_application_data(node_name, application_name, "status", "initialized")

  # save metadata back to chef
  if opts[:metadata]
    update_application_data(node_name, application_name, "data", opts[:metadata])
  end
end

Instance Attribute Details

#application_nameObject (readonly)

Returns the value of attribute application_name.



12
13
14
# File 'lib/small_wonder/application.rb', line 12

def application_name
  @application_name
end

#config_dataObject (readonly)

Returns the value of attribute config_data.



12
13
14
# File 'lib/small_wonder/application.rb', line 12

def config_data
  @config_data
end

#node_nameObject (readonly)

Returns the value of attribute node_name.



12
13
14
# File 'lib/small_wonder/application.rb', line 12

def node_name
  @node_name
end

#statusObject

In small wonder an application object has the following constituent parts: node name application name version status databag-based config data



11
12
13
# File 'lib/small_wonder/application.rb', line 11

def status
  @status
end

#versionObject

In small wonder an application object has the following constituent parts: node name application name version status databag-based config data



11
12
13
# File 'lib/small_wonder/application.rb', line 11

def version
  @version
end