class Opsicle::ManageableStack

Constants

STOPPABLE_STATES

Attributes

cli[RW]
eips[RW]
id[RW]
opsworks_adapter[RW]
stack[RW]
vpc_id[RW]

Public Class Methods

new(stack_id, opsworks_adapter, cli=nil) click to toggle source
# File lib/opsicle/manageable_stack.rb, line 7
def initialize(stack_id, opsworks_adapter, cli=nil)
  self.id = stack_id
  self.opsworks_adapter = opsworks_adapter
  self.cli = cli
  self.stack = @opsworks_adapter.stack(id)
  self.vpc_id = self.stack.vpc_id
end

Public Instance Methods

deleteable_instances(layer) click to toggle source
# File lib/opsicle/manageable_stack.rb, line 41
def deleteable_instances(layer)
  instances.select do |instance|
    instance.auto_scaling_type.nil? &&
    instance.status == "stopped" &&
    instance.layer_ids.include?(layer.layer_id)
  end
end
instances() click to toggle source
# File lib/opsicle/manageable_stack.rb, line 37
def instances
  @opsworks_adapter.instances_by_stack(id)
end
stoppable_instances(layer) click to toggle source
# File lib/opsicle/manageable_stack.rb, line 49
def stoppable_instances(layer)
  instances.select do |instance|
    instance.elastic_ip.nil? &&
    STOPPABLE_STATES.include?(instance.status) &&
    instance.layer_ids.include?(layer.layer_id)
  end
end
transfer_eip(moveable_eip, target_instance_id) click to toggle source
# File lib/opsicle/manageable_stack.rb, line 33
def transfer_eip(moveable_eip, target_instance_id)
  @opsworks_adapter.associate_elastic_ip(moveable_eip[:ip_address], target_instance_id)
end