class Stacco::Layer

Attributes

config[R]
name[R]
stack[R]

Public Class Methods

load(stack, name) click to toggle source
# File lib/stacco/layer.rb, line 4
def self.load(stack, name)
  self.new(stack, name, Stacco::Resources::LayerTemplates[name])
end
new(stack, name, config) click to toggle source
# 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

Public Instance Methods

condition_definitions() click to toggle source
# File lib/stacco/layer.rb, line 58
def condition_definitions
  @config['Conditions'] || {}
end
enabled?() click to toggle source
# File lib/stacco/layer.rb, line 15
def enabled?
  @stack.enabled_layer_names.include? self.name
end
full_name() click to toggle source
# File lib/stacco/layer.rb, line 33
def full_name
  [@stack.name, self.name].join('/')
end
has_live_resources?() click to toggle source
# File lib/stacco/layer.rb, line 41
def has_live_resources?
  not self.resource_summaries.empty?
end
inspect() click to toggle source
# File lib/stacco/layer.rb, line 37
def inspect
  "#<layer #{self.full_name}: #{self.resource_definitions.length} resource(s) defined>"
end
output_definitions() click to toggle source
# File lib/stacco/layer.rb, line 71
def output_definitions
  @config['Outputs'] || {}
end
parameter_definitions() click to toggle source
# File lib/stacco/layer.rb, line 75
def parameter_definitions
  @config['Parameters'] || {}
end
resource_definitions() click to toggle source
# File lib/stacco/layer.rb, line 62
def resource_definitions
  @config['Resources'] || {}
end
resource_summaries() click to toggle source
# 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?() click to toggle source
# File lib/stacco/layer.rb, line 25
def service?
  not @is_task
end
state() click to toggle source
# 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?() click to toggle source
# File lib/stacco/layer.rb, line 21
def task?
  @is_task
end
to_s() click to toggle source
# File lib/stacco/layer.rb, line 29
def to_s
  [('task' if @is_task), @name].compact.join('-')
end