kerryb-amazon-ec2 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +265 -0
- data/LICENSE +66 -0
- data/README.rdoc +322 -0
- data/Rakefile +35 -0
- data/bin/ec2-gem-example.rb +67 -0
- data/bin/ec2sh +62 -0
- data/bin/setup.rb +25 -0
- data/lib/EC2/availability_zones.rb +41 -0
- data/lib/EC2/console.rb +44 -0
- data/lib/EC2/elastic_ips.rb +153 -0
- data/lib/EC2/exceptions.rb +147 -0
- data/lib/EC2/image_attributes.rb +166 -0
- data/lib/EC2/images.rb +134 -0
- data/lib/EC2/instances.rb +213 -0
- data/lib/EC2/keypairs.rb +94 -0
- data/lib/EC2/products.rb +43 -0
- data/lib/EC2/responses.rb +64 -0
- data/lib/EC2/security_groups.rb +232 -0
- data/lib/EC2/snapshots.rb +94 -0
- data/lib/EC2/volumes.rb +170 -0
- data/lib/EC2.rb +270 -0
- data/test/test_EC2.rb +68 -0
- data/test/test_EC2_availability_zones.rb +49 -0
- data/test/test_EC2_console.rb +54 -0
- data/test/test_EC2_elastic_ips.rb +144 -0
- data/test/test_EC2_image_attributes.rb +238 -0
- data/test/test_EC2_images.rb +197 -0
- data/test/test_EC2_instances.rb +336 -0
- data/test/test_EC2_keypairs.rb +123 -0
- data/test/test_EC2_products.rb +48 -0
- data/test/test_EC2_responses.rb +52 -0
- data/test/test_EC2_s3_xmlsimple.rb +80 -0
- data/test/test_EC2_security_groups.rb +205 -0
- data/test/test_EC2_snapshots.rb +83 -0
- data/test/test_EC2_volumes.rb +142 -0
- data/test/test_helper.rb +19 -0
- metadata +120 -0
data/Rakefile
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake/gempackagetask'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'rake/rdoctask'
|
5
|
+
|
6
|
+
# read the contents of the gemspec, eval it, and assign it to 'spec'
|
7
|
+
# this lets us maintain all gemspec info in one place. Nice and DRY.
|
8
|
+
spec = eval(IO.read("amazon-ec2.gemspec"))
|
9
|
+
|
10
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
11
|
+
pkg.gem_spec = spec
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Package and then install the gem locally"
|
15
|
+
task :install => [:package] do
|
16
|
+
sh %{sudo gem install pkg/#{GEM}-#{VER}}
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Package and then install the gem locally omitting documentation"
|
20
|
+
task :install_nodoc => [:package] do
|
21
|
+
sh %{sudo gem install --no-ri --no-rdoc pkg/#{GEM}-#{VER}}
|
22
|
+
end
|
23
|
+
|
24
|
+
Rake::TestTask.new do |t|
|
25
|
+
t.libs << "test"
|
26
|
+
t.test_files = FileList['test/test*.rb']
|
27
|
+
t.verbose = true
|
28
|
+
end
|
29
|
+
|
30
|
+
Rake::RDocTask.new do |rd|
|
31
|
+
rd.main = "README.rdoc"
|
32
|
+
rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
|
33
|
+
rd.rdoc_dir = 'doc'
|
34
|
+
rd.options = spec.rdoc_options
|
35
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Amazon Web Services EC2 Query API Ruby library
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: amazon-ec2
|
6
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
7
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
10
|
+
#++
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require File.dirname(__FILE__) + '/../lib/EC2'
|
14
|
+
require 'pp'
|
15
|
+
|
16
|
+
# pull these from the local shell environment variables set in ~/.bash_login
|
17
|
+
# or using appropriate methods specific to your login shell.
|
18
|
+
#
|
19
|
+
# e.g. in ~/.bash_login
|
20
|
+
#
|
21
|
+
# # For amazon-ec2 and amazon s3 ruby gems
|
22
|
+
# export AMAZON_ACCESS_KEY_ID="FOO"
|
23
|
+
# export AMAZON_SECRET_ACCESS_KEY="BAR"
|
24
|
+
|
25
|
+
ACCESS_KEY_ID = ENV['AMAZON_ACCESS_KEY_ID']
|
26
|
+
SECRET_ACCESS_KEY = ENV['AMAZON_SECRET_ACCESS_KEY']
|
27
|
+
|
28
|
+
if ACCESS_KEY_ID.nil? || ACCESS_KEY_ID.empty?
|
29
|
+
puts "Error : You must add the shell environment variables AMAZON_ACCESS_KEY_ID and AMAZON_SECRET_ACCESS_KEY before calling #{$0}!"
|
30
|
+
exit
|
31
|
+
end
|
32
|
+
|
33
|
+
# us-east-1.ec2.amazonaws.com == ec2.amazonaws.com
|
34
|
+
# eu-west-1.ec2.amazonaws.com for the european region
|
35
|
+
# test different servers by running something like:
|
36
|
+
# export EC2_URL='https://ec2.amazonaws.com';./bin/ec2-gem-example.rb
|
37
|
+
if ENV['EC2_URL']
|
38
|
+
ec2 = EC2::Base.new( :access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY, :server => URI.parse(ENV['EC2_URL']).host )
|
39
|
+
else
|
40
|
+
# default server is US ec2.amazonaws.com
|
41
|
+
ec2 = EC2::Base.new( :access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY )
|
42
|
+
end
|
43
|
+
|
44
|
+
puts "----- ec2.methods.sort -----"
|
45
|
+
p ec2.methods.sort
|
46
|
+
|
47
|
+
puts "----- listing images owned by 'amazon' -----"
|
48
|
+
ec2.describe_images(:owner_id => "amazon").imagesSet.item.each do |image|
|
49
|
+
image.keys.each do |key|
|
50
|
+
puts "#{key} => #{image[key]}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
puts "----- listing all running instances -----"
|
55
|
+
pp ec2.describe_instances()
|
56
|
+
|
57
|
+
puts "----- creating a security group -----"
|
58
|
+
pp ec2.create_security_group(:group_name => "ec2-example-rb-test-group", :group_description => "ec-example.rb test group description.")
|
59
|
+
|
60
|
+
puts "----- listing security groups -----"
|
61
|
+
pp ec2.describe_security_groups()
|
62
|
+
|
63
|
+
puts "----- deleting a security group -----"
|
64
|
+
pp ec2.delete_security_group(:group_name => "ec2-example-rb-test-group")
|
65
|
+
|
66
|
+
puts "----- listing my keypairs (verbose mode) -----"
|
67
|
+
pp ec2.describe_keypairs()
|
data/bin/ec2sh
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Amazon Web Services EC2 Query API Ruby library
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: amazon-ec2
|
6
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
7
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
10
|
+
#++
|
11
|
+
|
12
|
+
# CREDITS : Credit for this bit of shameful ripoff coolness
|
13
|
+
# goes to Marcel Molina and his AWS::S3 gem. Thanks!
|
14
|
+
|
15
|
+
# Usage : running this starts up an irb session and
|
16
|
+
# sets up the connection to EC2 as a class variable called
|
17
|
+
# '@ec2'. So just do something like the following on the
|
18
|
+
# shell command line:
|
19
|
+
|
20
|
+
# macbook-pro:~ glenn$ ec2sh
|
21
|
+
# >> @ec2.describe_images
|
22
|
+
# => [#<EC2::Item image_location...
|
23
|
+
|
24
|
+
ec2_lib = File.dirname(__FILE__) + '/../lib/EC2'
|
25
|
+
setup = File.dirname(__FILE__) + '/setup'
|
26
|
+
irb_name = RUBY_PLATFORM =~ /mswin32/ ? 'irb.bat' : 'irb'
|
27
|
+
|
28
|
+
if ( ENV['AMAZON_ACCESS_KEY_ID'] && ENV['AMAZON_SECRET_ACCESS_KEY'] )
|
29
|
+
|
30
|
+
welcome_message = <<-MESSAGE
|
31
|
+
|
32
|
+
'ec2sh' usage :
|
33
|
+
This is an interactive 'irb' command shell that allows you to use all
|
34
|
+
commands available to the amazon-ec2 gem. You'll find this to be a
|
35
|
+
great tool to help you debug issues and practice running commands
|
36
|
+
against the live EC2 servers prior to putting them in your code.
|
37
|
+
|
38
|
+
The EC2 connection is wired to the class instance '@ec2'. Make method calls
|
39
|
+
on this to execute commands on EC2. Adding a #to_s
|
40
|
+
at the end of any command should give you a full String representation of the
|
41
|
+
response.
|
42
|
+
|
43
|
+
Examples to try:
|
44
|
+
|
45
|
+
returns : all ec2 public methods
|
46
|
+
>> @ec2.methods.sort
|
47
|
+
|
48
|
+
returns : a string representation of ALL images
|
49
|
+
>> @ec2.describe_images.to_s
|
50
|
+
|
51
|
+
returns : an Array of EC2::Response objects, each an EC2 image and its data
|
52
|
+
>> @ec2.describe_images.imagesSet.item
|
53
|
+
>> @ec2.describe_images.imagesSet.item[0] (an OpenStruct of a single item in that array)
|
54
|
+
>> @ec2.describe_images.imagesSet.item[0].to_s (a String representation of that OpenStruct item)
|
55
|
+
|
56
|
+
MESSAGE
|
57
|
+
|
58
|
+
puts welcome_message
|
59
|
+
exec "#{irb_name} -r #{ec2_lib} -r #{setup} --simple-prompt"
|
60
|
+
else
|
61
|
+
puts "You must define AMAZON_ACCESS_KEY_ID and AMAZON_SECRET_ACCESS_KEY as shell environment variables before running #{$0}!"
|
62
|
+
end
|
data/bin/setup.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Amazon Web Services EC2 Query API Ruby library
|
4
|
+
#
|
5
|
+
# Ruby Gem Name:: amazon-ec2
|
6
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
7
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
10
|
+
#++
|
11
|
+
|
12
|
+
if ENV['AMAZON_ACCESS_KEY_ID'] && ENV['AMAZON_SECRET_ACCESS_KEY']
|
13
|
+
opts = {
|
14
|
+
:access_key_id => ENV['AMAZON_ACCESS_KEY_ID'],
|
15
|
+
:secret_access_key => ENV['AMAZON_SECRET_ACCESS_KEY']
|
16
|
+
}
|
17
|
+
if ENV['EC2_URL']
|
18
|
+
opts[:server] = URI.parse(ENV['EC2_URL']).host
|
19
|
+
end
|
20
|
+
@ec2 = EC2::Base.new(opts)
|
21
|
+
end
|
22
|
+
|
23
|
+
puts "EC2 Server: #{opts[:server]}"
|
24
|
+
|
25
|
+
include EC2
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#--
|
2
|
+
# Amazon Web Services EC2 Query API Ruby library
|
3
|
+
#
|
4
|
+
# Ruby Gem Name:: amazon-ec2
|
5
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
6
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
7
|
+
# License:: Distributes under the same terms as Ruby
|
8
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
9
|
+
#++
|
10
|
+
|
11
|
+
module EC2
|
12
|
+
|
13
|
+
class Base
|
14
|
+
|
15
|
+
#Amazon Developer Guide Docs:
|
16
|
+
#
|
17
|
+
# The DescribeAvailabilityZones operation describes availability zones that are currently
|
18
|
+
# available to the account and their states.
|
19
|
+
#
|
20
|
+
# An optional list of zone names can be passed.
|
21
|
+
#
|
22
|
+
#Required Arguments:
|
23
|
+
#
|
24
|
+
# none
|
25
|
+
#
|
26
|
+
#Optional Arguments:
|
27
|
+
#
|
28
|
+
# :zone_name => Array (default : [])
|
29
|
+
#
|
30
|
+
|
31
|
+
def describe_availability_zones( options = {} )
|
32
|
+
|
33
|
+
options = { :zone_name => [] }.merge(options)
|
34
|
+
|
35
|
+
params = pathlist("ZoneName", options[:zone_name] )
|
36
|
+
|
37
|
+
return response_generator(:action => "DescribeAvailabilityZones", :params => params)
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/EC2/console.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
#--
|
2
|
+
# Amazon Web Services EC2 Query API Ruby library
|
3
|
+
#
|
4
|
+
# Ruby Gem Name:: amazon-ec2
|
5
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
6
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
7
|
+
# License:: Distributes under the same terms as Ruby
|
8
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
9
|
+
#++
|
10
|
+
|
11
|
+
module EC2
|
12
|
+
|
13
|
+
class Base
|
14
|
+
|
15
|
+
#Amazon Developer Guide Docs:
|
16
|
+
#
|
17
|
+
# The GetConsoleOutput operation retrieves console output that has been posted for the specified instance.
|
18
|
+
#
|
19
|
+
# Instance console output is buffered and posted shortly after instance boot, reboot and once the instance
|
20
|
+
# is terminated. Only the most recent 64 KB of posted output is available. Console output is available for
|
21
|
+
# at least 1 hour after the most recent post.
|
22
|
+
#
|
23
|
+
#Required Arguments:
|
24
|
+
#
|
25
|
+
# :instance_id => String (default : "")
|
26
|
+
#
|
27
|
+
#Optional Arguments:
|
28
|
+
#
|
29
|
+
# none
|
30
|
+
#
|
31
|
+
def get_console_output( options ={} )
|
32
|
+
|
33
|
+
options = {:instance_id => ""}.merge(options)
|
34
|
+
|
35
|
+
raise ArgumentError, "No instance ID provided" if options[:instance_id].nil? || options[:instance_id].empty?
|
36
|
+
|
37
|
+
params = { "InstanceId" => options[:instance_id] }
|
38
|
+
|
39
|
+
return response_generator(:action => "GetConsoleOutput", :params => params)
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,153 @@
|
|
1
|
+
#--
|
2
|
+
# Amazon Web Services EC2 Query API Ruby library
|
3
|
+
#
|
4
|
+
# Ruby Gem Name:: amazon-ec2
|
5
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
6
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
7
|
+
# License:: Distributes under the same terms as Ruby
|
8
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
9
|
+
#++
|
10
|
+
|
11
|
+
module EC2
|
12
|
+
|
13
|
+
class Base
|
14
|
+
|
15
|
+
|
16
|
+
#Amazon Developer Guide Docs:
|
17
|
+
#
|
18
|
+
# The AllocateAddress operation acquires an elastic IP address for use with your account.
|
19
|
+
#
|
20
|
+
#Required Arguments:
|
21
|
+
#
|
22
|
+
# none
|
23
|
+
#
|
24
|
+
#Optional Arguments:
|
25
|
+
#
|
26
|
+
# none
|
27
|
+
#
|
28
|
+
def allocate_address
|
29
|
+
|
30
|
+
return response_generator(:action => "AllocateAddress")
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
#Amazon Developer Guide Docs:
|
35
|
+
#
|
36
|
+
# The DescribeAddresses operation lists elastic IP addresses assigned to your account.
|
37
|
+
#
|
38
|
+
#Required Arguments:
|
39
|
+
#
|
40
|
+
# :public_ip => Array (default : [], can be empty)
|
41
|
+
#
|
42
|
+
#Optional Arguments:
|
43
|
+
#
|
44
|
+
# none
|
45
|
+
#
|
46
|
+
def describe_addresses( options = {} )
|
47
|
+
|
48
|
+
options = { :public_ip => [] }.merge(options)
|
49
|
+
|
50
|
+
params = pathlist("PublicIp", options[:public_ip])
|
51
|
+
|
52
|
+
return response_generator(:action => "DescribeAddresses", :params => params)
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
#Amazon Developer Guide Docs:
|
57
|
+
#
|
58
|
+
# The ReleaseAddress operation releases an elastic IP address associated with your account.
|
59
|
+
#
|
60
|
+
# If you run this operation on an elastic IP address that is already released, the address
|
61
|
+
# might be assigned to another account which will cause Amazon EC2 to return an error.
|
62
|
+
#
|
63
|
+
# Note : Releasing an IP address automatically disassociates it from any instance
|
64
|
+
# with which it is associated. For more information, see DisassociateAddress.
|
65
|
+
#
|
66
|
+
# Important! After releasing an elastic IP address, it is released to the IP
|
67
|
+
# address pool and might no longer be available to your account. Make sure
|
68
|
+
# to update your DNS records and any servers or devices that communicate
|
69
|
+
# with the address.
|
70
|
+
#
|
71
|
+
#Required Arguments:
|
72
|
+
#
|
73
|
+
# :public_ip => String (default : '')
|
74
|
+
#
|
75
|
+
#Optional Arguments:
|
76
|
+
#
|
77
|
+
# none
|
78
|
+
#
|
79
|
+
def release_address( options = {} )
|
80
|
+
|
81
|
+
options = { :public_ip => '' }.merge(options)
|
82
|
+
|
83
|
+
raise ArgumentError, "No ':public_ip' provided" if options[:public_ip].nil? || options[:public_ip].empty?
|
84
|
+
|
85
|
+
params = { "PublicIp" => options[:public_ip] }
|
86
|
+
|
87
|
+
return response_generator(:action => "ReleaseAddress", :params => params)
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
#Amazon Developer Guide Docs:
|
92
|
+
#
|
93
|
+
# The AssociateAddress operation associates an elastic IP address with an instance.
|
94
|
+
#
|
95
|
+
# If the IP address is currently assigned to another instance, the IP address
|
96
|
+
# is assigned to the new instance. This is an idempotent operation. If you enter
|
97
|
+
# it more than once, Amazon EC2 does not return an error.
|
98
|
+
#
|
99
|
+
#Required Arguments:
|
100
|
+
#
|
101
|
+
# :instance_id => String (default : '')
|
102
|
+
# :public_ip => String (default : '')
|
103
|
+
#
|
104
|
+
#Optional Arguments:
|
105
|
+
#
|
106
|
+
# none
|
107
|
+
#
|
108
|
+
def associate_address( options = {} )
|
109
|
+
|
110
|
+
options = { :instance_id => '', :public_ip => '' }.merge(options)
|
111
|
+
|
112
|
+
raise ArgumentError, "No ':instance_id' provided" if options[:instance_id].nil? || options[:instance_id].empty?
|
113
|
+
raise ArgumentError, "No ':public_ip' provided" if options[:public_ip].nil? || options[:public_ip].empty?
|
114
|
+
|
115
|
+
params = {
|
116
|
+
"InstanceId" => options[:instance_id],
|
117
|
+
"PublicIp" => options[:public_ip]
|
118
|
+
}
|
119
|
+
|
120
|
+
return response_generator(:action => "AssociateAddress", :params => params)
|
121
|
+
|
122
|
+
end
|
123
|
+
|
124
|
+
#Amazon Developer Guide Docs:
|
125
|
+
#
|
126
|
+
# The DisassociateAddress operation disassociates the specified elastic IP
|
127
|
+
# address from the instance to which it is assigned. This is an idempotent
|
128
|
+
# operation. If you enter it more than once, Amazon EC2 does not return
|
129
|
+
# an error.
|
130
|
+
#
|
131
|
+
#Required Arguments:
|
132
|
+
#
|
133
|
+
# :public_ip => String (default : '')
|
134
|
+
#
|
135
|
+
#Optional Arguments:
|
136
|
+
#
|
137
|
+
# none
|
138
|
+
#
|
139
|
+
def disassociate_address( options = {} )
|
140
|
+
|
141
|
+
options = { :public_ip => '' }.merge(options)
|
142
|
+
|
143
|
+
raise ArgumentError, "No ':public_ip' provided" if options[:public_ip].nil? || options[:public_ip].empty?
|
144
|
+
|
145
|
+
params = { "PublicIp" => options[:public_ip] }
|
146
|
+
|
147
|
+
return response_generator(:action => "DisassociateAddress", :params => params)
|
148
|
+
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
#--
|
2
|
+
# Amazon Web Services EC2 Query API Ruby library
|
3
|
+
#
|
4
|
+
# Ruby Gem Name:: amazon-ec2
|
5
|
+
# Author:: Glenn Rempe (mailto:glenn@rempe.us)
|
6
|
+
# Copyright:: Copyright (c) 2007-2008 Glenn Rempe
|
7
|
+
# License:: Distributes under the same terms as Ruby
|
8
|
+
# Home:: http://github.com/grempe/amazon-ec2/tree/master
|
9
|
+
#++
|
10
|
+
|
11
|
+
module EC2
|
12
|
+
|
13
|
+
# OUR CUSTOM ERROR CODES
|
14
|
+
|
15
|
+
# All of our errors are superclassed by Error < RuntimeError
|
16
|
+
class Error < RuntimeError #:nodoc:
|
17
|
+
end
|
18
|
+
|
19
|
+
# A client side only argument error
|
20
|
+
class ArgumentError < Error #:nodoc:
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
# AWS EC2 CLIENT ERROR CODES
|
25
|
+
|
26
|
+
# AWS EC2 can throw error exceptions that contain a '.' in them.
|
27
|
+
# since we can't name an exception class with that '.' I compressed
|
28
|
+
# each class name into the non-dot version. This allows us to retain
|
29
|
+
# the granularity of the exception.
|
30
|
+
|
31
|
+
# User not authorized.
|
32
|
+
class AuthFailure < Error #:nodoc:
|
33
|
+
end
|
34
|
+
|
35
|
+
# Invalid AWS Account
|
36
|
+
class InvalidClientTokenId < Error #:nodoc:
|
37
|
+
end
|
38
|
+
|
39
|
+
# Invalid Parameters for Value
|
40
|
+
class InvalidParameterValue < Error #:nodoc:
|
41
|
+
end
|
42
|
+
|
43
|
+
# Specified AMI has an unparsable manifest.
|
44
|
+
class InvalidManifest < Error #:nodoc:
|
45
|
+
end
|
46
|
+
|
47
|
+
# Specified AMI ID is not valid.
|
48
|
+
class InvalidAMIIDMalformed < Error #:nodoc:
|
49
|
+
end
|
50
|
+
|
51
|
+
# Specified AMI ID does not exist.
|
52
|
+
class InvalidAMIIDNotFound < Error #:nodoc:
|
53
|
+
end
|
54
|
+
|
55
|
+
# Specified AMI ID has been deregistered and is no longer available.
|
56
|
+
class InvalidAMIIDUnavailable < Error #:nodoc:
|
57
|
+
end
|
58
|
+
|
59
|
+
# Specified instance ID is not valid.
|
60
|
+
class InvalidInstanceIDMalformed < Error #:nodoc:
|
61
|
+
end
|
62
|
+
|
63
|
+
# Specified instance ID does not exist.
|
64
|
+
class InvalidInstanceIDNotFound < Error #:nodoc:
|
65
|
+
end
|
66
|
+
|
67
|
+
# Specified keypair name does not exist.
|
68
|
+
class InvalidKeyPairNotFound < Error #:nodoc:
|
69
|
+
end
|
70
|
+
|
71
|
+
# Attempt to create a duplicate keypair.
|
72
|
+
class InvalidKeyPairDuplicate < Error #:nodoc:
|
73
|
+
end
|
74
|
+
|
75
|
+
# Specified group name does not exist.
|
76
|
+
class InvalidGroupNotFound < Error #:nodoc:
|
77
|
+
end
|
78
|
+
|
79
|
+
# Attempt to create a duplicate group.
|
80
|
+
class InvalidGroupDuplicate < Error #:nodoc:
|
81
|
+
end
|
82
|
+
|
83
|
+
# Specified group can not be deleted because it is in use.
|
84
|
+
class InvalidGroupInUse < Error #:nodoc:
|
85
|
+
end
|
86
|
+
|
87
|
+
# Specified group name is a reserved name.
|
88
|
+
class InvalidGroupReserved < Error #:nodoc:
|
89
|
+
end
|
90
|
+
|
91
|
+
# Attempt to authorize a permission that has already been authorized.
|
92
|
+
class InvalidPermissionDuplicate < Error #:nodoc:
|
93
|
+
end
|
94
|
+
|
95
|
+
# Specified permission is invalid.
|
96
|
+
class InvalidPermissionMalformed < Error #:nodoc:
|
97
|
+
end
|
98
|
+
|
99
|
+
# Specified reservation ID is invalid.
|
100
|
+
class InvalidReservationIDMalformed < Error #:nodoc:
|
101
|
+
end
|
102
|
+
|
103
|
+
# Specified reservation ID does not exist.
|
104
|
+
class InvalidReservationIDNotFound < Error #:nodoc:
|
105
|
+
end
|
106
|
+
|
107
|
+
# User has reached max allowed concurrent running instances.
|
108
|
+
class InstanceLimitExceeded < Error #:nodoc:
|
109
|
+
end
|
110
|
+
|
111
|
+
# An invalid set of parameters were passed as arguments
|
112
|
+
# e.g. RunInstances was called with minCount and maxCount set to 0 or minCount > maxCount.
|
113
|
+
class InvalidParameterCombination < Error #:nodoc:
|
114
|
+
end
|
115
|
+
|
116
|
+
# An unknown parameter was passed as an argument
|
117
|
+
class UnknownParameter < Error #:nodoc:
|
118
|
+
end
|
119
|
+
|
120
|
+
# The user ID is neither in the form of an AWS account ID or one
|
121
|
+
# of the special values accepted by the owner or executableBy flags
|
122
|
+
# in the DescribeImages call.
|
123
|
+
class InvalidUserIDMalformed < Error #:nodoc:
|
124
|
+
end
|
125
|
+
|
126
|
+
# The value of an item added to, or removed from, an image attribute is invalid.
|
127
|
+
class InvalidAMIAttributeItemValue < Error #:nodoc:
|
128
|
+
end
|
129
|
+
|
130
|
+
# AWS EC2 SERVER ERROR CODES
|
131
|
+
|
132
|
+
# Internal AWS EC2 Error.
|
133
|
+
class InternalError < Error #:nodoc:
|
134
|
+
end
|
135
|
+
|
136
|
+
# There are not enough available instances to satify your minimum request.
|
137
|
+
class InsufficientInstanceCapacity < Error #:nodoc:
|
138
|
+
end
|
139
|
+
|
140
|
+
# The server is overloaded and cannot handle request.
|
141
|
+
class Unavailable < Error #:nodoc:
|
142
|
+
end
|
143
|
+
|
144
|
+
class SignatureDoesNotMatch < Error #:nodoc:
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|