fog-aws 3.6.5 → 3.9.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/.travis.yml +71 -0
- data/CHANGELOG.md +77 -2
- data/Gemfile +1 -1
- data/README.md +20 -0
- data/lib/fog/aws.rb +1 -1
- data/lib/fog/aws/credential_fetcher.rb +34 -3
- data/lib/fog/aws/models/compute/flavors.rb +460 -0
- data/lib/fog/aws/models/compute/server.rb +4 -2
- data/lib/fog/aws/models/compute/servers.rb +2 -0
- data/lib/fog/aws/models/compute/vpc.rb +1 -1
- data/lib/fog/aws/models/storage/file.rb +125 -3
- data/lib/fog/aws/models/storage/files.rb +32 -2
- data/lib/fog/aws/parsers/storage/upload_part_copy_object.rb +18 -0
- data/lib/fog/aws/requests/compute/request_spot_instances.rb +1 -1
- data/lib/fog/aws/requests/compute/run_instances.rb +20 -0
- data/lib/fog/aws/requests/compute/stop_instances.rb +11 -3
- data/lib/fog/aws/requests/storage/shared_mock_methods.rb +1 -0
- data/lib/fog/aws/requests/storage/upload_part_copy.rb +119 -0
- data/lib/fog/aws/storage.rb +2 -1
- data/lib/fog/aws/version.rb +1 -1
- data/tests/credentials_tests.rb +42 -0
- data/tests/helpers/succeeds_helper.rb +2 -2
- data/tests/models/storage/files_tests.rb +32 -0
- data/tests/requests/storage/multipart_copy_tests.rb +93 -0
- data/tests/requests/storage/object_tests.rb +7 -0
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8adda78ff8e95ea706342dc8aabe0c529e1fd26bdbf5ed63e0d63f1a4ab50a8c
|
4
|
+
data.tar.gz: 5afbb4be420bd1cc45e6bfd54cc3c8711f63854a9a8906677f08bfdf007b637d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c92f603e887e44f354d851a309401b87cb01e83cb4c83833c8fb33edeb15357e8a4b0b0c8ae9c6dfc96ff24f85664287b8cfa8fe5fde7fb90b344a47d9f90bae
|
7
|
+
data.tar.gz: 4e4bdee040f173c7cbd19f89938e4cb93ce849feda86bb87bee20339ffee211434195fa1512b2426d70ca4e13152c4497db422d03881a2dfef7276b91d37c5bb
|
data/.travis.yml
CHANGED
@@ -19,8 +19,53 @@ matrix:
|
|
19
19
|
gemfile: Gemfile
|
20
20
|
- rvm: 2.5.0
|
21
21
|
gemfile: gemfiles/Gemfile-edge
|
22
|
+
- rvm: 2.6.6
|
23
|
+
gemfile: Gemfile
|
24
|
+
- rvm: 2.6.6
|
25
|
+
gemfile: gemfiles/Gemfile-edge
|
26
|
+
- rvm: 2.7.2
|
27
|
+
gemfile: Gemfile
|
28
|
+
- rvm: 2.7.2
|
29
|
+
gemfile: gemfiles/Gemfile-edge
|
30
|
+
- rvm: 3.0.0
|
31
|
+
gemfile: gemfiles/Gemfile-edge
|
22
32
|
- rvm: jruby-head
|
23
33
|
gemfile: Gemfile
|
34
|
+
# ppc64le specific changes
|
35
|
+
- rvm: 2.3.0
|
36
|
+
gemfile: Gemfile
|
37
|
+
arch: ppc64le
|
38
|
+
- rvm: 2.3.0
|
39
|
+
arch: ppc64le
|
40
|
+
gemfile: gemfiles/Gemfile-edge
|
41
|
+
- rvm: 2.4.0
|
42
|
+
arch: ppc64le
|
43
|
+
gemfile: Gemfile
|
44
|
+
- rvm: 2.4.0
|
45
|
+
arch: ppc64le
|
46
|
+
gemfile: gemfiles/Gemfile-edge
|
47
|
+
- rvm: 2.5.0
|
48
|
+
arch: ppc64le
|
49
|
+
gemfile: Gemfile
|
50
|
+
- rvm: 2.5.0
|
51
|
+
arch: ppc64le
|
52
|
+
gemfile: gemfiles/Gemfile-edge
|
53
|
+
- rvm: 2.6.6
|
54
|
+
arch: ppc64le
|
55
|
+
gemfile: Gemfile
|
56
|
+
- rvm: 2.6.6
|
57
|
+
arch: ppc64le
|
58
|
+
gemfile: gemfiles/Gemfile-edge
|
59
|
+
- rvm: 2.7.2
|
60
|
+
arch: ppc64le
|
61
|
+
gemfile: Gemfile
|
62
|
+
- rvm: 2.7.2
|
63
|
+
arch: ppc64le
|
64
|
+
gemfile: gemfiles/Gemfile-edge
|
65
|
+
- rvm: jruby-head
|
66
|
+
arch: ppc64le
|
67
|
+
gemfile: Gemfile
|
68
|
+
|
24
69
|
allow_failures:
|
25
70
|
- rvm: jruby-head
|
26
71
|
gemfile: Gemfile
|
@@ -32,6 +77,32 @@ matrix:
|
|
32
77
|
gemfile: gemfiles/Gemfile-edge
|
33
78
|
- rvm: 2.5.0
|
34
79
|
gemfile: gemfiles/Gemfile-edge
|
80
|
+
- rvm: 2.6.6
|
81
|
+
gemfile: gemfiles/Gemfile-edge
|
82
|
+
- rvm: 2.7.2
|
83
|
+
gemfile: gemfiles/Gemfile-edge
|
84
|
+
# ppc64le specific changes
|
85
|
+
- rvm: jruby-head
|
86
|
+
arch: ppc64le
|
87
|
+
gemfile: Gemfile
|
88
|
+
- rvm: 2.2.0
|
89
|
+
arch: ppc64le
|
90
|
+
gemfile: gemfiles/Gemfile-edge
|
91
|
+
- rvm: 2.3.0
|
92
|
+
arch: ppc64le
|
93
|
+
gemfile: gemfiles/Gemfile-edge
|
94
|
+
- rvm: 2.4.0
|
95
|
+
arch: ppc64le
|
96
|
+
gemfile: gemfiles/Gemfile-edge
|
97
|
+
- rvm: 2.5.0
|
98
|
+
arch: ppc64le
|
99
|
+
gemfile: gemfiles/Gemfile-edge
|
100
|
+
- rvm: 2.6.6
|
101
|
+
arch: ppc64le
|
102
|
+
gemfile: gemfiles/Gemfile-edge
|
103
|
+
- rvm: 2.7.2
|
104
|
+
arch: ppc64le
|
105
|
+
gemfile: gemfiles/Gemfile-edge
|
35
106
|
notifications:
|
36
107
|
email: false
|
37
108
|
irc:
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,80 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v3.9.0](https://github.com/fog/fog-aws/tree/v3.9.0) (2021-03-02)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.8.0...v3.9.0)
|
6
|
+
|
7
|
+
**Merged pull requests:**
|
8
|
+
|
9
|
+
- Fix handling of lowercased HTTP headers [\#597](https://github.com/fog/fog-aws/pull/597) ([stanhu](https://github.com/stanhu))
|
10
|
+
- Generate a default session name if one is not provided [\#595](https://github.com/fog/fog-aws/pull/595) ([stanhu](https://github.com/stanhu))
|
11
|
+
- Enable test on Ruby 3.0 [\#591](https://github.com/fog/fog-aws/pull/591) ([voxik](https://github.com/voxik))
|
12
|
+
|
13
|
+
## [v3.8.0](https://github.com/fog/fog-aws/tree/v3.8.0) (2021-01-13)
|
14
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.7.0...v3.8.0)
|
15
|
+
|
16
|
+
**Closed issues:**
|
17
|
+
|
18
|
+
- Getting Auth failure Exception for non enabled AWS regions in AWS account. [\#585](https://github.com/fog/fog-aws/issues/585)
|
19
|
+
|
20
|
+
**Merged pull requests:**
|
21
|
+
|
22
|
+
- Filter unknown UploadPartCopy parameters [\#589](https://github.com/fog/fog-aws/pull/589) ([stanhu](https://github.com/stanhu))
|
23
|
+
- Fix NameError in multipart copy [\#588](https://github.com/fog/fog-aws/pull/588) ([stanhu](https://github.com/stanhu))
|
24
|
+
- Rewind pointer if file is eof on put\_object mock [\#587](https://github.com/fog/fog-aws/pull/587) ([ekulz](https://github.com/ekulz))
|
25
|
+
- Update .travis.yml [\#584](https://github.com/fog/fog-aws/pull/584) ([nageshlop](https://github.com/nageshlop))
|
26
|
+
|
27
|
+
## [v3.7.0](https://github.com/fog/fog-aws/tree/v3.7.0) (2020-12-01)
|
28
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.7...v3.7.0)
|
29
|
+
|
30
|
+
**Closed issues:**
|
31
|
+
|
32
|
+
- File\#copy does not support files above 5 GB [\#577](https://github.com/fog/fog-aws/issues/577)
|
33
|
+
- fog-aws: AWS extended length resource ID issues \(8-\>18\) [\#517](https://github.com/fog/fog-aws/issues/517)
|
34
|
+
|
35
|
+
**Merged pull requests:**
|
36
|
+
|
37
|
+
- Add all m6gd, r6g, r6gd, c6g, and c6gd instance classes [\#582](https://github.com/fog/fog-aws/pull/582) ([calebwoofenden](https://github.com/calebwoofenden))
|
38
|
+
- Test Ruby v2.6.6 and v2.7.2 in CI [\#581](https://github.com/fog/fog-aws/pull/581) ([stanhu](https://github.com/stanhu))
|
39
|
+
- Add multi-threaded support for File\#copy [\#579](https://github.com/fog/fog-aws/pull/579) ([stanhu](https://github.com/stanhu))
|
40
|
+
- Add support for multipart Fog::AWS::Storage::File\#copy [\#578](https://github.com/fog/fog-aws/pull/578) ([stanhu](https://github.com/stanhu))
|
41
|
+
- Add AssumeRoleWithWebIdentity to fetch\_credentials [\#576](https://github.com/fog/fog-aws/pull/576) ([jpac-run](https://github.com/jpac-run))
|
42
|
+
|
43
|
+
## [v3.6.7](https://github.com/fog/fog-aws/tree/v3.6.7) (2020-08-26)
|
44
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.6...v3.6.7)
|
45
|
+
|
46
|
+
**Merged pull requests:**
|
47
|
+
|
48
|
+
- S3 dot Region endpoint structure applied [\#574](https://github.com/fog/fog-aws/pull/574) ([gharutyunyan-vineti](https://github.com/gharutyunyan-vineti))
|
49
|
+
|
50
|
+
## [v3.6.6](https://github.com/fog/fog-aws/tree/v3.6.6) (2020-06-23)
|
51
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.5...v3.6.6)
|
52
|
+
|
53
|
+
**Closed issues:**
|
54
|
+
|
55
|
+
- max\_keys param in storage.directories.get.... what am I missing? [\#568](https://github.com/fog/fog-aws/issues/568)
|
56
|
+
- Fog Logs? [\#561](https://github.com/fog/fog-aws/issues/561)
|
57
|
+
|
58
|
+
**Merged pull requests:**
|
59
|
+
|
60
|
+
- added missing region EU South \(Milan\) [\#570](https://github.com/fog/fog-aws/pull/570) ([saldan](https://github.com/saldan))
|
61
|
+
- hibernation option to compute [\#569](https://github.com/fog/fog-aws/pull/569) ([taniahagan](https://github.com/taniahagan))
|
62
|
+
- Fix VPC model is\_default requires [\#567](https://github.com/fog/fog-aws/pull/567) ([biinari](https://github.com/biinari))
|
63
|
+
|
64
|
+
## [v3.6.5](https://github.com/fog/fog-aws/tree/v3.6.5) (2020-05-22)
|
65
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.4...v3.6.5)
|
66
|
+
|
67
|
+
**Closed issues:**
|
68
|
+
|
69
|
+
- Fog::Compute::AWS is deprecated, please use Fog::AWS::Compute warning [\#565](https://github.com/fog/fog-aws/issues/565)
|
70
|
+
- Duplicate compute flavours [\#563](https://github.com/fog/fog-aws/issues/563)
|
71
|
+
- 3.6.4 does not fetch iam credentials using IMDSv2 when running from inside containers with IMDSv2 Defaults [\#560](https://github.com/fog/fog-aws/issues/560)
|
72
|
+
|
73
|
+
**Merged pull requests:**
|
74
|
+
|
75
|
+
- Fix naming of various AWS compute flavors [\#564](https://github.com/fog/fog-aws/pull/564) ([abrom](https://github.com/abrom))
|
76
|
+
- Gracefully handle failure of IMDSv2 and allow fallback to IMDSv1 [\#562](https://github.com/fog/fog-aws/pull/562) ([atyndall](https://github.com/atyndall))
|
77
|
+
|
3
78
|
## [v3.6.4](https://github.com/fog/fog-aws/tree/v3.6.4) (2020-05-14)
|
4
79
|
[Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.3...v3.6.4)
|
5
80
|
|
@@ -545,7 +620,7 @@
|
|
545
620
|
- make net/ssh require optional [\#197](https://github.com/fog/fog-aws/pull/197) ([geemus](https://github.com/geemus))
|
546
621
|
- Cache cluster security group parser [\#190](https://github.com/fog/fog-aws/pull/190) ([eherot](https://github.com/eherot))
|
547
622
|
- Allow region to be set for STS [\#189](https://github.com/fog/fog-aws/pull/189) ([fcheung](https://github.com/fcheung))
|
548
|
-
- add cn support for s3 [\#187](https://github.com/fog/fog-aws/pull/187) ([
|
623
|
+
- add cn support for s3 [\#187](https://github.com/fog/fog-aws/pull/187) ([ming535](https://github.com/ming535))
|
549
624
|
- mock instance stop and start properly [\#184](https://github.com/fog/fog-aws/pull/184) ([ehowe](https://github.com/ehowe))
|
550
625
|
- Disable idempotent option when block is passed to get\_object [\#183](https://github.com/fog/fog-aws/pull/183) ([ghost](https://github.com/ghost))
|
551
626
|
- Yield arguments to Mock\#get\_object block more similar to Excon [\#182](https://github.com/fog/fog-aws/pull/182) ([tdg5](https://github.com/tdg5))
|
@@ -869,4 +944,4 @@
|
|
869
944
|
## [fog-brightbox_v0.0.1](https://github.com/fog/fog-aws/tree/fog-brightbox_v0.0.1) (2014-02-19)
|
870
945
|
|
871
946
|
|
872
|
-
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
947
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -105,6 +105,26 @@ directory.files
|
|
105
105
|
directory.files.new(key: 'user/1/Gemfile').url(Time.now + 60)
|
106
106
|
```
|
107
107
|
|
108
|
+
#### Copying a file
|
109
|
+
|
110
|
+
```ruby
|
111
|
+
directory = s3.directories.new(key: 'gaudi-portal-dev')
|
112
|
+
file = directory.files.get('user/1/Gemfile')
|
113
|
+
file.copy("target-bucket", "user/2/Gemfile.copy")
|
114
|
+
```
|
115
|
+
|
116
|
+
To speed transfers of large files, the `concurrency` option can be used
|
117
|
+
to spawn multiple threads. Note that the file must be at least 5 MB for
|
118
|
+
multipart uploads to work. For example:
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
directory = s3.directories.new(key: 'gaudi-portal-dev')
|
122
|
+
file = directory.files.get('user/1/Gemfile')
|
123
|
+
file.multipart_chunk_size = 10 * 1024 * 1024
|
124
|
+
file.concurrency = 10
|
125
|
+
file.copy("target-bucket", "user/2/Gemfile.copy")
|
126
|
+
```
|
127
|
+
|
108
128
|
## Documentation
|
109
129
|
|
110
130
|
See the [online documentation](http://www.rubydoc.info/github/fog/fog-aws) for a complete API reference.
|
data/lib/fog/aws.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'securerandom'
|
4
|
+
|
1
5
|
module Fog
|
2
6
|
module AWS
|
3
7
|
module CredentialFetcher
|
@@ -9,6 +13,8 @@ module Fog
|
|
9
13
|
|
10
14
|
CONTAINER_CREDENTIALS_HOST = "http://169.254.170.2"
|
11
15
|
|
16
|
+
STS_GLOBAL_ENDPOINT = "https://sts.amazonaws.com"
|
17
|
+
|
12
18
|
module ServiceMethods
|
13
19
|
def fetch_credentials(options)
|
14
20
|
if options[:use_iam_profile] && Fog.mocking?
|
@@ -23,6 +29,30 @@ module Fog
|
|
23
29
|
connection = options[:connection] || Excon.new(CONTAINER_CREDENTIALS_HOST)
|
24
30
|
credential_path = options[:credential_path] || ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
|
25
31
|
role_data = connection.get(:path => credential_path, :idempotent => true, :expects => 200).body
|
32
|
+
session = Fog::JSON.decode(role_data)
|
33
|
+
|
34
|
+
if region.nil?
|
35
|
+
connection = options[:metadata_connection] || Excon.new(INSTANCE_METADATA_HOST)
|
36
|
+
token_header = fetch_credentials_token_header(connection, options[:disable_imds_v2])
|
37
|
+
region = connection.get(:path => INSTANCE_METADATA_AZ, :idempotent => true, :expects => 200, :headers => token_header).body[0..-2]
|
38
|
+
end
|
39
|
+
elsif ENV["AWS_WEB_IDENTITY_TOKEN_FILE"]
|
40
|
+
params = {
|
41
|
+
:Action => "AssumeRoleWithWebIdentity",
|
42
|
+
:RoleArn => options[:role_arn] || ENV.fetch("AWS_ROLE_ARN"),
|
43
|
+
:RoleSessionName => options[:role_session_name] || ENV["AWS_ROLE_SESSION_NAME"] || "fog-aws-#{SecureRandom.hex}",
|
44
|
+
:WebIdentityToken => File.read(options[:aws_web_identity_token_file] || ENV.fetch("AWS_WEB_IDENTITY_TOKEN_FILE")),
|
45
|
+
:Version => "2011-06-15",
|
46
|
+
}
|
47
|
+
connection = options[:connection] || Excon.new(STS_GLOBAL_ENDPOINT, :query => params)
|
48
|
+
document = Nokogiri::XML(connection.get(:idempotent => true, :expects => 200).body)
|
49
|
+
|
50
|
+
session = {
|
51
|
+
"AccessKeyId" => document.css("AccessKeyId").children.text,
|
52
|
+
"SecretAccessKey" => document.css("SecretAccessKey").children.text,
|
53
|
+
"Token" => document.css("SessionToken").children.text,
|
54
|
+
"Expiration" => document.css("Expiration").children.text,
|
55
|
+
}
|
26
56
|
|
27
57
|
if region.nil?
|
28
58
|
connection = options[:metadata_connection] || Excon.new(INSTANCE_METADATA_HOST)
|
@@ -34,16 +64,17 @@ module Fog
|
|
34
64
|
token_header = fetch_credentials_token_header(connection, options[:disable_imds_v2])
|
35
65
|
role_name = connection.get(:path => INSTANCE_METADATA_PATH, :idempotent => true, :expects => 200, :headers => token_header).body
|
36
66
|
role_data = connection.get(:path => INSTANCE_METADATA_PATH+role_name, :idempotent => true, :expects => 200, :headers => token_header).body
|
67
|
+
session = Fog::JSON.decode(role_data)
|
68
|
+
|
37
69
|
region ||= connection.get(:path => INSTANCE_METADATA_AZ, :idempotent => true, :expects => 200, :headers => token_header).body[0..-2]
|
38
70
|
end
|
39
|
-
|
40
|
-
session = Fog::JSON.decode(role_data)
|
71
|
+
|
41
72
|
credentials = {}
|
42
73
|
credentials[:aws_access_key_id] = session['AccessKeyId']
|
43
74
|
credentials[:aws_secret_access_key] = session['SecretAccessKey']
|
44
75
|
credentials[:aws_session_token] = session['Token']
|
45
76
|
credentials[:aws_credentials_expire_at] = Time.xmlschema session['Expiration']
|
46
|
-
|
77
|
+
|
47
78
|
# set region by default to the one the instance is in.
|
48
79
|
credentials[:region] = region
|
49
80
|
#these indicate the metadata service is unavailable or has no profile setup
|
@@ -366,6 +366,106 @@ module Fog
|
|
366
366
|
:ebs_optimized_available => true,
|
367
367
|
:instance_store_volumes => 0
|
368
368
|
},
|
369
|
+
{
|
370
|
+
:id => 'm6g.metal',
|
371
|
+
:name => 'M6G Metal',
|
372
|
+
:bits => 64,
|
373
|
+
:cores => 64,
|
374
|
+
:disk => 0,
|
375
|
+
:ram => 274878,
|
376
|
+
:ebs_optimized_available => true,
|
377
|
+
:instance_store_volumes => 0
|
378
|
+
},
|
379
|
+
{
|
380
|
+
:id => 'm6gd.medium',
|
381
|
+
:name => 'M6GD Medium',
|
382
|
+
:bits => 64,
|
383
|
+
:cores => 1,
|
384
|
+
:disk => 59,
|
385
|
+
:ram => 4295,
|
386
|
+
:ebs_optimized_available => true,
|
387
|
+
:instance_store_volumes => 1
|
388
|
+
},
|
389
|
+
{
|
390
|
+
:id => 'm6gd.large',
|
391
|
+
:name => 'M6GD Large',
|
392
|
+
:bits => 64,
|
393
|
+
:cores => 2,
|
394
|
+
:disk => 118,
|
395
|
+
:ram => 8590,
|
396
|
+
:ebs_optimized_available => true,
|
397
|
+
:instance_store_volumes => 1
|
398
|
+
},
|
399
|
+
{
|
400
|
+
:id => 'm6gd.xlarge',
|
401
|
+
:name => 'M6GD Extra Large',
|
402
|
+
:bits => 64,
|
403
|
+
:cores => 4,
|
404
|
+
:disk => 237,
|
405
|
+
:ram => 17180,
|
406
|
+
:ebs_optimized_available => true,
|
407
|
+
:instance_store_volumes => 1
|
408
|
+
},
|
409
|
+
{
|
410
|
+
:id => 'm6gd.2xlarge',
|
411
|
+
:name => 'M6GD Double Extra Large',
|
412
|
+
:bits => 64,
|
413
|
+
:cores => 8,
|
414
|
+
:disk => 474,
|
415
|
+
:ram => 34360,
|
416
|
+
:ebs_optimized_available => true,
|
417
|
+
:instance_store_volumes => 1
|
418
|
+
},
|
419
|
+
{
|
420
|
+
:id => 'm6gd.4xlarge',
|
421
|
+
:name => 'M6GD Quadruple Extra Large',
|
422
|
+
:bits => 64,
|
423
|
+
:cores => 16,
|
424
|
+
:disk => 950,
|
425
|
+
:ram => 68719,
|
426
|
+
:ebs_optimized_available => true,
|
427
|
+
:instance_store_volumes => 1
|
428
|
+
},
|
429
|
+
{
|
430
|
+
:id => 'm6gd.8xlarge',
|
431
|
+
:name => 'M6GD Octuple Extra Large',
|
432
|
+
:bits => 64,
|
433
|
+
:cores => 32,
|
434
|
+
:disk => 1900,
|
435
|
+
:ram => 137439,
|
436
|
+
:ebs_optimized_available => true,
|
437
|
+
:instance_store_volumes => 1
|
438
|
+
},
|
439
|
+
{
|
440
|
+
:id => 'm6gd.12xlarge',
|
441
|
+
:name => 'M6GD Twelve Extra Large',
|
442
|
+
:bits => 64,
|
443
|
+
:cores => 48,
|
444
|
+
:disk => 2850,
|
445
|
+
:ram => 206158,
|
446
|
+
:ebs_optimized_available => true,
|
447
|
+
:instance_store_volumes => 2
|
448
|
+
},
|
449
|
+
{
|
450
|
+
:id => 'm6gd.16xlarge',
|
451
|
+
:name => 'M6GD Sixteen Extra Large',
|
452
|
+
:bits => 64,
|
453
|
+
:cores => 64,
|
454
|
+
:disk => 3800,
|
455
|
+
:ram => 274878,
|
456
|
+
:ebs_optimized_available => true,
|
457
|
+
:instance_store_volumes => 2
|
458
|
+
},
|
459
|
+
{
|
460
|
+
:id => 'm6gd.metal',
|
461
|
+
:name => 'M6GD Metal',
|
462
|
+
:bits => 64,
|
463
|
+
:cores => 64,
|
464
|
+
:disk => 3800,
|
465
|
+
:ram => 274878,
|
466
|
+
:ebs_optimized_available => true,
|
467
|
+
:instance_store_volumes => 2
|
468
|
+
},
|
369
469
|
{
|
370
470
|
:id => 'm1.small',
|
371
471
|
:name => 'M1 Small Instance',
|
@@ -776,6 +876,186 @@ module Fog
|
|
776
876
|
:ebs_optimized_available => true,
|
777
877
|
:instance_store_volumes => 0
|
778
878
|
},
|
879
|
+
{
|
880
|
+
:id => 'c6g.medium',
|
881
|
+
:name => 'C6G Medium',
|
882
|
+
:bits => 64,
|
883
|
+
:cores => 1,
|
884
|
+
:disk => 0,
|
885
|
+
:ram => 2147,
|
886
|
+
:ebs_optimized_available => true,
|
887
|
+
:instance_store_volumes => 0
|
888
|
+
},
|
889
|
+
{
|
890
|
+
:id => 'c6g.large',
|
891
|
+
:name => 'C6G Large',
|
892
|
+
:bits => 64,
|
893
|
+
:cores => 2,
|
894
|
+
:disk => 0,
|
895
|
+
:ram => 4295,
|
896
|
+
:ebs_optimized_available => true,
|
897
|
+
:instance_store_volumes => 0
|
898
|
+
},
|
899
|
+
{
|
900
|
+
:id => 'c6g.xlarge',
|
901
|
+
:name => 'C6G Extra Large',
|
902
|
+
:bits => 64,
|
903
|
+
:cores => 4,
|
904
|
+
:disk => 0,
|
905
|
+
:ram => 8590,
|
906
|
+
:ebs_optimized_available => true,
|
907
|
+
:instance_store_volumes => 0
|
908
|
+
},
|
909
|
+
{
|
910
|
+
:id => 'c6g.2xlarge',
|
911
|
+
:name => 'C6G Double Extra Large',
|
912
|
+
:bits => 64,
|
913
|
+
:cores => 8,
|
914
|
+
:disk => 0,
|
915
|
+
:ram => 17180,
|
916
|
+
:ebs_optimized_available => true,
|
917
|
+
:instance_store_volumes => 0
|
918
|
+
},
|
919
|
+
{
|
920
|
+
:id => 'c6g.4xlarge',
|
921
|
+
:name => 'C6G Quadruple Extra Large',
|
922
|
+
:bits => 64,
|
923
|
+
:cores => 16,
|
924
|
+
:disk => 0,
|
925
|
+
:ram => 34360,
|
926
|
+
:ebs_optimized_available => true,
|
927
|
+
:instance_store_volumes => 0
|
928
|
+
},
|
929
|
+
{
|
930
|
+
:id => 'c6g.8xlarge',
|
931
|
+
:name => 'C6G Octuple Extra Large',
|
932
|
+
:bits => 64,
|
933
|
+
:cores => 32,
|
934
|
+
:disk => 0,
|
935
|
+
:ram => 68719,
|
936
|
+
:ebs_optimized_available => true,
|
937
|
+
:instance_store_volumes => 0
|
938
|
+
},
|
939
|
+
{
|
940
|
+
:id => 'c6g.12xlarge',
|
941
|
+
:name => 'C6G Twelve Extra Large',
|
942
|
+
:bits => 64,
|
943
|
+
:cores => 48,
|
944
|
+
:disk => 0,
|
945
|
+
:ram => 103079,
|
946
|
+
:ebs_optimized_available => true,
|
947
|
+
:instance_store_volumes => 0
|
948
|
+
},
|
949
|
+
{
|
950
|
+
:id => 'c6g.16xlarge',
|
951
|
+
:name => 'C6G Sixteen Extra Large',
|
952
|
+
:bits => 64,
|
953
|
+
:cores => 64,
|
954
|
+
:disk => 0,
|
955
|
+
:ram => 137439,
|
956
|
+
:ebs_optimized_available => true,
|
957
|
+
:instance_store_volumes => 0
|
958
|
+
},
|
959
|
+
{
|
960
|
+
:id => 'c6g.metal',
|
961
|
+
:name => 'C6G Metal',
|
962
|
+
:bits => 64,
|
963
|
+
:cores => 64,
|
964
|
+
:disk => 0,
|
965
|
+
:ram => 137439,
|
966
|
+
:ebs_optimized_available => true,
|
967
|
+
:instance_store_volumes => 0
|
968
|
+
},
|
969
|
+
{
|
970
|
+
:id => 'c6gd.medium',
|
971
|
+
:name => 'C6GD Medium',
|
972
|
+
:bits => 64,
|
973
|
+
:cores => 1,
|
974
|
+
:disk => 59,
|
975
|
+
:ram => 2147,
|
976
|
+
:ebs_optimized_available => true,
|
977
|
+
:instance_store_volumes => 1
|
978
|
+
},
|
979
|
+
{
|
980
|
+
:id => 'c6gd.large',
|
981
|
+
:name => 'C6GD Large',
|
982
|
+
:bits => 64,
|
983
|
+
:cores => 2,
|
984
|
+
:disk => 118,
|
985
|
+
:ram => 4295,
|
986
|
+
:ebs_optimized_available => true,
|
987
|
+
:instance_store_volumes => 1
|
988
|
+
},
|
989
|
+
{
|
990
|
+
:id => 'c6gd.xlarge',
|
991
|
+
:name => 'C6GD Extra Large',
|
992
|
+
:bits => 64,
|
993
|
+
:cores => 4,
|
994
|
+
:disk => 237,
|
995
|
+
:ram => 8590,
|
996
|
+
:ebs_optimized_available => true,
|
997
|
+
:instance_store_volumes => 1
|
998
|
+
},
|
999
|
+
{
|
1000
|
+
:id => 'c6gd.2xlarge',
|
1001
|
+
:name => 'C6GD Double Extra Large',
|
1002
|
+
:bits => 64,
|
1003
|
+
:cores => 8,
|
1004
|
+
:disk => 474,
|
1005
|
+
:ram => 17180,
|
1006
|
+
:ebs_optimized_available => true,
|
1007
|
+
:instance_store_volumes => 1
|
1008
|
+
},
|
1009
|
+
{
|
1010
|
+
:id => 'c6gd.4xlarge',
|
1011
|
+
:name => 'C6GD Quadruple Extra Large',
|
1012
|
+
:bits => 64,
|
1013
|
+
:cores => 16,
|
1014
|
+
:disk => 950,
|
1015
|
+
:ram => 34360,
|
1016
|
+
:ebs_optimized_available => true,
|
1017
|
+
:instance_store_volumes => 1
|
1018
|
+
},
|
1019
|
+
{
|
1020
|
+
:id => 'c6gd.8xlarge',
|
1021
|
+
:name => 'C6GD Octuple Extra Large',
|
1022
|
+
:bits => 64,
|
1023
|
+
:cores => 32,
|
1024
|
+
:disk => 1900,
|
1025
|
+
:ram => 68719,
|
1026
|
+
:ebs_optimized_available => true,
|
1027
|
+
:instance_store_volumes => 1
|
1028
|
+
},
|
1029
|
+
{
|
1030
|
+
:id => 'c6gd.12xlarge',
|
1031
|
+
:name => 'C6GD Twelve Extra Large',
|
1032
|
+
:bits => 64,
|
1033
|
+
:cores => 48,
|
1034
|
+
:disk => 2850,
|
1035
|
+
:ram => 103079,
|
1036
|
+
:ebs_optimized_available => true,
|
1037
|
+
:instance_store_volumes => 2
|
1038
|
+
},
|
1039
|
+
{
|
1040
|
+
:id => 'c6gd.16xlarge',
|
1041
|
+
:name => 'C6GD Sixteen Extra Large',
|
1042
|
+
:bits => 64,
|
1043
|
+
:cores => 64,
|
1044
|
+
:disk => 3800,
|
1045
|
+
:ram => 137439,
|
1046
|
+
:ebs_optimized_available => true,
|
1047
|
+
:instance_store_volumes => 2
|
1048
|
+
},
|
1049
|
+
{
|
1050
|
+
:id => 'c6gd.metal',
|
1051
|
+
:name => 'C6GD Metal',
|
1052
|
+
:bits => 64,
|
1053
|
+
:cores => 64,
|
1054
|
+
:disk => 3800,
|
1055
|
+
:ram => 137439,
|
1056
|
+
:ebs_optimized_available => true,
|
1057
|
+
:instance_store_volumes => 2
|
1058
|
+
},
|
779
1059
|
{
|
780
1060
|
:id => 'g2.2xlarge',
|
781
1061
|
:name => 'GPU Double Extra Large',
|
@@ -1696,6 +1976,186 @@ module Fog
|
|
1696
1976
|
:ebs_optimized_available => true,
|
1697
1977
|
:instance_store_volumes => 4
|
1698
1978
|
},
|
1979
|
+
{
|
1980
|
+
:id => 'r6g.medium',
|
1981
|
+
:name => 'R6G Medium',
|
1982
|
+
:bits => 64,
|
1983
|
+
:cores => 1,
|
1984
|
+
:disk => 0,
|
1985
|
+
:ram => 8590,
|
1986
|
+
:ebs_optimized_available => true,
|
1987
|
+
:instance_store_volumes => 0
|
1988
|
+
},
|
1989
|
+
{
|
1990
|
+
:id => 'r6g.large',
|
1991
|
+
:name => 'R6G Large',
|
1992
|
+
:bits => 64,
|
1993
|
+
:cores => 2,
|
1994
|
+
:disk => 0,
|
1995
|
+
:ram => 17180,
|
1996
|
+
:ebs_optimized_available => true,
|
1997
|
+
:instance_store_volumes => 0
|
1998
|
+
},
|
1999
|
+
{
|
2000
|
+
:id => 'r6g.xlarge',
|
2001
|
+
:name => 'R6G Extra Large',
|
2002
|
+
:bits => 64,
|
2003
|
+
:cores => 4,
|
2004
|
+
:disk => 0,
|
2005
|
+
:ram => 34360,
|
2006
|
+
:ebs_optimized_available => true,
|
2007
|
+
:instance_store_volumes => 0
|
2008
|
+
},
|
2009
|
+
{
|
2010
|
+
:id => 'r6g.2xlarge',
|
2011
|
+
:name => 'R6G Double Extra Large',
|
2012
|
+
:bits => 64,
|
2013
|
+
:cores => 8,
|
2014
|
+
:disk => 0,
|
2015
|
+
:ram => 68719,
|
2016
|
+
:ebs_optimized_available => true,
|
2017
|
+
:instance_store_volumes => 0
|
2018
|
+
},
|
2019
|
+
{
|
2020
|
+
:id => 'r6g.4xlarge',
|
2021
|
+
:name => 'R6G Quadruple Extra Large',
|
2022
|
+
:bits => 64,
|
2023
|
+
:cores => 16,
|
2024
|
+
:disk => 0,
|
2025
|
+
:ram => 137439,
|
2026
|
+
:ebs_optimized_available => true,
|
2027
|
+
:instance_store_volumes => 0
|
2028
|
+
},
|
2029
|
+
{
|
2030
|
+
:id => 'r6g.8xlarge',
|
2031
|
+
:name => 'R6G Octuple Extra Large',
|
2032
|
+
:bits => 64,
|
2033
|
+
:cores => 32,
|
2034
|
+
:disk => 0,
|
2035
|
+
:ram => 274878,
|
2036
|
+
:ebs_optimized_available => true,
|
2037
|
+
:instance_store_volumes => 0
|
2038
|
+
},
|
2039
|
+
{
|
2040
|
+
:id => 'r6g.12xlarge',
|
2041
|
+
:name => 'R6G Twelve Extra Large',
|
2042
|
+
:bits => 64,
|
2043
|
+
:cores => 48,
|
2044
|
+
:disk => 0,
|
2045
|
+
:ram => 412317,
|
2046
|
+
:ebs_optimized_available => true,
|
2047
|
+
:instance_store_volumes => 0
|
2048
|
+
},
|
2049
|
+
{
|
2050
|
+
:id => 'r6g.16xlarge',
|
2051
|
+
:name => 'R6G Sixteen Extra Large',
|
2052
|
+
:bits => 64,
|
2053
|
+
:cores => 64,
|
2054
|
+
:disk => 0,
|
2055
|
+
:ram => 549756,
|
2056
|
+
:ebs_optimized_available => true,
|
2057
|
+
:instance_store_volumes => 0
|
2058
|
+
},
|
2059
|
+
{
|
2060
|
+
:id => 'r6g.metal',
|
2061
|
+
:name => 'R6G Metal',
|
2062
|
+
:bits => 64,
|
2063
|
+
:cores => 64,
|
2064
|
+
:disk => 0,
|
2065
|
+
:ram => 549756,
|
2066
|
+
:ebs_optimized_available => true,
|
2067
|
+
:instance_store_volumes => 0
|
2068
|
+
},
|
2069
|
+
{
|
2070
|
+
:id => 'r6gd.medium',
|
2071
|
+
:name => 'R6GD Medium',
|
2072
|
+
:bits => 64,
|
2073
|
+
:cores => 1,
|
2074
|
+
:disk => 59,
|
2075
|
+
:ram => 8590,
|
2076
|
+
:ebs_optimized_available => true,
|
2077
|
+
:instance_store_volumes => 1
|
2078
|
+
},
|
2079
|
+
{
|
2080
|
+
:id => 'r6gd.large',
|
2081
|
+
:name => 'R6GD Large',
|
2082
|
+
:bits => 64,
|
2083
|
+
:cores => 2,
|
2084
|
+
:disk => 118,
|
2085
|
+
:ram => 17180,
|
2086
|
+
:ebs_optimized_available => true,
|
2087
|
+
:instance_store_volumes => 1
|
2088
|
+
},
|
2089
|
+
{
|
2090
|
+
:id => 'r6gd.xlarge',
|
2091
|
+
:name => 'R6GD Extra Large',
|
2092
|
+
:bits => 64,
|
2093
|
+
:cores => 4,
|
2094
|
+
:disk => 237,
|
2095
|
+
:ram => 34360,
|
2096
|
+
:ebs_optimized_available => true,
|
2097
|
+
:instance_store_volumes => 1
|
2098
|
+
},
|
2099
|
+
{
|
2100
|
+
:id => 'r6gd.2xlarge',
|
2101
|
+
:name => 'R6GD Double Extra Large',
|
2102
|
+
:bits => 64,
|
2103
|
+
:cores => 8,
|
2104
|
+
:disk => 474,
|
2105
|
+
:ram => 68719,
|
2106
|
+
:ebs_optimized_available => true,
|
2107
|
+
:instance_store_volumes => 1
|
2108
|
+
},
|
2109
|
+
{
|
2110
|
+
:id => 'r6gd.4xlarge',
|
2111
|
+
:name => 'R6GD Quadruple Extra Large',
|
2112
|
+
:bits => 64,
|
2113
|
+
:cores => 16,
|
2114
|
+
:disk => 950,
|
2115
|
+
:ram => 137439,
|
2116
|
+
:ebs_optimized_available => true,
|
2117
|
+
:instance_store_volumes => 1
|
2118
|
+
},
|
2119
|
+
{
|
2120
|
+
:id => 'r6gd.8xlarge',
|
2121
|
+
:name => 'R6GD Octuple Extra Large',
|
2122
|
+
:bits => 64,
|
2123
|
+
:cores => 32,
|
2124
|
+
:disk => 1900,
|
2125
|
+
:ram => 274878,
|
2126
|
+
:ebs_optimized_available => true,
|
2127
|
+
:instance_store_volumes => 1
|
2128
|
+
},
|
2129
|
+
{
|
2130
|
+
:id => 'r6gd.12xlarge',
|
2131
|
+
:name => 'R6GD Twelve Extra Large',
|
2132
|
+
:bits => 64,
|
2133
|
+
:cores => 48,
|
2134
|
+
:disk => 2850,
|
2135
|
+
:ram => 412317,
|
2136
|
+
:ebs_optimized_available => true,
|
2137
|
+
:instance_store_volumes => 2
|
2138
|
+
},
|
2139
|
+
{
|
2140
|
+
:id => 'r6gd.16xlarge',
|
2141
|
+
:name => 'R6GD Sixteen Extra Large',
|
2142
|
+
:bits => 64,
|
2143
|
+
:cores => 64,
|
2144
|
+
:disk => 3800,
|
2145
|
+
:ram => 549756,
|
2146
|
+
:ebs_optimized_available => true,
|
2147
|
+
:instance_store_volumes => 2
|
2148
|
+
},
|
2149
|
+
{
|
2150
|
+
:id => 'r6gd.metal',
|
2151
|
+
:name => 'R6GD Metal',
|
2152
|
+
:bits => 64,
|
2153
|
+
:cores => 64,
|
2154
|
+
:disk => 3800,
|
2155
|
+
:ram => 549756,
|
2156
|
+
:ebs_optimized_available => true,
|
2157
|
+
:instance_store_volumes => 2
|
2158
|
+
},
|
1699
2159
|
{
|
1700
2160
|
:id => "x1.16xlarge",
|
1701
2161
|
:name => "X1 Sixteen Extra Large",
|