fog-aws 1.4.1 → 2.0.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 +9 -8
- data/CHANGELOG.md +40 -2
- data/CONTRIBUTING.md +6 -6
- data/CONTRIBUTORS.md +104 -1
- data/LICENSE.md +1 -1
- data/fog-aws.gemspec +4 -2
- data/lib/fog/aws.rb +1 -0
- data/lib/fog/aws/compute.rb +86 -2
- data/lib/fog/aws/credential_fetcher.rb +4 -2
- data/lib/fog/aws/mock.rb +8 -0
- data/lib/fog/aws/models/compute/flavors.rb +40 -0
- data/lib/fog/aws/models/compute/subnet.rb +1 -0
- data/lib/fog/aws/models/compute/vpc.rb +11 -2
- data/lib/fog/aws/models/iam/access_keys.rb +0 -2
- data/lib/fog/aws/models/rds/instance_option.rb +6 -0
- data/lib/fog/aws/parsers/compute/create_subnet.rb +2 -0
- data/lib/fog/aws/parsers/compute/describe_subnets.rb +1 -1
- data/lib/fog/aws/parsers/compute/describe_vpcs.rb +71 -37
- data/lib/fog/aws/parsers/iam/list_access_keys.rb +1 -1
- data/lib/fog/aws/parsers/rds/describe_orderable_db_instance_options.rb +4 -3
- data/lib/fog/aws/requests/auto_scaling/detach_instances.rb +3 -4
- data/lib/fog/aws/requests/compute/authorize_security_group_egress.rb +8 -6
- data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +25 -21
- data/lib/fog/aws/requests/compute/copy_snapshot.rb +22 -9
- data/lib/fog/aws/requests/compute/create_network_interface.rb +2 -2
- data/lib/fog/aws/requests/compute/create_route_table.rb +1 -1
- data/lib/fog/aws/requests/compute/create_security_group.rb +24 -19
- data/lib/fog/aws/requests/compute/create_subnet.rb +14 -10
- data/lib/fog/aws/requests/compute/create_vpc.rb +38 -10
- data/lib/fog/aws/requests/compute/delete_security_group.rb +9 -9
- data/lib/fog/aws/requests/compute/describe_network_interface_attribute.rb +16 -14
- data/lib/fog/aws/requests/compute/describe_security_groups.rb +30 -6
- data/lib/fog/aws/requests/compute/describe_subnets.rb +12 -11
- data/lib/fog/aws/requests/compute/modify_network_interface_attribute.rb +3 -3
- data/lib/fog/aws/requests/compute/revoke_security_group_egress.rb +19 -25
- data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +18 -25
- data/lib/fog/aws/requests/compute/run_instances.rb +1 -1
- data/lib/fog/aws/requests/efs/create_mount_target.rb +8 -4
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +6 -37
- data/lib/fog/aws/requests/kinesis/put_record.rb +1 -2
- data/lib/fog/aws/requests/kinesis/put_records.rb +1 -2
- data/lib/fog/aws/requests/lambda/invoke.rb +1 -1
- data/lib/fog/aws/requests/rds/describe_orderable_db_instance_options.rb +12 -6
- data/lib/fog/aws/requests/storage/put_object.rb +0 -1
- data/lib/fog/aws/service_mapper.rb +129 -0
- data/lib/fog/aws/version.rb +1 -1
- data/tests/helpers/collection_helper.rb +0 -6
- data/tests/models/efs/mount_target_tests.rb +3 -1
- data/tests/models/elasticache/subnet_groups_tests.rb +0 -1
- data/tests/models/storage/file_tests.rb +0 -4
- data/tests/models/storage/url_tests.rb +1 -20
- data/tests/models/storage/versions_tests.rb +0 -5
- data/tests/requests/compute/network_interface_tests.rb +2 -13
- data/tests/requests/compute/subnet_tests.rb +3 -1
- data/tests/requests/compute/vpc_tests.rb +8 -6
- data/tests/requests/dns/dns_tests.rb +0 -4
- data/tests/requests/efs/file_system_tests.rb +1 -1
- data/tests/requests/iam/managed_policy_tests.rb +0 -1
- data/tests/requests/iam/versioned_managed_policy_tests.rb +3 -12
- data/tests/requests/lambda/helper.rb +2 -2
- data/tests/requests/rds/helper.rb +7 -2
- data/tests/requests/rds/instance_option_tests.rb +7 -1
- data/tests/requests/storage/object_tests.rb +2 -11
- metadata +9 -10
- data/gemfiles/Gemfile-ruby-1.8.7 +0 -6
- data/gemfiles/Gemfile-ruby-1.9 +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1333d97b46328c7d155dadd9e011bcd0ff22aa27
|
4
|
+
data.tar.gz: 175d6c62b9edd36d1283ed6b278f6fafdaf549cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adb1c6076ad3a0aadb5b57f1e89a4ec30f96207536364769e9a97cd5f71a25fae0f9e59b42075c2f3177be1473930ba8e660b16968d1e749d19150f23b8eadac
|
7
|
+
data.tar.gz: f9662b2eaefb2c14033db0a8c6657ae89039cb92c9a329b40a3d3a7c26c0053f1f3996e95f073b5b5e8dcc30abb23c35d66d9efec1c8f87b68238e8343a2fca8
|
data/.travis.yml
CHANGED
@@ -7,10 +7,6 @@ branches:
|
|
7
7
|
matrix:
|
8
8
|
fast_finish: true
|
9
9
|
include:
|
10
|
-
- rvm: 1.8.7
|
11
|
-
gemfile: gemfiles/Gemfile-ruby-1.8.7
|
12
|
-
- rvm: 1.9.3
|
13
|
-
gemfile: gemfiles/Gemfile-ruby-1.9
|
14
10
|
- rvm: 2.0.0
|
15
11
|
gemfile: gemfiles/Gemfile-ruby-2.0
|
16
12
|
- rvm: 2.1.0
|
@@ -27,14 +23,17 @@ matrix:
|
|
27
23
|
gemfile: gemfiles/Gemfile-edge
|
28
24
|
- rvm: 2.3.0
|
29
25
|
gemfile: Gemfile
|
30
|
-
- rvm: jruby-18mode
|
31
|
-
gemfile: gemfiles/Gemfile-ruby-1.8.7
|
32
|
-
- rvm: jruby-19mode
|
33
|
-
gemfile: gemfiles/Gemfile-ruby-1.9
|
34
26
|
- rvm: jruby-head
|
35
27
|
gemfile: Gemfile
|
36
28
|
allow_failures:
|
37
29
|
- rvm: jruby-head
|
30
|
+
gemfile: Gemfile
|
31
|
+
- rvm: 2.2.0
|
32
|
+
gemfile: gemfiles/Gemfile-edge
|
33
|
+
- rvm: 2.3.0
|
34
|
+
gemfile: gemfiles/Gemfile-edge
|
35
|
+
- rvm: 2.1.1
|
36
|
+
gemfile: gemfiles/Gemfile-edge
|
38
37
|
notifications:
|
39
38
|
email: false
|
40
39
|
irc:
|
@@ -47,6 +46,8 @@ notifications:
|
|
47
46
|
on_success: always
|
48
47
|
on_failure: always
|
49
48
|
use_notice: false
|
49
|
+
before_install:
|
50
|
+
- gem update bundler
|
50
51
|
env:
|
51
52
|
global:
|
52
53
|
secure: LlDKdKSRo3sEjQ55XesbOXhKZ3RrOtqoD1ZL8Wx39K3iVzeEV3Kc8HjDfEvo7R4pOc3BMTNJcputklVEPN0FkWGN7Py+OEtbHj3IZl0MX+KEWNk0gU+4+sgPrL1eXUQyMUSkCrBsKg08rPel4KMYUOXbtnLyUU9PDbBwm4LJYOc=
|
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,44 @@
|
|
2
2
|
|
3
3
|
## [Unreleased](https://github.com/fog/fog-aws/tree/HEAD)
|
4
4
|
|
5
|
-
[Full Changelog](https://github.com/fog/fog-aws/compare/v1.4.
|
5
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v1.4.1...HEAD)
|
6
|
+
|
7
|
+
**Closed issues:**
|
8
|
+
|
9
|
+
- connect\_write timeout on AWS CodeBuild [\#413](https://github.com/fog/fog-aws/issues/413)
|
10
|
+
- cannot load such file -- fog \(LoadError\) [\#401](https://github.com/fog/fog-aws/issues/401)
|
11
|
+
- Missing file for extraction? [\#390](https://github.com/fog/fog-aws/issues/390)
|
12
|
+
- Regression: IO stream sent to AWS fails [\#388](https://github.com/fog/fog-aws/issues/388)
|
13
|
+
- Stack Level Too Deep on YAML Serialization [\#385](https://github.com/fog/fog-aws/issues/385)
|
14
|
+
- models/elb/model\_tests does not properly cleanup [\#347](https://github.com/fog/fog-aws/issues/347)
|
15
|
+
- Generates wrong url when region is not DEFAULT\_REGION [\#214](https://github.com/fog/fog-aws/issues/214)
|
16
|
+
|
17
|
+
**Merged pull requests:**
|
18
|
+
|
19
|
+
- upgrade rubyzip to \>= 1.2.1 [\#416](https://github.com/fog/fog-aws/pull/416) ([lanej](https://github.com/lanej))
|
20
|
+
- correction in iam/list\_access\_keys parser: Username should be UserName [\#415](https://github.com/fog/fog-aws/pull/415) ([patleb](https://github.com/patleb))
|
21
|
+
- Avoid creating connection if region is not nil [\#414](https://github.com/fog/fog-aws/pull/414) ([hideto0710](https://github.com/hideto0710))
|
22
|
+
- Resolving issue where `Fog::Json` was called instead of `Fog::JSON`. [\#412](https://github.com/fog/fog-aws/pull/412) ([mgarrick](https://github.com/mgarrick))
|
23
|
+
- Add t2.micro in flavors list [\#411](https://github.com/fog/fog-aws/pull/411) ([KevinLoiseau](https://github.com/KevinLoiseau))
|
24
|
+
- Adding AWS P3 Tesla GPU instance types [\#409](https://github.com/fog/fog-aws/pull/409) ([hamelsmu](https://github.com/hamelsmu))
|
25
|
+
- Add jitter to exponential backoff [\#408](https://github.com/fog/fog-aws/pull/408) ([masstamike](https://github.com/masstamike))
|
26
|
+
- Add emulation of default VPC to mocked mode. [\#407](https://github.com/fog/fog-aws/pull/407) ([rzaharenkov](https://github.com/rzaharenkov))
|
27
|
+
- Update rds instance options model [\#406](https://github.com/fog/fog-aws/pull/406) ([carloslima](https://github.com/carloslima))
|
28
|
+
- Drop Ruby\<2.0 support [\#405](https://github.com/fog/fog-aws/pull/405) ([tbrisker](https://github.com/tbrisker))
|
29
|
+
- allow Gemfile-edge travis builds to fail [\#403](https://github.com/fog/fog-aws/pull/403) ([lanej](https://github.com/lanej))
|
30
|
+
- Add `default\_for\_az` attribute to subnet [\#402](https://github.com/fog/fog-aws/pull/402) ([rzaharenkov](https://github.com/rzaharenkov))
|
31
|
+
- bundler ~\> 1.15 [\#399](https://github.com/fog/fog-aws/pull/399) ([lanej](https://github.com/lanej))
|
32
|
+
- Fix detaching instances from auto scaling group. [\#397](https://github.com/fog/fog-aws/pull/397) ([rzaharenkov](https://github.com/rzaharenkov))
|
33
|
+
- Issue \#387 Fog::Compute::AWS::Vpcs returns VPCs with nil ids [\#396](https://github.com/fog/fog-aws/pull/396) ([maguec](https://github.com/maguec))
|
34
|
+
- feat\(CONTRIBUTORS\): Update [\#394](https://github.com/fog/fog-aws/pull/394) ([plribeiro3000](https://github.com/plribeiro3000))
|
35
|
+
- fix\(Tests\):Remove debugging [\#393](https://github.com/fog/fog-aws/pull/393) ([plribeiro3000](https://github.com/plribeiro3000))
|
36
|
+
- Migrate Service mapper from Fog [\#392](https://github.com/fog/fog-aws/pull/392) ([plribeiro3000](https://github.com/plribeiro3000))
|
37
|
+
- Add ability to encrypt a copy of an unencrypted snapshot [\#391](https://github.com/fog/fog-aws/pull/391) ([nodecarter](https://github.com/nodecarter))
|
38
|
+
- Fix VPC parser [\#389](https://github.com/fog/fog-aws/pull/389) ([ddiachkov](https://github.com/ddiachkov))
|
39
|
+
- fix default\_security\_group detection [\#348](https://github.com/fog/fog-aws/pull/348) ([lanej](https://github.com/lanej))
|
40
|
+
|
41
|
+
## [v1.4.1](https://github.com/fog/fog-aws/tree/v1.4.1) (2017-08-23)
|
42
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v1.4.0...v1.4.1)
|
6
43
|
|
7
44
|
**Closed issues:**
|
8
45
|
|
@@ -13,6 +50,7 @@
|
|
13
50
|
|
14
51
|
**Merged pull requests:**
|
15
52
|
|
53
|
+
- Update changelog for 1.4.0 [\#383](https://github.com/fog/fog-aws/pull/383) ([greysteil](https://github.com/greysteil))
|
16
54
|
- Allow specifying kms key id to use [\#382](https://github.com/fog/fog-aws/pull/382) ([fcheung](https://github.com/fcheung))
|
17
55
|
- added support to retrieve and create vpc with ipv6 cidr block [\#381](https://github.com/fog/fog-aws/pull/381) ([chanakyacool](https://github.com/chanakyacool))
|
18
56
|
- Add MaxResults filter to describe reserved instances offerings [\#376](https://github.com/fog/fog-aws/pull/376) ([KevinLoiseau](https://github.com/KevinLoiseau))
|
@@ -305,7 +343,7 @@
|
|
305
343
|
- Allow region to be set for STS [\#189](https://github.com/fog/fog-aws/pull/189) ([fcheung](https://github.com/fcheung))
|
306
344
|
- add cn support for s3 [\#187](https://github.com/fog/fog-aws/pull/187) ([ming-relax](https://github.com/ming-relax))
|
307
345
|
- mock instance stop and start properly [\#184](https://github.com/fog/fog-aws/pull/184) ([ehowe](https://github.com/ehowe))
|
308
|
-
- Disable idempotent option when block is passed to get\_object [\#183](https://github.com/fog/fog-aws/pull/183) ([
|
346
|
+
- Disable idempotent option when block is passed to get\_object [\#183](https://github.com/fog/fog-aws/pull/183) ([ghost](https://github.com/ghost))
|
309
347
|
- 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))
|
310
348
|
- add IAM role paging [\#178](https://github.com/fog/fog-aws/pull/178) ([lanej](https://github.com/lanej))
|
311
349
|
- properly mock rds name update [\#170](https://github.com/fog/fog-aws/pull/170) ([ehowe](https://github.com/ehowe))
|
data/CONTRIBUTING.md
CHANGED
@@ -5,14 +5,14 @@ New contributors are always welcome, when it doubt please ask questions. We stri
|
|
5
5
|
### Coding
|
6
6
|
|
7
7
|
* Pick a task:
|
8
|
-
* Offer feedback on open [pull requests](https://github.com/fog/fog/pulls).
|
9
|
-
* Review open [issues](https://github.com/fog/fog/issues) for things to help on.
|
10
|
-
* [Create an issue](https://github.com/fog/fog/issues/new) to start a discussion on additions or features.
|
8
|
+
* Offer feedback on open [pull requests](https://github.com/fog/fog-aws/pulls).
|
9
|
+
* Review open [issues](https://github.com/fog/fog-aws/issues) for things to help on.
|
10
|
+
* [Create an issue](https://github.com/fog/fog-aws/issues/new) to start a discussion on additions or features.
|
11
11
|
* Fork the project, add your changes and tests to cover them in a topic branch.
|
12
|
-
* Commit your changes and rebase against `fog/fog` to ensure everything is up to date.
|
13
|
-
* [Submit a pull request](https://github.com/fog/fog/compare/).
|
12
|
+
* Commit your changes and rebase against `fog/fog-aws` to ensure everything is up to date.
|
13
|
+
* [Submit a pull request](https://github.com/fog/fog-aws/compare/).
|
14
14
|
|
15
15
|
### Non-Coding
|
16
16
|
|
17
|
-
* Offer feedback on open [issues](https://github.com/fog/fog/issues).
|
17
|
+
* Offer feedback on open [issues](https://github.com/fog/fog-aws/issues).
|
18
18
|
* Organize or volunteer at events.
|
data/CONTRIBUTORS.md
CHANGED
@@ -1,5 +1,108 @@
|
|
1
|
+
* Aakash Shah <ashah@pivotal.io>
|
2
|
+
* Aaron Stone <aaron@serendipity.cx>
|
3
|
+
* Akira Matsuda <ronnie@dio.jp>
|
4
|
+
* Alessandro Lepore <lepore.ale@gmail.com>
|
5
|
+
* Alex Coomans <alex@alexcoomans.com>
|
6
|
+
* Alexander Stuart-Kregor <easkay@me.com>
|
7
|
+
* Andrew Kane <acekane1@gmail.com>
|
8
|
+
* Anthony Mangano <anthony@backupify.com>
|
9
|
+
* Ayumi Yu <ayumi@ayumiyu.com>
|
10
|
+
* Ben Balter <ben.balter@github.com>
|
11
|
+
* Benjamin Pillet <ben_pillet@yahoo.com>
|
12
|
+
* Brett Cave <brett@cave.za.net>
|
13
|
+
* Brian Nelson <mrpoundsign@gmail.com>
|
14
|
+
* Caged <justin@labratrevenge.com>
|
15
|
+
* Carlos Lima <carlos@cpan.org>
|
16
|
+
* Chanakya Devraj <chanakya.devraj@cuelogic.co.in>
|
17
|
+
* Corey Donohoe <atmos@atmos.org>
|
18
|
+
* Craig Genner <craig.genner@piksel.com>
|
19
|
+
* Damien Mathieu <damien@heroku.com>
|
20
|
+
* Dan Brooking <dbrooking@datapipe.com>
|
21
|
+
* Dan Rogers <drogers@popsugar.com>
|
22
|
+
* Daniel Farina <daniel@heroku.com>
|
23
|
+
* Danny Guinther <danny@backupify.com>
|
24
|
+
* David Judd <david@academia.edu>
|
25
|
+
* David Vaz <david.ferd.vaz@gmail.com>
|
26
|
+
* Decklin Foster <decklin@red-bean.com>
|
27
|
+
* Duarte Henriques <duarte.henriques@seedrs.com>
|
28
|
+
* Ed Healy <ehealy@gmail.com>
|
29
|
+
* Eddie Johnston <eddie@beanstalk.ie>
|
30
|
+
* Eric Herot <eric.github@herot.com>
|
31
|
+
* Esther Villars <esthervillars@gmail.com>
|
32
|
+
* Eugene Howe <eugene@xtreme-computers.net>
|
33
|
+
* Freddy Chu <freddy@expressvpn.com>
|
1
34
|
* Frederick Cheung <frederick.cheung@gmail.com>
|
35
|
+
* GitHub <noreply@github.com>
|
36
|
+
* Greg Burek <greg.burek@gmail.com>
|
37
|
+
* Grey Baker <greysteil@gmail.com>
|
38
|
+
* Huang Yaming <yumminhuang@gmail.com>
|
39
|
+
* ICHII Takashi <ichii386@schweetheart.jp>
|
40
|
+
* Jack Thomas <jack@scalefactory.com>
|
41
|
+
* Jacob Burkhart <jburkhart@engineyard.com>
|
42
|
+
* James Muscat <james.muscat@alces-software.com>
|
43
|
+
* James Myers <jfmyers9@gmail.com>
|
44
|
+
* James Rucker <james.rucker@legitscript.com>
|
45
|
+
* Jon-Erik Schneiderhan <jon-erik.schneiderhan@meyouhealth.com>
|
46
|
+
* Jonathan Hanson <jonathan@jonathan-hanson.org>
|
47
|
+
* Jose Luis Salas <josacar@gmail.com>
|
48
|
+
* Josh Lane & Michelle Noorali <jlane@engineyard.com>
|
49
|
+
* Josh Lane & Michelle Noorali <michellemolu@gmail.com>
|
50
|
+
* Josh Lane <jlane@engineyard.com>
|
2
51
|
* Josh Lane <lanej@users.noreply.github.com>
|
3
52
|
* Josh Lane <me@joshualane.com>
|
53
|
+
* Joshua Lane <me@joshualane.com>
|
54
|
+
* Kevin Loiseau <k.loiseauand@gmail.com>
|
55
|
+
* KevinLoiseau <k.loiseauand@gmail.com>
|
56
|
+
* Khoa Nguyen <khoan@Khoas-MacBook-Pro.local>
|
57
|
+
* Kirk Haines <khaines@engineyard.com>
|
58
|
+
* Kristoffer Roupé <kitofr@gmail.com>
|
59
|
+
* Liu zhitong <z.liu@linkbynet.com>
|
60
|
+
* Luciano Sousa <ls@lucianosousa.net>
|
61
|
+
* Martin Forssen <maf@recordedfuture.com>
|
62
|
+
* Mathew Kamkar <matkam@gmail.com>
|
63
|
+
* Matthew O'Riordan <matthew.oriordan@gmail.com>
|
64
|
+
* Michael Hale <mike@hales.ws>
|
65
|
+
* Michael Sawyer <michael.sawyer@veeva.com>
|
66
|
+
* Michal Tekel <mtekel@gmail.com>
|
67
|
+
* Michelle Noorali & Josh Lane <mnoorali@engineyard.com>
|
68
|
+
* Michelle Noorali <michellemolu@gmail.com>
|
69
|
+
* Miguel Landaeta <miguel@miguel.cc>
|
70
|
+
* Miguel Landaeta <miguel@restorando.com>
|
71
|
+
* Miguel Landaeta <nomadium@gmail.com>
|
72
|
+
* Milad Rastian <milad@sam-media.com>
|
73
|
+
* Moritz Siuts <m.siuts@emetriq.com>
|
74
|
+
* Nawaid Shamim <me@nawaidshamim.com>
|
75
|
+
* Neill Turner <neill.turner@immediate.co.uk>
|
76
|
+
* Nicholas Fowler <nbfowler@gmail.com>
|
77
|
+
* Nicholas Klick <nicholas.klick@gmail.com>
|
78
|
+
* Nilanjan Roy <nilanjan.roy@nosto.com>
|
79
|
+
* Paulo Henrique Lopes Ribeiro <plribeiro3000@gmail.com>
|
80
|
+
* Paulo Ribeiro <plribeiro3000@gmail.com>
|
81
|
+
* Pedro Matos Monteiro <pedro.matos.monteiro@gmail.com>
|
82
|
+
* Puneet Loya <ploya@Asperas-Master-MacBook-Pro.local>
|
83
|
+
* Robert von Massow <r.vonmassow@emetriq.com>
|
84
|
+
* Rocco Galluzzo <rocco@galluzzo.me>
|
85
|
+
* Rodrigo de Almeida Pereira <contato@rodrigo-pereira.net>
|
86
|
+
* Ryan Schlesinger <ryan@ryanschlesinger.com>
|
87
|
+
* Ryunosuke SATO <tricknotes.rs@gmail.com>
|
88
|
+
* Sergey Bahchissaraitsev <sergey@bahchis.com>
|
89
|
+
* Shai Rosenfeld <shai.rosenfeld@autodesk.com>
|
90
|
+
* Shuhei Kagawa <shuhei.kagawa@gmail.com>
|
91
|
+
* Suraj Shirvankar <surajshirvankar@gmail.com>
|
92
|
+
* Todd Willey <xtoddx@gmail.com>
|
93
|
+
* Ville Lautanala <lautis@gmail.com>
|
94
|
+
* Vlad Yarotsky <vlad@remind101.com>
|
95
|
+
* Vít Ondruch <vondruch@redhat.com>
|
4
96
|
* Wesley Beary <geemus@gmail.com>
|
5
|
-
*
|
97
|
+
* Yaming Huang <yumminhuang@gmail.com>
|
98
|
+
* Yusuke Ebihara <biibiebi1234@gmail.com>
|
99
|
+
* chanakya devraj <chanakya.devraj@cuelogic.co.in>
|
100
|
+
* chanakyad-cuelogic <chanakya.devraj@cuelogic.co.in>
|
101
|
+
* ddoc <bgalura@gmail.com>
|
102
|
+
* geemus <geemus@gmail.com>
|
103
|
+
* huming <humings@gmail.com>
|
104
|
+
* miliao <mliao@adobe.com>
|
105
|
+
* mrloop <ewan@mrloop.com>
|
106
|
+
* nob.murakita <nobmurakita@users.noreply.github.com>
|
107
|
+
* solud <jon@joncole.com>
|
108
|
+
* starbelly <starbelly@pobox.com>
|
data/LICENSE.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2014-
|
3
|
+
Copyright (c) 2014-2017 [CONTRIBUTORS.md](https://github.com/fog/fog-aws/blob/master/CONTRIBUTORS.md)
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
6
|
this software and associated documentation files (the "Software"), to deal in
|
data/fog-aws.gemspec
CHANGED
@@ -19,10 +19,12 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.
|
22
|
+
spec.required_ruby_version = '>= 2.0.0'
|
23
|
+
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.15'
|
23
25
|
spec.add_development_dependency 'rake', '~> 10.0'
|
24
26
|
spec.add_development_dependency 'shindo', '~> 0.3'
|
25
|
-
spec.add_development_dependency 'rubyzip', '~>
|
27
|
+
spec.add_development_dependency 'rubyzip', '~> 1.2.1'
|
26
28
|
|
27
29
|
spec.add_dependency 'fog-core', '~> 1.38'
|
28
30
|
spec.add_dependency 'fog-json', '~> 1.0'
|
data/lib/fog/aws.rb
CHANGED
@@ -27,6 +27,7 @@ module Fog
|
|
27
27
|
autoload :CredentialFetcher, File.expand_path('../aws/credential_fetcher', __FILE__)
|
28
28
|
autoload :Errors, File.expand_path('../aws/errors', __FILE__)
|
29
29
|
autoload :Mock, File.expand_path('../aws/mock', __FILE__)
|
30
|
+
autoload :ServiceMapper, File.expand_path('../aws/service_mapper', __FILE__)
|
30
31
|
autoload :SignatureV4, File.expand_path('../aws/signaturev4', __FILE__)
|
31
32
|
|
32
33
|
# Services
|
data/lib/fog/aws/compute.rb
CHANGED
@@ -196,6 +196,8 @@ module Fog
|
|
196
196
|
'vpc' => 'vpc'
|
197
197
|
}
|
198
198
|
|
199
|
+
VPC_BLANK_VALUE = 'none'
|
200
|
+
|
199
201
|
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
200
202
|
|
201
203
|
def self.data
|
@@ -284,7 +286,7 @@ module Fog
|
|
284
286
|
"attributeName" => "supported-platforms"
|
285
287
|
},
|
286
288
|
{
|
287
|
-
"values" => [
|
289
|
+
"values" => [VPC_BLANK_VALUE],
|
288
290
|
"attributeName" => "default-vpc"
|
289
291
|
},
|
290
292
|
{
|
@@ -375,6 +377,79 @@ module Fog
|
|
375
377
|
self.data[:account_attributes].find { |h| h["attributeName"] == "supported-platforms" }["values"] = values
|
376
378
|
end
|
377
379
|
|
380
|
+
def default_vpc
|
381
|
+
vpc_id = describe_account_attributes.body["accountAttributeSet"].find{ |h| h["attributeName"] == "default-vpc" }["values"].first
|
382
|
+
vpc_id == VPC_BLANK_VALUE ? nil : vpc_id
|
383
|
+
end
|
384
|
+
|
385
|
+
def default_vpc=(value)
|
386
|
+
self.data[:account_attributes].find { |h| h["attributeName"] == "default-vpc" }["values"] = [value]
|
387
|
+
end
|
388
|
+
|
389
|
+
def setup_default_vpc!
|
390
|
+
return if default_vpc.present?
|
391
|
+
|
392
|
+
disable_ec2_classic
|
393
|
+
|
394
|
+
vpc_id = Fog::AWS::Mock.default_vpc_for(region)
|
395
|
+
self.default_vpc = vpc_id
|
396
|
+
|
397
|
+
data[:vpcs] << {
|
398
|
+
'vpcId' => vpc_id,
|
399
|
+
'state' => 'available',
|
400
|
+
'cidrBlock' => '172.31.0.0/16',
|
401
|
+
'dhcpOptionsId' => Fog::AWS::Mock.dhcp_options_id,
|
402
|
+
'tagSet' => {},
|
403
|
+
'instanceTenancy' => 'default',
|
404
|
+
'enableDnsSupport' => true,
|
405
|
+
'enableDnsHostnames' => true,
|
406
|
+
'isDefault' => true
|
407
|
+
}
|
408
|
+
|
409
|
+
internet_gateway_id = Fog::AWS::Mock.internet_gateway_id
|
410
|
+
data[:internet_gateways][internet_gateway_id] = {
|
411
|
+
'internetGatewayId' => internet_gateway_id,
|
412
|
+
'attachmentSet' => {
|
413
|
+
'vpcId' => vpc_id,
|
414
|
+
'state' => 'available'
|
415
|
+
},
|
416
|
+
'tagSet' => {}
|
417
|
+
}
|
418
|
+
|
419
|
+
data[:route_tables] << {
|
420
|
+
'routeTableId' => Fog::AWS::Mock.route_table_id,
|
421
|
+
'vpcId' => vpc_id,
|
422
|
+
'routes' => [
|
423
|
+
{
|
424
|
+
'destinationCidrBlock' => '172.31.0.0/16',
|
425
|
+
'gatewayId' => 'local',
|
426
|
+
'state' => 'active',
|
427
|
+
'origin' => 'CreateRouteTable'
|
428
|
+
},
|
429
|
+
{
|
430
|
+
'destinationCidrBlock' => '0.0.0.0/0',
|
431
|
+
'gatewayId' => internet_gateway_id,
|
432
|
+
'state' => 'active',
|
433
|
+
'origin' => 'CreateRoute'
|
434
|
+
}
|
435
|
+
]
|
436
|
+
}
|
437
|
+
|
438
|
+
describe_availability_zones.body['availabilityZoneInfo'].map { |z| z['zoneName'] }.each_with_index do |zone, i|
|
439
|
+
data[:subnets] << {
|
440
|
+
'subnetId' => Fog::AWS::Mock.subnet_id,
|
441
|
+
'state' => 'available',
|
442
|
+
'vpcId' => vpc_id,
|
443
|
+
'cidrBlock' => "172.31.#{i}.0/16",
|
444
|
+
'availableIpAddressCount' => '251',
|
445
|
+
'availabilityZone' => zone,
|
446
|
+
'tagSet' => {},
|
447
|
+
'mapPublicIpOnLaunch' => true,
|
448
|
+
'defaultForAz' => true
|
449
|
+
}
|
450
|
+
end
|
451
|
+
end
|
452
|
+
|
378
453
|
def tagged_resources(resources)
|
379
454
|
Array(resources).map do |resource_id|
|
380
455
|
if match = resource_id.match(/^(\w+)-[a-z0-9]{8}/i)
|
@@ -560,7 +635,16 @@ module Fog
|
|
560
635
|
Fog::Compute::AWS::NotFound.slurp(error, match[:message])
|
561
636
|
when 'RequestLimitExceeded'
|
562
637
|
if retries < max_retries
|
563
|
-
|
638
|
+
jitter = rand(100)
|
639
|
+
waiting = true
|
640
|
+
start_time = Time.now
|
641
|
+
wait_time = ((2.0 ** (1.0 + retries) * 100) + jitter) / 1000.0
|
642
|
+
Fog::Logger.warning "Waiting #{wait_time} seconds to retry."
|
643
|
+
while waiting
|
644
|
+
if Time.now - start_time >= wait_time
|
645
|
+
waiting = false
|
646
|
+
end
|
647
|
+
end
|
564
648
|
retries += 1
|
565
649
|
retry
|
566
650
|
else
|
@@ -23,8 +23,10 @@ module Fog
|
|
23
23
|
credential_path = options[:credential_path] || ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
|
24
24
|
role_data = connection.get(:path => credential_path, :idempotent => true, :expects => 200).body
|
25
25
|
|
26
|
-
|
27
|
-
|
26
|
+
if region.nil?
|
27
|
+
connection = options[:metadata_connection] || Excon.new(INSTANCE_METADATA_HOST)
|
28
|
+
region = connection.get(:path => INSTANCE_METADATA_AZ, :idempotent => true, :expects => 200).body[0..-2]
|
29
|
+
end
|
28
30
|
else
|
29
31
|
connection = options[:connection] || Excon.new(INSTANCE_METADATA_HOST)
|
30
32
|
role_name = connection.get(:path => INSTANCE_METADATA_PATH, :idempotent => true, :expects => 200).body
|
data/lib/fog/aws/mock.rb
CHANGED
@@ -145,6 +145,9 @@ module Fog
|
|
145
145
|
def self.zone_id
|
146
146
|
"zone-#{Fog::Mock.random_hex(8)}"
|
147
147
|
end
|
148
|
+
def self.route_table_id
|
149
|
+
"rtb-#{Fog::Mock.random_hex(8)}"
|
150
|
+
end
|
148
151
|
def self.change_id
|
149
152
|
Fog::Mock.random_letters_and_numbers(14)
|
150
153
|
end
|
@@ -181,6 +184,11 @@ module Fog
|
|
181
184
|
'SUSE Linux'
|
182
185
|
]
|
183
186
|
end
|
187
|
+
|
188
|
+
def self.default_vpc_for(region)
|
189
|
+
@default_vpcs ||= {}
|
190
|
+
@default_vpcs[region] ||= vpc_id
|
191
|
+
end
|
184
192
|
end
|
185
193
|
end
|
186
194
|
end
|
@@ -14,6 +14,16 @@ module Fog
|
|
14
14
|
:ebs_optimized_available => false,
|
15
15
|
:instance_store_volumes => 0
|
16
16
|
},
|
17
|
+
{
|
18
|
+
:id => 't2.nano',
|
19
|
+
:name => 'Nano Instance',
|
20
|
+
:bits => 64,
|
21
|
+
:cores => 1,
|
22
|
+
:disk => 0,
|
23
|
+
:ram => 512,
|
24
|
+
:ebs_optimized_available => false,
|
25
|
+
:instance_store_volumes => 0
|
26
|
+
},
|
17
27
|
{
|
18
28
|
:id => 't2.micro',
|
19
29
|
:name => 'Micro Instance',
|
@@ -713,6 +723,36 @@ module Fog
|
|
713
723
|
:disk => 0,
|
714
724
|
:ebs_optimized_available => true,
|
715
725
|
:instance_store_volumes => 0
|
726
|
+
},
|
727
|
+
{
|
728
|
+
:id => "p3.2xlarge",
|
729
|
+
:name => "Tesla GPU Two Extra Large",
|
730
|
+
:bits => 64,
|
731
|
+
:cores => 5120,
|
732
|
+
:ram => 6100,
|
733
|
+
:disk => 0,
|
734
|
+
:ebs_optimized_available => true,
|
735
|
+
:instance_store_volumes => 0
|
736
|
+
},
|
737
|
+
{
|
738
|
+
:id => "p3.8xlarge",
|
739
|
+
:name => "Tesla GPU Eight Extra Large",
|
740
|
+
:bits => 64,
|
741
|
+
:cores => 204080,
|
742
|
+
:ram => 244000,
|
743
|
+
:disk => 0,
|
744
|
+
:ebs_optimized_available => true,
|
745
|
+
:instance_store_volumes => 0
|
746
|
+
},
|
747
|
+
{
|
748
|
+
:id => "p3.16xlarge",
|
749
|
+
:name => "Tesla GPU Sixteen Extra Large",
|
750
|
+
:bits => 64,
|
751
|
+
:cores => 408160,
|
752
|
+
:ram => 488000,
|
753
|
+
:disk => 0,
|
754
|
+
:ebs_optimized_available => true,
|
755
|
+
:instance_store_volumes => 0
|
716
756
|
}
|
717
757
|
]
|
718
758
|
|