Class: RightScale::CloudApi::AWS::AS::Manager

Inherits:
Manager
  • Object
show all
Defined in:
lib/cloud/aws/as/manager.rb

Overview

Amazon AutoScaling (AS) compatible manager (thread safe).

Examples:

require "right_aws_api"

# Create a manager to access Auto Scaling.
as = RightScale::CloudApi::AWS::AS::Manager::new(key, secret, 'https://autoscaling.us-east-1.amazonaws.com')

# Get a description of each Auto Scaling instance in the InstanceIds list.
as.DescribeAutoScalingInstances #=>
  {"DescribeAutoScalingGroupsResponse"=>
    {"@xmlns"=>"http://autoscaling.amazonaws.com/doc/2011-01-01/",
     "DescribeAutoScalingGroupsResult"=>
      {"AutoScalingGroups"=>
        {"member"=>
          {"SuspendedProcesses"=>nil,
           "Tags"=>nil,
           "AutoScalingGroupName"=>"CentOS.5.1-c-array",
           "HealthCheckType"=>"EC2",
           "CreatedTime"=>"2009-05-28T09:31:21.133Z",
           "EnabledMetrics"=>nil,
           "LaunchConfigurationName"=>"CentOS.5.1-c",
           "Instances"=>nil,
           "DesiredCapacity"=>"0",
           "AvailabilityZones"=>{"member"=>"us-east-1a"},
           "LoadBalancerNames"=>nil,
           "MinSize"=>"0",
           "VPCZoneIdentifier"=>nil,
           "HealthCheckGracePeriod"=>"0",
           "DefaultCooldown"=>"0",
           "AutoScalingGroupARN"=>
            "arn:aws:autoscaling:us-east-1:82...25:autoScalingGroup:47..5f-0d65-46cb-8a0c-0..000:autoScalingGroupName/CentOS.5.1-c-array",
           "TerminationPolicies"=>{"member"=>"Default"},
           "MaxSize"=>"3"}}},
     "ResponseMetadata"=>{"RequestId"=>"04022bd4-4f5d-11e2-b437-318e12cd4660"}}}
# Get only records you need:
as.DescribeAutoScalingInstances( 'AutoScalingGroupNames.member' => ["CentOS.5.1-c-array", "CentOS.5.2-d-array"])
# Set the max number of records to bre returned:
as.DescribeAutoScalingInstances('MaxRecords' => 3)
# Create  a new Auto Scaling group
as.CreateAutoScalingGroup('AutoScalingGroupName' => 'my-test-asgroup',
                          'DesiredCapacity' => 5,
                          'PlacementGroup' => 'my-cool-group')

See Also: