fog-aws 0.10.0 → 0.11.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 +2 -2
 - data/CHANGELOG.md +12 -1
 - data/fog-aws.gemspec +1 -1
 - data/gemfiles/Gemfile-ruby-1.9 +6 -0
 - data/lib/fog/aws/credential_fetcher.rb +19 -4
 - data/lib/fog/aws/models/rds/cluster.rb +2 -2
 - data/lib/fog/aws/models/storage/file.rb +9 -2
 - data/lib/fog/aws/version.rb +1 -1
 - data/tests/credentials_tests.rb +14 -0
 - metadata +4 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b96d5e8e4defc964f4f383e3db8e5e933101ea78
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: ee9929b2c953ecd1962311725a3ae17ed4396a0c
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: bc2f7b1df08b2a0bf9fbd54a87db7d7b18c7d5360e7661f060a906e51685564d68f809521db01dfa40711389859fc2d69a6207d5d21024b5e9c0fdcb1ad91ea0
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 391f26896bb27d3fc601329a11d68aac5d865a3bd1c9fff1319f02cd789d8bad7ce91d1ad152e7607175ab80ff43baa196d153d35e2ec06d9f86c5aea73e6cfc
         
     | 
    
        data/.travis.yml
    CHANGED
    
    | 
         @@ -10,7 +10,7 @@ matrix: 
     | 
|
| 
       10 
10 
     | 
    
         
             
              - rvm: 1.8.7
         
     | 
| 
       11 
11 
     | 
    
         
             
                gemfile: gemfiles/Gemfile-ruby-1.8.7
         
     | 
| 
       12 
12 
     | 
    
         
             
              - rvm: 1.9.3
         
     | 
| 
       13 
     | 
    
         
            -
                gemfile: Gemfile
         
     | 
| 
      
 13 
     | 
    
         
            +
                gemfile: gemfiles/Gemfile-ruby-1.9
         
     | 
| 
       14 
14 
     | 
    
         
             
              - rvm: 2.0.0
         
     | 
| 
       15 
15 
     | 
    
         
             
                gemfile: Gemfile
         
     | 
| 
       16 
16 
     | 
    
         
             
              - rvm: 2.1.0
         
     | 
| 
         @@ -30,7 +30,7 @@ matrix: 
     | 
|
| 
       30 
30 
     | 
    
         
             
              - rvm: jruby-18mode
         
     | 
| 
       31 
31 
     | 
    
         
             
                gemfile: gemfiles/Gemfile-ruby-1.8.7
         
     | 
| 
       32 
32 
     | 
    
         
             
              - rvm: jruby-19mode
         
     | 
| 
       33 
     | 
    
         
            -
                gemfile: Gemfile
         
     | 
| 
      
 33 
     | 
    
         
            +
                gemfile: gemfiles/Gemfile-ruby-1.9
         
     | 
| 
       34 
34 
     | 
    
         
             
              - rvm: jruby-head
         
     | 
| 
       35 
35 
     | 
    
         
             
                gemfile: Gemfile
         
     | 
| 
       36 
36 
     | 
    
         
             
              allow_failures:
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -2,7 +2,18 @@ 
     | 
|
| 
       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/v0. 
     | 
| 
      
 5 
     | 
    
         
            +
            [Full Changelog](https://github.com/fog/fog-aws/compare/v0.10.0...HEAD)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            **Merged pull requests:**
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            - GitHub does no longer provide http:// pages [\#284](https://github.com/fog/fog-aws/pull/284) ([amatsuda](https://github.com/amatsuda))
         
     | 
| 
      
 10 
     | 
    
         
            +
            - Skip multipart if body size is less than chunk.  [\#283](https://github.com/fog/fog-aws/pull/283) ([brettcave](https://github.com/brettcave))
         
     | 
| 
      
 11 
     | 
    
         
            +
            - ECS container credentials [\#281](https://github.com/fog/fog-aws/pull/281) ([ryansch](https://github.com/ryansch))
         
     | 
| 
      
 12 
     | 
    
         
            +
            - test\(ci\): fix 1.9 builds with json \>= 2.0 [\#280](https://github.com/fog/fog-aws/pull/280) ([lanej](https://github.com/lanej))
         
     | 
| 
      
 13 
     | 
    
         
            +
            - Change DBSubnetGroup to DBSubnetGroupName model cluster while creation [\#279](https://github.com/fog/fog-aws/pull/279) ([chanakyacool](https://github.com/chanakyacool))
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            ## [v0.10.0](https://github.com/fog/fog-aws/tree/v0.10.0) (2016-07-15)
         
     | 
| 
      
 16 
     | 
    
         
            +
            [Full Changelog](https://github.com/fog/fog-aws/compare/v0.9.4...v0.10.0)
         
     | 
| 
       6 
17 
     | 
    
         | 
| 
       7 
18 
     | 
    
         
             
            **Closed issues:**
         
     | 
| 
       8 
19 
     | 
    
         | 
    
        data/fog-aws.gemspec
    CHANGED
    
    | 
         @@ -11,7 +11,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       11 
11 
     | 
    
         
             
              spec.summary       = %q{Module for the 'fog' gem to support Amazon Web Services.}
         
     | 
| 
       12 
12 
     | 
    
         
             
              spec.description   = %q{This library can be used as a module for `fog` or as standalone provider
         
     | 
| 
       13 
13 
     | 
    
         
             
                                    to use the Amazon Web Services in applications..}
         
     | 
| 
       14 
     | 
    
         
            -
              spec.homepage      = " 
     | 
| 
      
 14 
     | 
    
         
            +
              spec.homepage      = "https://github.com/fog/fog-aws"
         
     | 
| 
       15 
15 
     | 
    
         
             
              spec.license       = "MIT"
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
              spec.files         = `git ls-files -z`.split("\x0")
         
     | 
| 
         @@ -6,6 +6,8 @@ module Fog 
     | 
|
| 
       6 
6 
     | 
    
         
             
                  INSTANCE_METADATA_PATH = "/latest/meta-data/iam/security-credentials/"
         
     | 
| 
       7 
7 
     | 
    
         
             
                  INSTANCE_METADATA_AZ = "/latest/meta-data/placement/availability-zone/"
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
                  CONTAINER_CREDENTIALS_HOST = "http://169.254.170.2"
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       9 
11 
     | 
    
         
             
                  module ServiceMethods
         
     | 
| 
       10 
12 
     | 
    
         
             
                    def fetch_credentials(options)
         
     | 
| 
       11 
13 
     | 
    
         
             
                      if options[:use_iam_profile] && Fog.mocking?
         
     | 
| 
         @@ -13,10 +15,23 @@ module Fog 
     | 
|
| 
       13 
15 
     | 
    
         
             
                      end
         
     | 
| 
       14 
16 
     | 
    
         
             
                      if options[:use_iam_profile]
         
     | 
| 
       15 
17 
     | 
    
         
             
                        begin
         
     | 
| 
       16 
     | 
    
         
            -
                           
     | 
| 
       17 
     | 
    
         
            -
                           
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                           
     | 
| 
      
 18 
     | 
    
         
            +
                          role_data = nil
         
     | 
| 
      
 19 
     | 
    
         
            +
                          az_data = nil
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                          if ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
         
     | 
| 
      
 22 
     | 
    
         
            +
                            connection = options[:connection] || Excon.new(CONTAINER_CREDENTIALS_HOST)
         
     | 
| 
      
 23 
     | 
    
         
            +
                            credential_path = options[:credential_path] || ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
         
     | 
| 
      
 24 
     | 
    
         
            +
                            role_data = connection.get(:path => credential_path, :expects => 200).body
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                            connection = options[:metadata_connection] || Excon.new(INSTANCE_METADATA_HOST)
         
     | 
| 
      
 27 
     | 
    
         
            +
                            az_data = connection.get(:path => INSTANCE_METADATA_AZ, :expects => 200).body
         
     | 
| 
      
 28 
     | 
    
         
            +
                          else
         
     | 
| 
      
 29 
     | 
    
         
            +
                            connection = options[:connection] || Excon.new(INSTANCE_METADATA_HOST)
         
     | 
| 
      
 30 
     | 
    
         
            +
                            role_name = connection.get(:path => INSTANCE_METADATA_PATH, :expects => 200).body
         
     | 
| 
      
 31 
     | 
    
         
            +
                            role_data = connection.get(:path => INSTANCE_METADATA_PATH+role_name, :expects => 200).body
         
     | 
| 
      
 32 
     | 
    
         
            +
                            az_data = connection.get(:path => INSTANCE_METADATA_AZ, :expects => 200).body
         
     | 
| 
      
 33 
     | 
    
         
            +
                          end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
       20 
35 
     | 
    
         
             
                          region = az_data[0..-2] # get region from az
         
     | 
| 
       21 
36 
     | 
    
         | 
| 
       22 
37 
     | 
    
         
             
                          session = Fog::JSON.decode(role_data)
         
     | 
| 
         @@ -8,7 +8,7 @@ module Fog 
     | 
|
| 
       8 
8 
     | 
    
         
             
                    attribute :backup_retention_period,      :aliases => 'BackupRetentionPeriod',     :type => :integer
         
     | 
| 
       9 
9 
     | 
    
         
             
                    attribute :db_cluster_members,           :aliases => 'DBClusterMembers',          :type => :array
         
     | 
| 
       10 
10 
     | 
    
         
             
                    attribute :db_cluster_parameter_group,   :aliases => 'DBClusterParameterGroup'
         
     | 
| 
       11 
     | 
    
         
            -
                    attribute :db_subnet_group,              :aliases => ' 
     | 
| 
      
 11 
     | 
    
         
            +
                    attribute :db_subnet_group,              :aliases => 'DBSubnetGroupName'
         
     | 
| 
       12 
12 
     | 
    
         
             
                    attribute :endpoint,                     :aliases => 'Endpoint'
         
     | 
| 
       13 
13 
     | 
    
         
             
                    attribute :engine,                       :aliases => 'Engine'
         
     | 
| 
       14 
14 
     | 
    
         
             
                    attribute :engine_version,               :aliases => 'EngineVersion'
         
     | 
| 
         @@ -72,7 +72,7 @@ module Fog 
     | 
|
| 
       72 
72 
     | 
    
         
             
                        'BackupRetentionPeriod'      => backup_retention_period,
         
     | 
| 
       73 
73 
     | 
    
         
             
                        'DBClusterIdentifier'        => identity,
         
     | 
| 
       74 
74 
     | 
    
         
             
                        'DBClusterParameterGroup'    => db_cluster_parameter_group,
         
     | 
| 
       75 
     | 
    
         
            -
                        ' 
     | 
| 
      
 75 
     | 
    
         
            +
                        'DBSubnetGroupName'          => db_subnet_group,
         
     | 
| 
       76 
76 
     | 
    
         
             
                        'Endpoint'                   => endpoint,
         
     | 
| 
       77 
77 
     | 
    
         
             
                        'Engine'                     => engine,
         
     | 
| 
       78 
78 
     | 
    
         
             
                        'EngineVersion'              => engine_version,
         
     | 
| 
         @@ -27,7 +27,11 @@ module Fog 
     | 
|
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                    # @note Chunk size to use for multipart uploads.
         
     | 
| 
       29 
29 
     | 
    
         
             
                    #     Use small chunk sizes to minimize memory. E.g. 5242880 = 5mb
         
     | 
| 
       30 
     | 
    
         
            -
                     
     | 
| 
      
 30 
     | 
    
         
            +
                    attr_reader :multipart_chunk_size
         
     | 
| 
      
 31 
     | 
    
         
            +
                    def multipart_chunk_size=(mp_chunk_size)
         
     | 
| 
      
 32 
     | 
    
         
            +
                      raise ArgumentError.new("minimum multipart_chunk_size is 5242880") if mp_chunk_size < 5242880
         
     | 
| 
      
 33 
     | 
    
         
            +
                      @multipart_chunk_size = mp_chunk_size
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
       31 
35 
     | 
    
         | 
| 
       32 
36 
     | 
    
         
             
                    def acl
         
     | 
| 
       33 
37 
     | 
    
         
             
                      requires :directory, :key
         
     | 
| 
         @@ -205,7 +209,10 @@ module Fog 
     | 
|
| 
       205 
209 
     | 
    
         
             
                      options['x-amz-storage-class'] = storage_class if storage_class
         
     | 
| 
       206 
210 
     | 
    
         
             
                      options.merge!(encryption_headers)
         
     | 
| 
       207 
211 
     | 
    
         | 
| 
       208 
     | 
    
         
            -
                       
     | 
| 
      
 212 
     | 
    
         
            +
                      # With a single PUT operation you can upload objects up to 5 GB in size. Automatically set MP for larger objects.
         
     | 
| 
      
 213 
     | 
    
         
            +
                      multipart_chunk_size=5242880 if !multipart_chunk_size && Fog::Storage.get_body_size(body) > 5368709120
         
     | 
| 
      
 214 
     | 
    
         
            +
             
     | 
| 
      
 215 
     | 
    
         
            +
                      if multipart_chunk_size && Fog::Storage.get_body_size(body) >= multipart_chunk_size && body.respond_to?(:read)
         
     | 
| 
       209 
216 
     | 
    
         
             
                        data = multipart_save(options)
         
     | 
| 
       210 
217 
     | 
    
         
             
                        merge_attributes(data.body)
         
     | 
| 
       211 
218 
     | 
    
         
             
                      else
         
     | 
    
        data/lib/fog/aws/version.rb
    CHANGED
    
    
    
        data/tests/credentials_tests.rb
    CHANGED
    
    | 
         @@ -28,6 +28,19 @@ Shindo.tests('AWS | credentials', ['aws']) do 
     | 
|
| 
       28 
28 
     | 
    
         
             
                            :aws_credentials_expire_at => expires_at}) { Fog::Compute::AWS.fetch_credentials(:use_iam_profile => true) }
         
     | 
| 
       29 
29 
     | 
    
         
             
                end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
      
 31 
     | 
    
         
            +
                ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"] = '/v1/credentials?id=task_id'
         
     | 
| 
      
 32 
     | 
    
         
            +
                Excon.stub({:method => :get, :path => '/v1/credentials?id=task_id'}, {:status => 200, :body => Fog::JSON.encode(credentials)})
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                tests("#fetch_credentials") do
         
     | 
| 
      
 35 
     | 
    
         
            +
                  returns({:aws_access_key_id => 'dummykey',
         
     | 
| 
      
 36 
     | 
    
         
            +
                            :aws_secret_access_key => 'dummysecret',
         
     | 
| 
      
 37 
     | 
    
         
            +
                            :aws_session_token => 'dummytoken',
         
     | 
| 
      
 38 
     | 
    
         
            +
                            :region => "us-west-1",
         
     | 
| 
      
 39 
     | 
    
         
            +
                            :aws_credentials_expire_at => expires_at}) { Fog::Compute::AWS.fetch_credentials(:use_iam_profile => true) }
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"] = nil
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
       31 
44 
     | 
    
         
             
                compute = Fog::Compute::AWS.new(:use_iam_profile => true)
         
     | 
| 
       32 
45 
     | 
    
         | 
| 
       33 
46 
     | 
    
         
             
                tests("#refresh_credentials_if_expired") do
         
     | 
| 
         @@ -54,6 +67,7 @@ Shindo.tests('AWS | credentials', ['aws']) do 
     | 
|
| 
       54 
67 
     | 
    
         
             
                end
         
     | 
| 
       55 
68 
     | 
    
         | 
| 
       56 
69 
     | 
    
         
             
              ensure
         
     | 
| 
      
 70 
     | 
    
         
            +
                ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"] = nil
         
     | 
| 
       57 
71 
     | 
    
         
             
                Excon.stubs.clear
         
     | 
| 
       58 
72 
     | 
    
         
             
                Excon.defaults[:mock] = old_mock_value
         
     | 
| 
       59 
73 
     | 
    
         
             
                Fog.unmock! if !fog_was_mocked
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: fog-aws
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.11.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Josh Lane
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2016-08-04 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -145,6 +145,7 @@ files: 
     | 
|
| 
       145 
145 
     | 
    
         
             
            - fog-aws.gemspec
         
     | 
| 
       146 
146 
     | 
    
         
             
            - gemfiles/Gemfile-edge
         
     | 
| 
       147 
147 
     | 
    
         
             
            - gemfiles/Gemfile-ruby-1.8.7
         
     | 
| 
      
 148 
     | 
    
         
            +
            - gemfiles/Gemfile-ruby-1.9
         
     | 
| 
       148 
149 
     | 
    
         
             
            - lib/fog/aws.rb
         
     | 
| 
       149 
150 
     | 
    
         
             
            - lib/fog/aws/auto_scaling.rb
         
     | 
| 
       150 
151 
     | 
    
         
             
            - lib/fog/aws/beanstalk.rb
         
     | 
| 
         @@ -1603,7 +1604,7 @@ files: 
     | 
|
| 
       1603 
1604 
     | 
    
         
             
            - tests/signaturev4_tests.rb
         
     | 
| 
       1604 
1605 
     | 
    
         
             
            - tests/signed_params_tests.rb
         
     | 
| 
       1605 
1606 
     | 
    
         
             
            - tests/storage_tests.rb
         
     | 
| 
       1606 
     | 
    
         
            -
            homepage:  
     | 
| 
      
 1607 
     | 
    
         
            +
            homepage: https://github.com/fog/fog-aws
         
     | 
| 
       1607 
1608 
     | 
    
         
             
            licenses:
         
     | 
| 
       1608 
1609 
     | 
    
         
             
            - MIT
         
     | 
| 
       1609 
1610 
     | 
    
         
             
            metadata: {}
         
     |