1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/aws/models/auto_scaling/instance.rb
2013-01-07 20:53:24 +00:00

60 lines
1.5 KiB
Ruby

require 'fog/core/model'
module Fog
module AWS
class AutoScaling
class Instance < Fog::Model
identity :id, :aliases => 'InstanceId'
attribute :auto_scaling_group_name, :aliases => 'AutoScalingGroupName'
attribute :availability_zone, :aliases => 'AvailabilityZone'
attribute :health_status, :aliases => 'HealthStatus'
attribute :launch_configuration_name, :aliases => 'LaunchConfigurationName'
attribute :life_cycle_state, :aliases => 'LifecycleState'
def initialize(attributes={})
super
end
def group
service.groups.get(attributes['AutoScalingGroupName'])
end
def configuration
service.configurations.get(attributes['LaunchConfigurationName'])
end
def set_health(health_status, options)
requires :id
service.set_instance_health(health_status, id, options)
reload
end
def terminate(should_decrement_desired_capacity)
requires :id
service.terminate_instance_in_auto_scaling_group(id, should_decrement_desired_capacity)
reload
end
def healthy?
health_status == 'HEALTHY'
end
def ready?
life_cycle_state == 'InService'
end
def reload
super
self
end
#def destroy
# requires :id
# service.delete_auto_scaling_group(id)
#end
end
end
end
end