34: def associate_addresses
35: raise "Instance #{@argv.instid} does not exist!" unless Rudy::AWS::EC2::Instances.exists?(@option.instance)
36:
37: if @option.newaddress
38: print "Creating address... "
39: tmp = Rudy::AWS::EC2::Addresses.create
40: li "#{tmp.ipaddress}"
41: address = tmp.ipaddress
42: else
43: address = @argv.ipaddress
44: end
45:
46: raise "#{address} is not allocated to you" unless Rudy::AWS::EC2::Addresses.exists?(address)
47: raise "#{address} is already associated!" if Rudy::AWS::EC2::Addresses.associated?(address)
48:
49: instance = Rudy::AWS::EC2::Instances.get(@option.instance)
50:
51:
52:
53: instance_name = instance.dns_public
54: instance_name = instance.awsid if !instance_name || instance_name.empty?
55:
56: li "Associating #{address} to #{instance_name} (#{instance.groups.join(', ')})"
57: execute_check(:low)
58: execute_action { Rudy::AWS::EC2::Addresses.associate(address, instance.awsid) }
59: address = Rudy::AWS::EC2::Addresses.get(address)
60: print_stobject address
61: end