class AWS::CloudFormation::Stack

Public Class Methods

new(name, options = {}) click to toggle source
Calls superclass method
# File lib/aws-cloudformation-stack.rb, line 10
def initialize name, options = {}
  @name = name
  
  @as = AWS::AutoScaling.new
  @cw = AWS::CloudWatch.new
  @ec2 = AWS::EC2.new
  @elb = AWS::ELB.new
  @iam = AWS::IAM.new
  @rds = AWS::RDS.new
  @s3 = AWS::S3.new

  super
end

Public Instance Methods

autoscaling_group(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 24
def autoscaling_group(logical_id)
  id = autoscaling_group_ids[logical_id.to_sym]
  @as.groups[id] if id
end
autoscaling_group_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 33
def autoscaling_group_ids
  get_resources "AWS::AutoScaling::AutoScalingGroup" 
end
autoscaling_groups() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 29
def autoscaling_groups
  autoscaling_group_ids.inject({}) { |hash, (k,v)| hash[k] = autoscaling_group(k); hash }
end
bucket(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 37
def bucket(logical_id)
  id = bucket_ids[logical_id.to_sym]
  @s3.buckets[id] if id
end
bucket_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 46
def bucket_ids
  get_resources "AWS::S3::Bucket"
end
buckets() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 42
def buckets
  bucket_ids.inject({}) { |hash, (k,v)| hash[k] = bucket(k); hash }
end
cloudwatch_alarm(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 50
def cloudwatch_alarm(logical_id)
  id = cloudwatch_alarm_ids[logical_id.to_sym]
  @cw.alarms[id] if id
end
cloudwatch_alarm_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 59
def cloudwatch_alarm_ids
  get_resources "AWS::CloudWatch::Alarm"
end
cloudwatch_alarms() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 55
def cloudwatch_alarms
  cloudwatch_alarm_ids.inject({}) { |hash, (k,v)| hash[k] = cloudwatch_alarm(k); hash }
end
db_instance(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 63
def db_instance(logical_id)
  AWS::RDS.new.db_instances[db_instance_ids[logical_id.to_sym]]
end
db_instance_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 71
def db_instance_ids
  get_resources "AWS::RDS::DBInstance"
end
db_instances() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 67
def db_instances
  db_instance_ids.inject({}) { |hash, (k,v)| hash[k] = db_instance(k); hash }
end
eip(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 75
def eip(logical_id)
  id = eip_ids[logical_id.to_sym]
  @ec2.elastic_ips[id] if id
end
Also aliased as: elastic_ip
eip_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 88
def eip_ids
  get_resources "AWS::EC2::EIP"
end
eips() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 82
def eips
  eip_ids.inject({}) { |hash, (k,v)| hash[k] = eip(k) }
end
Also aliased as: elastic_ips
elastic_ip(logical_id)
Alias for: eip
elastic_ips()
Alias for: eips
elb(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 92
def elb(logical_id)
  id = elb_ids[logical_id.to_sym]
  @elb.load_balancers[id] if id
end
elb_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 101
def elb_ids
  get_resources "AWS::ElasticLoadBalancing::LoadBalancer"
end
elbs() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 97
def elbs
  elb_ids.inject({}) { |hash, (k,v)| hash[k] = elb(k); hash }
end
iam_access_key(user_logical_id, key_logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 105
def iam_access_key(user_logical_id, key_logical_id)
  id = iam_access_key_ids[key_logical_id.to_sym]
  user = iam_user(user_logical_id)
  if (id && user)
    user.access_keys[id]
  else
    nil
  end
end
iam_access_key_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 115
def iam_access_key_ids
  get_resources "AWS::IAM::AccessKey"
end
iam_group(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 119
def iam_group(logical_id)
  id = iam_group_ids[logical_id.to_sym]
  @iam.groups[id] if id
end
iam_group_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 128
def iam_group_ids
  get_resources "AWS::IAM::Group"
end
iam_groups() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 124
def iam_groups
  iam_group_ids.inject({}) { |hash, (k,v)| hash[k] = iam_group(k); hash }
end
iam_policies()
Alias for: iam_policy
iam_policy() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 132
def iam_policy
 puts "use Stack.iam_group#policies or Stack.iam_user#policies"
end
Also aliased as: iam_policies
iam_policy_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 138
def iam_policy_ids
  get_resources "AWS::IAM::Policy"
end
iam_user(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 142
def iam_user(logical_id)
  id = iam_user_ids[logical_id.to_sym]
  @iam.users[id] if id
end
iam_user_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 151
def iam_user_ids
  get_resources "AWS::IAM::User"
end
iam_users() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 147
def iam_users
  iam_user_ids.inject({}) { |hash, (k,v)| hash[k] = iam_user(k); hash }
end
igw(logical_id)
Alias for: internet_gateway
instance(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 155
def instance(logical_id)
  id = instance_ids[logical_id.to_sym]
  @ec2.instances[id] if id
end
instance_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 164
def instance_ids
  get_resources "AWS::EC2::Instance"
end
instances() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 160
def instances
  instance_ids.inject({}) { |hash, (k,v)| hash[k] = instance(k); hash }
end
internet_gateway(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 168
def internet_gateway(logical_id)
  id = internet_gateway_ids[logical_id.to_sym]
  @ec2.internet_gateways[id] if id
end
Also aliased as: igw
internet_gateway_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 175
def internet_gateway_ids
  get_resources "AWS::EC2::InternetGateway"
end
launch_config(logical_id)
launch_configs()
launch_configuration(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 179
def launch_configuration(logical_id)
  id = launch_configuration_ids[logical_id.to_sym]
  @as.launch_configurations[id] if id
end
Also aliased as: launch_config
launch_configuration_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 192
def launch_configuration_ids
  get_resources "AWS::AutoScaling::LaunchConfiguration"
end
launch_configurations() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 186
def launch_configurations
  launch_configuration_ids.inject({}) { |hash, (k,v)| hash[k] = launch_configuration(k); hash }
end
Also aliased as: launch_configs
network_interface(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 196
def network_interface(logical_id)
  id = network_interface_ids[logical_id.to_sym]
  @ec2.network_interfaces[id] if id
end
Also aliased as: nic
network_interface_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 209
def network_interface_ids
  get_resources "AWS::EC2::NetworkInterface"
end
network_interfaces() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 203
def network_interfaces
  network_interface_ids.inject({}) { |hash, (k,v)| hash[k] = network_interface(k); hash }
end
Also aliased as: nics
nic(logical_id)
Alias for: network_interface
nics()
Alias for: network_interfaces
route_table(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 213
def route_table(logical_id)
  id = route_table_ids[logical_id.to_sym]
  @ec2.route_tables[id] if id
end
route_table_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 218
def route_table_ids
  get_resources "AWS::EC2::RouteTable"
end
scaling_policies(as_group_logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 233
def scaling_policies(as_group_logical_id)
  scaling_policy_ids.inject({}) { |hash, (k,v)| hash[k] = scaling_policy(as_group_logical_id,k.to_s); hash }
end
scaling_policy(as_group_logical_id, policy_logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 222
def scaling_policy(as_group_logical_id, policy_logical_id)
  group = autoscaling_group(as_group_logical_id)
  id = scaling_policy_ids[policy_logical_id.to_sym]
  policy = id.split('/')[-1] unless id.nil?
  if (group && policy)
    AWS::AutoScaling::ScalingPolicy.new(group, policy)
  else
    nil
  end
end
scaling_policy_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 237
def scaling_policy_ids
  get_resources "AWS::AutoScaling::ScalingPolicy"
end
security_group(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 241
def security_group(logical_id)
  id = security_group_ids[logical_id.to_sym]
  @ec2.security_groups.filter('group-id',id).first if id
end
security_group_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 250
def security_group_ids
  get_resources "AWS::EC2::SecurityGroup"
end
security_groups() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 246
def security_groups
  security_group_ids.inject({}) { |hash, (k,v)| hash[k] = security_group(k); hash }
end
subnet(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 254
def subnet(logical_id)
  id = subnet_ids[logical_id.to_sym]
  @ec2.subnets[id] if id
end
subnet_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 263
def subnet_ids
  get_resources "AWS::EC2::Subnet"
end
subnets() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 259
def subnets
  subnet_ids.inject({}) { |hash, (k,v)| hash[k] = subnet(k); hash }
end
volume(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 267
def volume(logical_id)
  id = volume_ids[logical_id.to_sym]
  @ec2.volumes[id] if id
end
volume_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 276
def volume_ids
  get_resources "AWS::EC2::Volume"
end
volumes() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 272
def volumes
  volume_ids.inject({}) { |hash, (k,v)| hash[k] = volume(k); hash }
end
vpc(logical_id) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 280
def vpc(logical_id)
  id = vpc_ids[logical_id.to_sym]
  @ec2.vpcs[id] if id
end
vpc_ids() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 289
def vpc_ids
  get_resources "AWS::EC2::VPC"
end
vpcs() click to toggle source
# File lib/aws-cloudformation-stack.rb, line 285
def vpcs
  vpc_ids.inject({}) { |hash, (k,v)| hash[k] = vpc(k); hash }
end

Private Instance Methods

get_resources(resource_type) click to toggle source
# File lib/aws-cloudformation-stack.rb, line 295
def get_resources(resource_type)
  resource_summaries.select { |rs| rs[:resource_type] == "#{resource_type}" }.inject({}) { |hash, r| hash[r[:logical_resource_id].to_sym] = r[:physical_resource_id]; hash }
end