Class: Stacco::Layer
- Inherits:
-
Object
- Object
- Stacco::Layer
- Defined in:
- lib/stacco/layer.rb
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#stack ⇒ Object
readonly
Returns the value of attribute stack.
Class Method Summary collapse
Instance Method Summary collapse
- #condition_definitions ⇒ Object
- #enabled? ⇒ Boolean
- #full_name ⇒ Object
- #has_live_resources? ⇒ Boolean
-
#initialize(stack, name, config) ⇒ Layer
constructor
A new instance of Layer.
- #inspect ⇒ Object
- #output_definitions ⇒ Object
- #parameter_definitions ⇒ Object
- #resource_definitions ⇒ Object
- #resource_summaries ⇒ Object
- #service? ⇒ Boolean
- #state ⇒ Object
- #task? ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize(stack, name, config) ⇒ Layer
Returns a new instance of Layer.
8 9 10 11 12 13 |
# File 'lib/stacco/layer.rb', line 8 def initialize(stack, name, config) @stack = stack @name = name.gsub(/^task-/, '') @is_task = (not name.scan(/^task-/).empty?) @config = config end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
19 20 21 |
# File 'lib/stacco/layer.rb', line 19 def config @config end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
19 20 21 |
# File 'lib/stacco/layer.rb', line 19 def name @name end |
#stack ⇒ Object (readonly)
Returns the value of attribute stack.
19 20 21 |
# File 'lib/stacco/layer.rb', line 19 def stack @stack end |
Class Method Details
.load(stack, name) ⇒ Object
4 5 6 |
# File 'lib/stacco/layer.rb', line 4 def self.load(stack, name) self.new(stack, name, Stacco::Resources::LayerTemplates[name]) end |
Instance Method Details
#condition_definitions ⇒ Object
58 59 60 |
# File 'lib/stacco/layer.rb', line 58 def condition_definitions @config['Conditions'] || {} end |
#enabled? ⇒ Boolean
15 16 17 |
# File 'lib/stacco/layer.rb', line 15 def enabled? @stack.enabled_layer_names.include? self.name end |
#full_name ⇒ Object
33 34 35 |
# File 'lib/stacco/layer.rb', line 33 def full_name [@stack.name, self.name].join('/') end |
#has_live_resources? ⇒ Boolean
41 42 43 |
# File 'lib/stacco/layer.rb', line 41 def has_live_resources? not self.resource_summaries.empty? end |
#inspect ⇒ Object
37 38 39 |
# File 'lib/stacco/layer.rb', line 37 def inspect "#<layer #{self.full_name}: #{self.resource_definitions.length} resource(s) defined>" end |
#output_definitions ⇒ Object
71 72 73 |
# File 'lib/stacco/layer.rb', line 71 def output_definitions @config['Outputs'] || {} end |
#parameter_definitions ⇒ Object
75 76 77 |
# File 'lib/stacco/layer.rb', line 75 def parameter_definitions @config['Parameters'] || {} end |
#resource_definitions ⇒ Object
62 63 64 |
# File 'lib/stacco/layer.rb', line 62 def resource_definitions @config['Resources'] || {} end |
#resource_summaries ⇒ Object
66 67 68 69 |
# File 'lib/stacco/layer.rb', line 66 def resource_summaries provided_resource_names = self.resource_definitions.keys @stack.resource_summaries.find_all{ |rsum| provided_resource_names.include? rsum[:logical_resource_id] } end |
#service? ⇒ Boolean
25 26 27 |
# File 'lib/stacco/layer.rb', line 25 def service? not @is_task end |
#state ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/stacco/layer.rb', line 45 def state case [self.enabled?, self.has_live_resources?] when [false, false] :down when [false, true] :zombie when [true, false] :queued when [true, true] :healthy end end |
#task? ⇒ Boolean
21 22 23 |
# File 'lib/stacco/layer.rb', line 21 def task? @is_task end |
#to_s ⇒ Object
29 30 31 |
# File 'lib/stacco/layer.rb', line 29 def to_s [('task' if @is_task), @name].compact.join('-') end |