fog-aws 0.1.2 → 0.2.0
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.
- checksums.yaml +4 -4
- data/README.md +51 -2
- data/lib/fog/aws.rb +29 -27
- data/lib/fog/aws/elb.rb +0 -1
- data/lib/fog/aws/iam.rb +4 -2
- data/lib/fog/aws/kms.rb +180 -0
- data/lib/fog/aws/mock.rb +13 -1
- data/lib/fog/aws/models/compute/flavors.rb +40 -0
- data/lib/fog/aws/models/elasticache/cluster.rb +1 -0
- data/lib/fog/aws/models/kms/key.rb +34 -0
- data/lib/fog/aws/models/kms/keys.rb +29 -0
- data/lib/fog/aws/models/rds/server.rb +33 -26
- data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +1 -1
- data/lib/fog/aws/parsers/elasticache/cache_cluster_parser.rb +15 -3
- data/lib/fog/aws/parsers/kms/describe_key.rb +34 -0
- data/lib/fog/aws/parsers/kms/list_keys.rb +38 -0
- data/lib/fog/aws/parsers/rds/db_parser.rb +7 -14
- data/lib/fog/aws/rds.rb +1 -1
- data/lib/fog/aws/requests/compute/describe_spot_price_history.rb +59 -0
- data/lib/fog/aws/requests/compute/request_spot_instances.rb +80 -0
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +36 -5
- data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +33 -5
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +15 -2
- data/lib/fog/aws/requests/iam/create_role.rb +5 -5
- data/lib/fog/aws/requests/kms/create_key.rb +62 -0
- data/lib/fog/aws/requests/kms/describe_key.rb +27 -0
- data/lib/fog/aws/requests/kms/list_keys.rb +82 -0
- data/lib/fog/aws/requests/rds/create_db_instance.rb +33 -38
- data/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb +7 -2
- data/lib/fog/aws/requests/rds/promote_read_replica.rb +7 -6
- data/lib/fog/aws/requests/sns/subscribe.rb +1 -1
- data/lib/fog/aws/storage.rb +6 -3
- data/lib/fog/aws/version.rb +1 -1
- data/tests/helper.rb +2 -2
- data/tests/models/rds/helper.rb +10 -3
- data/tests/models/rds/server_tests.rb +7 -4
- data/tests/requests/compute/spot_instance_tests.rb +2 -2
- data/tests/requests/compute/spot_price_history_tests.rb +0 -2
- data/tests/requests/kms/helper.rb +27 -0
- data/tests/requests/kms/key_tests.rb +23 -0
- data/tests/requests/rds/helper.rb +52 -46
- data/tests/requests/rds/instance_tests.rb +16 -12
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20c52aa88f06a8177fe9d43fa20e7ebd444a9a64
|
4
|
+
data.tar.gz: e1616bbc74d55c0e431606b0cb11f91bab3fb68a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77794deeef38718df73253ac8d9088691e64272ed14bc7180fa7c237e88c67e02b0c45f8c426e5311587cab8fe6523b7f287d752d08ee108180cded5ba54f1c8
|
7
|
+
data.tar.gz: e767e0eeefed0b8806a24633ca77f7acf5fb307f9e795f9afeef5a52893bf52fbee64ae70dc3d3766e405f86e8fadbd5f8c5286d4a3e53fc8bf13202180ba73a
|
data/README.md
CHANGED
@@ -25,11 +25,60 @@ Or install it yourself as:
|
|
25
25
|
|
26
26
|
## Usage
|
27
27
|
|
28
|
-
|
28
|
+
Before you can use fog-aws, you must require it in your application:
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
require 'fog/aws'
|
32
|
+
```
|
33
|
+
|
34
|
+
Since it's a bad practice to have your credentials in source code, you should load them from default fog configuration file: ```~/.fog```. This file could look like this:
|
35
|
+
|
36
|
+
```
|
37
|
+
default:
|
38
|
+
aws_access_key_id: <YOUR_ACCESS_KEY_ID>
|
39
|
+
aws_secret_access_key: <YOUR_SECRET_ACCESS_KEY>
|
40
|
+
```
|
41
|
+
|
42
|
+
### Connecting to EC2 service
|
43
|
+
```ruby
|
44
|
+
ec2 = Fog::Compute.new :provider => 'AWS', :region => 'us-west-2'
|
45
|
+
```
|
46
|
+
|
47
|
+
You can review all the requests available with this service using ```#requests``` method:
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
ec2.requests # => [:allocate_address, :assign_private_ip_addresses, :associate_address, ...]
|
51
|
+
```
|
52
|
+
|
53
|
+
### Launch an EC2 on-demand instance:
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
response = ec2.run_instances(
|
57
|
+
"ami-23ebb513",
|
58
|
+
1,
|
59
|
+
1,
|
60
|
+
"InstanceType" => "t1.micro",
|
61
|
+
"SecurityGroup" => "ssh",
|
62
|
+
"KeyName" => "miguel"
|
63
|
+
)
|
64
|
+
instance_id = response.body["instancesSet"].first["instanceId"] # => "i-02db5af4"
|
65
|
+
instance = ec2.servers.get(instance_id)
|
66
|
+
instance.wait_for { ready? }
|
67
|
+
puts instance.public_ip_address # => "356.300.501.20"
|
68
|
+
```
|
69
|
+
|
70
|
+
### Terminate an EC2 instance:
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
instance = ec2.servers.get("i-02db5af4")
|
74
|
+
instance.destroy
|
75
|
+
```
|
76
|
+
|
77
|
+
Fog::AWS is more than EC2 since it supports many services provided by AWS. The best way to learn and to know about how many services are supported is to take a look at the source code. To review the tests directory and to play with the library in ```irb``` can be very helpful resources as well.
|
29
78
|
|
30
79
|
## Contributing
|
31
80
|
|
32
|
-
1. Fork it ( https://github.com/
|
81
|
+
1. Fork it ( https://github.com/fog/fog-aws/fork )
|
33
82
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
34
83
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
35
84
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/lib/fog/aws.rb
CHANGED
@@ -3,9 +3,6 @@ require 'fog/xml'
|
|
3
3
|
require 'fog/json'
|
4
4
|
|
5
5
|
require File.expand_path('../aws/version', __FILE__)
|
6
|
-
require File.expand_path('../aws/credential_fetcher', __FILE__)
|
7
|
-
require File.expand_path('../aws/region_methods', __FILE__)
|
8
|
-
require File.expand_path('../aws/signaturev4', __FILE__)
|
9
6
|
|
10
7
|
module Fog
|
11
8
|
module CDN
|
@@ -23,57 +20,62 @@ module Fog
|
|
23
20
|
module Storage
|
24
21
|
autoload :AWS, File.expand_path('../aws/storage', __FILE__)
|
25
22
|
end
|
26
|
-
|
23
|
+
|
27
24
|
module AWS
|
28
25
|
extend Fog::Provider
|
29
26
|
|
30
|
-
autoload :
|
27
|
+
autoload :CredentialFetcher, File.expand_path('../aws/credential_fetcher', __FILE__)
|
31
28
|
autoload :Errors, File.expand_path('../aws/errors', __FILE__)
|
29
|
+
autoload :Mock, File.expand_path('../aws/mock', __FILE__)
|
30
|
+
autoload :RegionMethods, File.expand_path('../aws/region_methods', __FILE__)
|
31
|
+
autoload :SignatureV4, File.expand_path('../aws/signaturev4', __FILE__)
|
32
32
|
|
33
33
|
# Services
|
34
|
-
autoload :AutoScaling,
|
34
|
+
autoload :AutoScaling, File.expand_path('../aws/auto_scaling', __FILE__)
|
35
|
+
autoload :CloudFormation, File.expand_path('../aws/cloud_formation', __FILE__)
|
36
|
+
autoload :CloudWatch, File.expand_path('../aws/cloud_watch', __FILE__)
|
37
|
+
autoload :DataPipeline, File.expand_path('../aws/data_pipeline', __FILE__)
|
38
|
+
autoload :DynamoDB, File.expand_path('../aws/dynamodb', __FILE__)
|
39
|
+
autoload :ELB, File.expand_path('../aws/elb', __FILE__)
|
40
|
+
autoload :EMR, File.expand_path('../aws/emr', __FILE__)
|
35
41
|
autoload :ElasticBeanstalk, File.expand_path('../aws/beanstalk', __FILE__)
|
36
|
-
autoload :
|
37
|
-
autoload :
|
38
|
-
autoload :
|
39
|
-
autoload :
|
40
|
-
autoload :
|
41
|
-
autoload :
|
42
|
-
autoload :
|
43
|
-
autoload :
|
44
|
-
autoload :
|
45
|
-
autoload :
|
46
|
-
autoload :
|
47
|
-
autoload :
|
48
|
-
autoload :SES, File.expand_path('../aws/ses', __FILE__)
|
49
|
-
autoload :SimpleDB, File.expand_path('../aws/simpledb', __FILE__)
|
50
|
-
autoload :SNS, File.expand_path('../aws/sns', __FILE__)
|
51
|
-
autoload :SQS, File.expand_path('../aws/sqs', __FILE__)
|
52
|
-
autoload :STS, File.expand_path('../aws/sts', __FILE__)
|
42
|
+
autoload :Elasticache, File.expand_path('../aws/elasticache', __FILE__)
|
43
|
+
autoload :Federation, File.expand_path('../aws/federation', __FILE__)
|
44
|
+
autoload :Glacier, File.expand_path('../aws/glacier', __FILE__)
|
45
|
+
autoload :IAM, File.expand_path('../aws/iam', __FILE__)
|
46
|
+
autoload :KMS, File.expand_path('../aws/kms', __FILE__)
|
47
|
+
autoload :RDS, File.expand_path('../aws/rds', __FILE__)
|
48
|
+
autoload :Redshift, File.expand_path('../aws/redshift', __FILE__)
|
49
|
+
autoload :SES, File.expand_path('../aws/ses', __FILE__)
|
50
|
+
autoload :SNS, File.expand_path('../aws/sns', __FILE__)
|
51
|
+
autoload :SQS, File.expand_path('../aws/sqs', __FILE__)
|
52
|
+
autoload :STS, File.expand_path('../aws/sts', __FILE__)
|
53
|
+
autoload :SimpleDB, File.expand_path('../aws/simpledb', __FILE__)
|
53
54
|
|
54
55
|
service(:auto_scaling, 'AutoScaling')
|
55
56
|
service(:beanstalk, 'ElasticBeanstalk')
|
56
57
|
service(:cdn, 'CDN')
|
57
|
-
service(:compute, 'Compute')
|
58
58
|
service(:cloud_formation, 'CloudFormation')
|
59
59
|
service(:cloud_watch, 'CloudWatch')
|
60
|
+
service(:compute, 'Compute')
|
60
61
|
service(:data_pipeline, 'DataPipeline')
|
61
|
-
service(:dynamodb, 'DynamoDB')
|
62
62
|
service(:dns, 'DNS')
|
63
|
+
service(:dynamodb, 'DynamoDB')
|
63
64
|
service(:elasticache, 'Elasticache')
|
64
65
|
service(:elb, 'ELB')
|
65
66
|
service(:emr, 'EMR')
|
66
67
|
service(:federation, 'Federation')
|
67
68
|
service(:glacier, 'Glacier')
|
68
69
|
service(:iam, 'IAM')
|
70
|
+
service(:kms, 'KMS')
|
69
71
|
service(:rds, 'RDS')
|
70
72
|
service(:redshift, 'Redshift')
|
71
73
|
service(:ses, 'SES')
|
72
74
|
service(:simpledb, 'SimpleDB')
|
73
75
|
service(:sns, 'SNS')
|
74
76
|
service(:sqs, 'SQS')
|
75
|
-
service(:sts, 'STS')
|
76
77
|
service(:storage, 'Storage')
|
78
|
+
service(:sts, 'STS')
|
77
79
|
|
78
80
|
def self.indexed_param(key, values)
|
79
81
|
params = {}
|
@@ -206,4 +208,4 @@ module Fog
|
|
206
208
|
options
|
207
209
|
end
|
208
210
|
end
|
209
|
-
end
|
211
|
+
end
|
data/lib/fog/aws/elb.rb
CHANGED
data/lib/fog/aws/iam.rb
CHANGED
@@ -10,7 +10,7 @@ module Fog
|
|
10
10
|
class ValidationError < Fog::AWS::IAM::Error; end
|
11
11
|
|
12
12
|
requires :aws_access_key_id, :aws_secret_access_key
|
13
|
-
recognizes :host, :path, :port, :scheme, :persistent, :instrumentor, :instrumentor_name, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at
|
13
|
+
recognizes :host, :path, :port, :scheme, :persistent, :instrumentor, :instrumentor_name, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at, :region
|
14
14
|
|
15
15
|
request_path 'fog/aws/requests/iam'
|
16
16
|
request :add_user_to_group
|
@@ -211,6 +211,7 @@ module Fog
|
|
211
211
|
@persistent = options[:persistent] || false
|
212
212
|
@port = options[:port] || 443
|
213
213
|
@scheme = options[:scheme] || 'https'
|
214
|
+
@region = options[:region] || "us-east-1"
|
214
215
|
@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
215
216
|
|
216
217
|
setup_credentials(options)
|
@@ -230,7 +231,8 @@ module Fog
|
|
230
231
|
@aws_credentials_expire_at = options[:aws_credentials_expire_at]
|
231
232
|
|
232
233
|
#global services that have no region are signed with the us-east-1 region
|
233
|
-
|
234
|
+
#the only exception is GovCloud, which requires the region to be explicitly specified as us-gov-west-1
|
235
|
+
@signer = Fog::AWS::SignatureV4.new( @aws_access_key_id, @aws_secret_access_key, @region,'iam')
|
234
236
|
end
|
235
237
|
|
236
238
|
def request(params)
|
data/lib/fog/aws/kms.rb
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class KMS < Fog::Service
|
4
|
+
extend Fog::AWS::CredentialFetcher::ServiceMethods
|
5
|
+
|
6
|
+
DependencyTimeoutException = Class.new(Fog::Errors::Error)
|
7
|
+
DisabledException = Class.new(Fog::Errors::Error)
|
8
|
+
InvalidArnException = Class.new(Fog::Errors::Error)
|
9
|
+
InvalidGrantTokenException = Class.new(Fog::Errors::Error)
|
10
|
+
InvalidKeyUsageException = Class.new(Fog::Errors::Error)
|
11
|
+
KMSInternalException = Class.new(Fog::Errors::Error)
|
12
|
+
KeyUnavailableException = Class.new(Fog::Errors::Error)
|
13
|
+
MalformedPolicyDocumentException = Class.new(Fog::Errors::Error)
|
14
|
+
NotFoundException = Class.new(Fog::Errors::Error)
|
15
|
+
|
16
|
+
requires :aws_access_key_id, :aws_secret_access_key
|
17
|
+
recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :instrumentor, :instrumentor_name
|
18
|
+
|
19
|
+
request_path 'fog/aws/requests/kms'
|
20
|
+
request :list_keys
|
21
|
+
request :create_key
|
22
|
+
request :describe_key
|
23
|
+
|
24
|
+
model_path 'fog/aws/models/kms'
|
25
|
+
model :key
|
26
|
+
collection :keys
|
27
|
+
|
28
|
+
class Mock
|
29
|
+
def self.data
|
30
|
+
@data ||= Hash.new do |hash, region|
|
31
|
+
hash[region] = Hash.new do |region_hash, access_key|
|
32
|
+
region_hash[access_key] = {
|
33
|
+
:keys => {},
|
34
|
+
}
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.reset
|
40
|
+
@data.clear
|
41
|
+
end
|
42
|
+
|
43
|
+
attr_reader :account_id
|
44
|
+
|
45
|
+
def initialize(options={})
|
46
|
+
@use_iam_profile = options[:use_iam_profile]
|
47
|
+
@account_id = Fog::AWS::Mock.owner_id
|
48
|
+
|
49
|
+
@region = options[:region] || 'us-east-1'
|
50
|
+
setup_credentials(options)
|
51
|
+
|
52
|
+
unless ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', 'eu-central-1', 'eu-west-1', 'us-east-1', 'us-west-1', 'us-west-2', 'sa-east-1'].include?(@region)
|
53
|
+
raise ArgumentError, "Unknown region: #{@region.inspect}"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def setup_credentials(options)
|
58
|
+
@aws_access_key_id = options[:aws_access_key_id]
|
59
|
+
@aws_secret_access_key = options[:aws_secret_access_key]
|
60
|
+
|
61
|
+
@signer = Fog::AWS::SignatureV4.new(@aws_access_key_id, @aws_secret_access_key, @region, 'kms')
|
62
|
+
end
|
63
|
+
|
64
|
+
def data
|
65
|
+
self.class.data[@region][@aws_access_key_id]
|
66
|
+
end
|
67
|
+
|
68
|
+
def reset_data
|
69
|
+
self.class.data[@region].delete(@aws_access_key_id)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
class Real
|
74
|
+
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
75
|
+
# Initialize connection to KMS
|
76
|
+
#
|
77
|
+
# ==== Notes
|
78
|
+
# options parameter must include values for :aws_access_key_id and
|
79
|
+
# :aws_secret_access_key in order to create a connection
|
80
|
+
#
|
81
|
+
# ==== Examples
|
82
|
+
# kms = KMS.new(
|
83
|
+
# :aws_access_key_id => your_aws_access_key_id,
|
84
|
+
# :aws_secret_access_key => your_aws_secret_access_key
|
85
|
+
# )
|
86
|
+
#
|
87
|
+
# ==== Parameters
|
88
|
+
# * options<~Hash> - config arguments for connection. Defaults to {}.
|
89
|
+
# * region<~String> - optional region to use. For instance, 'eu-west-1', 'us-east-1', etc.
|
90
|
+
#
|
91
|
+
# ==== Returns
|
92
|
+
# * KMS object with connection to AWS.
|
93
|
+
def initialize(options={})
|
94
|
+
|
95
|
+
@use_iam_profile = options[:use_iam_profile]
|
96
|
+
@connection_options = options[:connection_options] || {}
|
97
|
+
@instrumentor = options[:instrumentor]
|
98
|
+
@instrumentor_name = options[:instrumentor_name] || 'fog.aws.kms'
|
99
|
+
|
100
|
+
options[:region] ||= 'us-east-1'
|
101
|
+
|
102
|
+
@region = options[:region]
|
103
|
+
@host = options[:host] || "kms.#{@region}.amazonaws.com"
|
104
|
+
@path = options[:path] || '/'
|
105
|
+
@persistent = options[:persistent] || false
|
106
|
+
@port = options[:port] || 443
|
107
|
+
@scheme = options[:scheme] || 'https'
|
108
|
+
|
109
|
+
@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
110
|
+
|
111
|
+
setup_credentials(options)
|
112
|
+
end
|
113
|
+
|
114
|
+
def reload
|
115
|
+
@connection.reset
|
116
|
+
end
|
117
|
+
|
118
|
+
private
|
119
|
+
|
120
|
+
def setup_credentials(options={})
|
121
|
+
@aws_access_key_id = options[:aws_access_key_id]
|
122
|
+
@aws_secret_access_key = options[:aws_secret_access_key]
|
123
|
+
@aws_session_token = options[:aws_session_token]
|
124
|
+
|
125
|
+
@signer = Fog::AWS::SignatureV4.new(@aws_access_key_id, @aws_secret_access_key, @region, 'kms')
|
126
|
+
end
|
127
|
+
|
128
|
+
def request(params)
|
129
|
+
refresh_credentials_if_expired
|
130
|
+
|
131
|
+
idempotent = params.delete(:idempotent)
|
132
|
+
parser = params.delete(:parser)
|
133
|
+
|
134
|
+
body, headers = Fog::AWS.signed_params_v4(
|
135
|
+
params,
|
136
|
+
{ 'Content-Type' => 'application/x-www-form-urlencoded' },
|
137
|
+
{
|
138
|
+
:aws_session_token => @aws_session_token,
|
139
|
+
:signer => @signer,
|
140
|
+
:host => @host,
|
141
|
+
:path => @path,
|
142
|
+
:port => @port,
|
143
|
+
:version => '2014-11-01',
|
144
|
+
:method => 'POST'
|
145
|
+
}
|
146
|
+
)
|
147
|
+
|
148
|
+
if @instrumentor
|
149
|
+
@instrumentor.instrument("#{@instrumentor_name}.request", params) do
|
150
|
+
_request(body, headers, idempotent, parser)
|
151
|
+
end
|
152
|
+
else
|
153
|
+
_request(body, headers, idempotent, parser)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
def _request(body, headers, idempotent, parser)
|
158
|
+
@connection.request({
|
159
|
+
:body => body,
|
160
|
+
:expects => 200,
|
161
|
+
:headers => headers,
|
162
|
+
:idempotent => idempotent,
|
163
|
+
:method => 'POST',
|
164
|
+
:parser => parser
|
165
|
+
})
|
166
|
+
rescue Excon::Errors::HTTPStatusError => error
|
167
|
+
match = Fog::AWS::Errors.match_error(error)
|
168
|
+
|
169
|
+
if match.empty?
|
170
|
+
raise
|
171
|
+
elsif Fog::AWS::KMS.const_defined?(match[:code])
|
172
|
+
raise Fog::AWS::KMS.const_get(match[:code]).slurp(error, match[:message])
|
173
|
+
else
|
174
|
+
raise Fog::AWS::KMS::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
data/lib/fog/aws/mock.rb
CHANGED
@@ -165,6 +165,18 @@ module Fog
|
|
165
165
|
def self.rds_address(db_name,region)
|
166
166
|
"#{db_name}.#{Fog::Mock.random_letters(rand(12) + 4)}.#{region}.rds.amazonaws.com"
|
167
167
|
end
|
168
|
+
|
169
|
+
def self.spot_instance_request_id
|
170
|
+
"sir-#{Fog::Mock.random_letters_and_numbers(8)}"
|
171
|
+
end
|
172
|
+
|
173
|
+
def self.spot_product_descriptions
|
174
|
+
[
|
175
|
+
'Linux/UNIX',
|
176
|
+
'Windows',
|
177
|
+
'SUSE Linux'
|
178
|
+
]
|
179
|
+
end
|
168
180
|
end
|
169
181
|
end
|
170
|
-
end
|
182
|
+
end
|
@@ -433,6 +433,46 @@ module Fog
|
|
433
433
|
:disk => 640,
|
434
434
|
:ebs_optimized_available => true,
|
435
435
|
:instance_store_volumes => 2
|
436
|
+
},
|
437
|
+
{
|
438
|
+
:id => "d2.xlarge",
|
439
|
+
:name => "D2 Extra Large",
|
440
|
+
:bits => 64,
|
441
|
+
:cores => 4,
|
442
|
+
:ram => 31232,
|
443
|
+
:disk => 6000,
|
444
|
+
:ebs_optimized_available => true,
|
445
|
+
:instance_store_volumes => 3
|
446
|
+
},
|
447
|
+
{
|
448
|
+
:id => "d2.2xlarge",
|
449
|
+
:name => "D2 Double Extra Large",
|
450
|
+
:bits => 64,
|
451
|
+
:cores => 8,
|
452
|
+
:ram => 62464,
|
453
|
+
:disk => 12000,
|
454
|
+
:ebs_optimized_available => true,
|
455
|
+
:instance_store_volumes => 6
|
456
|
+
},
|
457
|
+
{
|
458
|
+
:id => "d2.4xlarge",
|
459
|
+
:name => "D2 Quadruple Extra Large",
|
460
|
+
:bits => 64,
|
461
|
+
:cores => 16,
|
462
|
+
:ram => 124928,
|
463
|
+
:disk => 24000,
|
464
|
+
:ebs_optimized_available => true,
|
465
|
+
:instance_store_volumes => 12
|
466
|
+
},
|
467
|
+
{
|
468
|
+
:id => "d2.8xlarge",
|
469
|
+
:name => "D2 Eight Extra Large",
|
470
|
+
:bits => 64,
|
471
|
+
:cores => 36,
|
472
|
+
:ram => 249856,
|
473
|
+
:disk => 48000,
|
474
|
+
:ebs_optimized_available => true,
|
475
|
+
:instance_store_volumes => 24
|
436
476
|
}
|
437
477
|
]
|
438
478
|
|