Class: Cloudspin::Stack::InstanceConfiguration

Inherits:
Object
  • Object
show all
Defined in:
lib/cloudspin/stack/instance_configuration.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stack_definition) ⇒ InstanceConfiguration

Returns a new instance of InstanceConfiguration.



15
16
17
18
19
20
21
# File 'lib/cloudspin/stack/instance_configuration.rb', line 15

def initialize(stack_definition)
  @stack_definition = stack_definition
  @stack_name = stack_definition.name
  @instance_values = {}
  @parameter_values = {}
  @resource_values = {}
end

Instance Attribute Details

#instance_valuesObject (readonly)

Returns the value of attribute instance_values.



11
12
13
# File 'lib/cloudspin/stack/instance_configuration.rb', line 11

def instance_values
  @instance_values
end

#parameter_valuesObject (readonly)

Returns the value of attribute parameter_values.



12
13
14
# File 'lib/cloudspin/stack/instance_configuration.rb', line 12

def parameter_values
  @parameter_values
end

#resource_valuesObject (readonly)

Returns the value of attribute resource_values.



13
14
15
# File 'lib/cloudspin/stack/instance_configuration.rb', line 13

def resource_values
  @resource_values
end

#stack_definitionObject (readonly)

Returns the value of attribute stack_definition.



8
9
10
# File 'lib/cloudspin/stack/instance_configuration.rb', line 8

def stack_definition
  @stack_definition
end

#stack_nameObject (readonly)

Returns the value of attribute stack_name.



9
10
11
# File 'lib/cloudspin/stack/instance_configuration.rb', line 9

def stack_name
  @stack_name
end

Class Method Details

.from_files(stack_definition, *configuration_files) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/cloudspin/stack/instance_configuration.rb', line 23

def self.from_files(stack_definition, *configuration_files)
  config = self.new(stack_definition)
  configuration_files.flatten.each { |config_file|
    config.add_values(load_file(config_file))
  }
  config
end

.load_file(yaml_file) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/cloudspin/stack/instance_configuration.rb', line 31

def self.load_file(yaml_file)
  if File.exists?(yaml_file)
    YAML.load_file(yaml_file) || {}
  else
    {}
  end
end

Instance Method Details

#add_values(values) ⇒ Object



39
40
41
42
43
44
# File 'lib/cloudspin/stack/instance_configuration.rb', line 39

def add_values(values)
  @instance_values.merge!(values['instance']) if values['instance']
  @parameter_values.merge!(values['parameters']) if values['parameters']
  @resource_values.merge!(values['resources']) if values['resources']
  self
end

#instance_identifierObject



46
47
48
49
50
51
52
# File 'lib/cloudspin/stack/instance_configuration.rb', line 46

def instance_identifier
  if instance_values['identifier']
    instance_values['identifier']
  else
    stack_name
  end
end

#to_sObject



54
55
56
57
58
59
60
# File 'lib/cloudspin/stack/instance_configuration.rb', line 54

def to_s
  {
    'instance' => instance_values,
    'parameters' => parameter_values,
    'resources' => resource_values
  }.to_s
end