Skip to content

Instantly share code, notes, and snippets.

@charleskirk
Created October 22, 2012 18:24
Show Gist options
  • Save charleskirk/3933190 to your computer and use it in GitHub Desktop.
Save charleskirk/3933190 to your computer and use it in GitHub Desktop.
Rubez
def save_aws_data
@elb = AWS::ELB.new(
:access_key_id => AWS_CONFIG['access_key_id'],
:secret_access_key => AWS_CONFIG['secret_access_key'])
instances_downloaded = Array.new
@elb.load_balancers.inject({}) do |a, b|
@lb = LoadBalancer.create(:name => b.name, :canonical_hosted_zone_name_id => b.canonical_hosted_zone_name_id, :dns_name => b.dns_name)
@elb.load_balancers[b.name].instances.inject({}) do |m, i|
if !instances_downloaded.include?(i.id)
instances_downloaded << i.id
@lb.instances.create(:name => i.id, :ami_launch_index => i.ami_launch_index, :client_token => i.client_token,
:architecture => i.architecture, :dns_name => i.dns_name, :hypervisor => i.hypervisor, :image_id => i.image_id,
:instance_type => i.instance_type, :ip_address => i.ip_address, :key_name => i.key_name, :launch_time => i.launch_time,
:platform => i.platform, :private_dns_name => i.private_dns_name, :private_ip_address => i.private_ip_address,
:ramdisk_id => i.ramdisk_id, :root_device_name => i.root_device_name, :root_device_type => i.root_device_type,
:status => i.status, :status_code => i.status_code, :user_data => i.user_data )
else
@lb.instances << Instance.where(:name => i.id)
@lb.save
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment