aws-sdk-v1 1.54.0 → 1.55.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 +8 -0
- data/bin/aws-rb +1 -1
- data/lib/aws/core.rb +1 -1
- data/lib/aws/core/credential_providers.rb +18 -2
- data/lib/aws/core/data.rb +5 -0
- data/lib/aws/core/http/curb_handler.rb +4 -1
- data/lib/aws/core/xml/frame.rb +2 -1
- data/lib/aws/ec2/instance_collection.rb +1 -0
- data/lib/aws/rails.rb +1 -1
- data/lib/aws/route_53/change_batch.rb +1 -0
- data/lib/aws/route_53/resource_record_set.rb +7 -0
- data/lib/aws/s3/bucket.rb +4 -3
- data/lib/aws/s3/client.rb +1 -4
- data/lib/aws/s3/config.rb +15 -4
- data/lib/aws/s3/presign_v4.rb +1 -1
- data/lib/aws/s3/s3_object.rb +13 -10
- data/lib/aws/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 00ae7ed02850c7e4e23ea26b1b1efe6c739a456d
         | 
| 4 | 
            +
              data.tar.gz: e7394ac1815b813ea14c1c534dd6643c8aa12fbd
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e3848fee9c1e29345a3c3f1c3a2e66fd214cf6a7a9214fb3d0bfb75d713a8c97c40c1b03029bf9837669c307b976d8f998513a4eaa0ce45624d157bf437f4a93
         | 
| 7 | 
            +
              data.tar.gz: 62c6aea9c28fb36a43814fb21619ed4594e8652a5ac0024e9c20206c4faf95ad93e769899878bcc8ad406a5672f9e90501f99c8624f76c7f590530200723f76f
         | 
    
        data/README.md
    CHANGED
    
    | @@ -82,6 +82,14 @@ ec2.instances['i-12345678'].tags.to_h | |
| 82 82 |  | 
| 83 83 | 
             
            See the [API Documentation](http://docs.aws.amazon.com/AWSRubySDK/latest/frames.html) for more examples.
         | 
| 84 84 |  | 
| 85 | 
            +
            ## Testing
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            All HTTP requests to live services can be globally mocked (e.g. from within the `spec_helper.rb` file):
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            ```
         | 
| 90 | 
            +
            AWS.stub!
         | 
| 91 | 
            +
            ```
         | 
| 92 | 
            +
             | 
| 85 93 | 
             
            ## Links of Interest
         | 
| 86 94 |  | 
| 87 95 | 
             
            * [API Documentation](http://docs.aws.amazon.com/AWSRubySDK/latest/frames.html)
         | 
    
        data/bin/aws-rb
    CHANGED
    
    
    
        data/lib/aws/core.rb
    CHANGED
    
    | @@ -678,7 +678,7 @@ module AWS | |
| 678 678 | 
             
                    versions = {}
         | 
| 679 679 | 
             
                    pattern = File.join(File.dirname(__FILE__), 'api_config', '*.yml')
         | 
| 680 680 | 
             
                    Dir.glob(pattern).each do |path|
         | 
| 681 | 
            -
                       | 
| 681 | 
            +
                      path.match(/(\w+)-(\d{4}-\d{2}-\d{2})/)
         | 
| 682 682 | 
             
                      svc = SERVICES[$1].full_name
         | 
| 683 683 | 
             
                      versions[svc] ||= []
         | 
| 684 684 | 
             
                      versions[svc] << $2
         | 
| @@ -354,6 +354,8 @@ module AWS | |
| 354 354 | 
             
                    # @param [Hash] options
         | 
| 355 355 | 
             
                    # @option options [String] :ip_address ('169.254.169.254')
         | 
| 356 356 | 
             
                    # @option options [Integer] :port (80)
         | 
| 357 | 
            +
                    # @option options [Integer] :retries (0) Number of times to
         | 
| 358 | 
            +
                    #   retry retrieving credentials.
         | 
| 357 359 | 
             
                    # @option options [Float] :http_open_timeout (1)
         | 
| 358 360 | 
             
                    # @option options [Float] :http_read_timeout (1)
         | 
| 359 361 | 
             
                    # @option options [Object] :http_debug_output (nil) HTTP wire
         | 
| @@ -362,6 +364,7 @@ module AWS | |
| 362 364 | 
             
                    def initialize options = {}
         | 
| 363 365 | 
             
                      @ip_address = options[:ip_address] || '169.254.169.254'
         | 
| 364 366 | 
             
                      @port = options[:port] || 80
         | 
| 367 | 
            +
                      @retries = options[:retries] || 0
         | 
| 365 368 | 
             
                      @http_open_timeout = options[:http_open_timeout] || 1
         | 
| 366 369 | 
             
                      @http_read_timeout = options[:http_read_timeout] || 1
         | 
| 367 370 | 
             
                      @http_debug_output = options[:http_debug_output]
         | 
| @@ -373,6 +376,9 @@ module AWS | |
| 373 376 | 
             
                    # @return [Integer] Defaults to port 80.
         | 
| 374 377 | 
             
                    attr_accessor :port
         | 
| 375 378 |  | 
| 379 | 
            +
                    # @return [Integer] Defaults to 0
         | 
| 380 | 
            +
                    attr_accessor :retries
         | 
| 381 | 
            +
             | 
| 376 382 | 
             
                    # @return [Float]
         | 
| 377 383 | 
             
                    attr_accessor :http_open_timeout
         | 
| 378 384 |  | 
| @@ -404,6 +410,8 @@ module AWS | |
| 404 410 |  | 
| 405 411 | 
             
                    # (see Provider#get_credentials)
         | 
| 406 412 | 
             
                    def get_credentials
         | 
| 413 | 
            +
                      retries_left = retries
         | 
| 414 | 
            +
             | 
| 407 415 | 
             
                      begin
         | 
| 408 416 |  | 
| 409 417 | 
             
                        http = Net::HTTP.new(ip_address, port, nil)
         | 
| @@ -432,7 +440,15 @@ module AWS | |
| 432 440 | 
             
                        credentials
         | 
| 433 441 |  | 
| 434 442 | 
             
                      rescue *FAILURES => e
         | 
| 435 | 
            -
                         | 
| 443 | 
            +
                        if retries_left > 0
         | 
| 444 | 
            +
                          sleep_time = 2 ** (retries - retries_left)
         | 
| 445 | 
            +
                          Kernel.sleep(sleep_time)
         | 
| 446 | 
            +
             | 
| 447 | 
            +
                          retries_left -= 1
         | 
| 448 | 
            +
                          retry
         | 
| 449 | 
            +
                        else
         | 
| 450 | 
            +
                          {}
         | 
| 451 | 
            +
                        end
         | 
| 436 452 | 
             
                      end
         | 
| 437 453 | 
             
                    end
         | 
| 438 454 |  | 
| @@ -566,7 +582,7 @@ module AWS | |
| 566 582 |  | 
| 567 583 | 
             
                    include Provider
         | 
| 568 584 |  | 
| 569 | 
            -
                    # @option options [AWS::STS] :sts (STS.new) An instance of {AWS::STS}. | 
| 585 | 
            +
                    # @option options [AWS::STS] :sts (STS.new) An instance of {AWS::STS}.
         | 
| 570 586 | 
             
                    #   This is used to make the API call to assume role.
         | 
| 571 587 | 
             
                    # @option options [required, String] :role_arn
         | 
| 572 588 | 
             
                    # @option options [required, String] :role_session_name
         | 
    
        data/lib/aws/core/data.rb
    CHANGED
    
    
| @@ -19,7 +19,7 @@ module AWS | |
| 19 19 |  | 
| 20 20 | 
             
                  # @api private
         | 
| 21 21 | 
             
                  class CurbHandler
         | 
| 22 | 
            -
             | 
| 22 | 
            +
                    class NetworkError < StandardError; end
         | 
| 23 23 | 
             
                    def initialize
         | 
| 24 24 | 
             
                      @q = []
         | 
| 25 25 | 
             
                      @sem = Mutex.new
         | 
| @@ -133,6 +133,9 @@ module AWS | |
| 133 133 |  | 
| 134 134 | 
             
                      curl.on_complete do
         | 
| 135 135 | 
             
                        response.status = curl.response_code
         | 
| 136 | 
            +
                        unless curl.response_code > 0
         | 
| 137 | 
            +
                          response.network_error = NetworkError.new('Empty response. Assume network error.')
         | 
| 138 | 
            +
                        end
         | 
| 136 139 | 
             
                        unless read_block
         | 
| 137 140 | 
             
                          response.body = buffer.join("")
         | 
| 138 141 | 
             
                        end
         | 
    
        data/lib/aws/core/xml/frame.rb
    CHANGED
    
    | @@ -231,7 +231,8 @@ module AWS | |
| 231 231 | 
             
                      # that AWS uses almost (??) everywhere.
         | 
| 232 232 | 
             
                      if @text.tr(*TRANSLATE_DIGITS) == EASY_FORMAT
         | 
| 233 233 | 
             
                        parts = @text.tr(*DATE_PUNCTUATION).chop.split.map {|p| p.to_i }
         | 
| 234 | 
            -
                         | 
| 234 | 
            +
                        milliseconds = parts.pop
         | 
| 235 | 
            +
                        parts[-1] = parts[-1] + "0.#{milliseconds}".to_f
         | 
| 235 236 | 
             
                        klass.send(parts_constructor, *parts)
         | 
| 236 237 | 
             
                      else
         | 
| 237 238 | 
             
                        # fallback in case we have to handle another date format
         | 
    
        data/lib/aws/rails.rb
    CHANGED
    
    | @@ -104,7 +104,7 @@ module AWS | |
| 104 104 |  | 
| 105 105 | 
             
                  path = Pathname.new("#{rails_root}/config/aws.yml")
         | 
| 106 106 |  | 
| 107 | 
            -
                  if File. | 
| 107 | 
            +
                  if File.exist?(path)
         | 
| 108 108 | 
             
                    cfg = YAML::load(ERB.new(File.read(path)).result)
         | 
| 109 109 | 
             
                    unless cfg[rails_env]
         | 
| 110 110 | 
             
                      raise "config/aws.yml is missing a section for `#{rails_env}`"
         | 
| @@ -128,6 +128,7 @@ module AWS | |
| 128 128 | 
             
                    q[:resource_record_set][:ttl] = @change_options[:ttl] if @change_options[:ttl]
         | 
| 129 129 | 
             
                    q[:resource_record_set][:resource_records] = @change_options[:resource_records] if @change_options[:resource_records]
         | 
| 130 130 | 
             
                    q[:resource_record_set][:alias_target] = @change_options[:alias_target] if @change_options[:alias_target]
         | 
| 131 | 
            +
                    q[:resource_record_set][:geo_location] = @change_options[:geo_location] if @change_options[:geo_location]
         | 
| 131 132 | 
             
                    q[:resource_record_set][:failover] = @change_options[:failover] if @change_options[:failover]
         | 
| 132 133 | 
             
                    q[:resource_record_set][:health_check_id] = @change_options[:health_check_id] if @change_options[:health_check_id]
         | 
| 133 134 | 
             
                    q
         | 
| @@ -119,6 +119,12 @@ module AWS | |
| 119 119 | 
             
                    @create_options[:ttl] = new_ttl
         | 
| 120 120 | 
             
                  end
         | 
| 121 121 |  | 
| 122 | 
            +
                  attribute :geo_location
         | 
| 123 | 
            +
             | 
| 124 | 
            +
                  def geo_location= new_geo_location
         | 
| 125 | 
            +
                    @create_options[:geo_location] = new_geo_location
         | 
| 126 | 
            +
                  end
         | 
| 127 | 
            +
             | 
| 122 128 | 
             
                  attribute :failover
         | 
| 123 129 |  | 
| 124 130 | 
             
                  def failover= new_failover
         | 
| @@ -241,6 +247,7 @@ module AWS | |
| 241 247 | 
             
                      options[:region] = region if region
         | 
| 242 248 | 
             
                      options[:ttl] = ttl if ttl
         | 
| 243 249 | 
             
                      options[:resource_records] = resource_records if resource_records && !resource_records.empty?
         | 
| 250 | 
            +
                      options[:geo_location] = geo_location if geo_location
         | 
| 244 251 | 
             
                      options[:failover] = failover if failover
         | 
| 245 252 | 
             
                      options[:health_check_id] = health_check_id if health_check_id
         | 
| 246 253 | 
             
                    end
         | 
    
        data/lib/aws/s3/bucket.rb
    CHANGED
    
    | @@ -238,11 +238,12 @@ module AWS | |
| 238 238 |  | 
| 239 239 | 
             
                  # Returns the url for this bucket.
         | 
| 240 240 | 
             
                  # @return [String] url to the bucket
         | 
| 241 | 
            -
                  def url
         | 
| 241 | 
            +
                  def url(options = {})
         | 
| 242 | 
            +
                    protocol = options.fetch(:secure, false) ? "https://" : "http://"
         | 
| 242 243 | 
             
                    if client.dns_compatible_bucket_name?(name)
         | 
| 243 | 
            -
                      " | 
| 244 | 
            +
                      "#{protocol}#{name}.s3.amazonaws.com/"
         | 
| 244 245 | 
             
                    else
         | 
| 245 | 
            -
                      " | 
| 246 | 
            +
                      "#{protocol}s3.amazonaws.com/#{name}/"
         | 
| 246 247 | 
             
                    end
         | 
| 247 248 | 
             
                  end
         | 
| 248 249 |  | 
    
        data/lib/aws/s3/client.rb
    CHANGED
    
    | @@ -51,10 +51,7 @@ module AWS | |
| 51 51 | 
             
                  # @param [Core::Http::Request] request
         | 
| 52 52 | 
             
                  # @api private
         | 
| 53 53 | 
             
                  def sign_request request
         | 
| 54 | 
            -
                     | 
| 55 | 
            -
                      @config.s3_signature_version.to_sym :
         | 
| 56 | 
            -
                      (@region =~ /cn-/ ? :v4 : :v3)
         | 
| 57 | 
            -
                    case version
         | 
| 54 | 
            +
                    case @config.s3_signature_version
         | 
| 58 55 | 
             
                    when :v4 then v4_signer.sign_request(request)
         | 
| 59 56 | 
             
                    when :v3 then v3_signer.sign_request(request)
         | 
| 60 57 | 
             
                    else
         | 
    
        data/lib/aws/s3/config.rb
    CHANGED
    
    | @@ -36,14 +36,25 @@ AWS::Core::Configuration.module_eval do | |
| 36 36 | 
             
              add_option :s3_cache_object_attributes, false, :boolean => true
         | 
| 37 37 |  | 
| 38 38 | 
             
              add_option :s3_signature_version do |config, value|
         | 
| 39 | 
            -
                 | 
| 40 | 
            -
                   | 
| 41 | 
            -
             | 
| 39 | 
            +
                v3_regions = %w(
         | 
| 40 | 
            +
                  us-east-1
         | 
| 41 | 
            +
                  us-west-1
         | 
| 42 | 
            +
                  us-west-2
         | 
| 43 | 
            +
                  ap-northeast-1
         | 
| 44 | 
            +
                  ap-southeast-1
         | 
| 45 | 
            +
                  ap-southeast-2
         | 
| 46 | 
            +
                  sa-east-1
         | 
| 47 | 
            +
                  eu-west-1
         | 
| 48 | 
            +
                  us-gov-west-1
         | 
| 49 | 
            +
                )
         | 
| 50 | 
            +
                if value
         | 
| 42 51 | 
             
                  value
         | 
| 43 52 | 
             
                elsif config.s3 && config.s3[:signature_version]
         | 
| 44 53 | 
             
                  config.s3[:signature_version]
         | 
| 45 | 
            -
                 | 
| 54 | 
            +
                elsif v3_regions.include?(config.s3_region)
         | 
| 46 55 | 
             
                  :v3
         | 
| 56 | 
            +
                else
         | 
| 57 | 
            +
                  :v4
         | 
| 47 58 | 
             
                end
         | 
| 48 59 | 
             
              end
         | 
| 49 60 |  | 
    
        data/lib/aws/s3/presign_v4.rb
    CHANGED
    
    | @@ -55,7 +55,7 @@ module AWS | |
| 55 55 | 
             
                    signed_headers = 'Host'
         | 
| 56 56 |  | 
| 57 57 | 
             
                    if options[:acl]
         | 
| 58 | 
            -
                      request.add_param(" | 
| 58 | 
            +
                      request.add_param("x-amz-acl", options[:acl].to_s.gsub(/_/, '-'))
         | 
| 59 59 | 
             
                    end
         | 
| 60 60 |  | 
| 61 61 | 
             
                    # must be sent along with the PUT request headers
         | 
    
        data/lib/aws/s3/s3_object.rb
    CHANGED
    
    | @@ -805,9 +805,9 @@ module AWS | |
| 805 805 | 
             
                  #
         | 
| 806 806 | 
             
                  # @param [Hash] options
         | 
| 807 807 | 
             
                  #
         | 
| 808 | 
            -
                  # @option options [String] :bucket_name The name of | 
| 809 | 
            -
                  #   the source object can be found in.  Defaults to the | 
| 810 | 
            -
                  #   object's bucket.
         | 
| 808 | 
            +
                  # @option options [String] :bucket_name The slash-prefixed name of
         | 
| 809 | 
            +
                  #   the bucket the source object can be found in.  Defaults to the
         | 
| 810 | 
            +
                  #   current object's bucket.
         | 
| 811 811 | 
             
                  #
         | 
| 812 812 | 
             
                  # @option options [Bucket] :bucket The bucket the source object
         | 
| 813 813 | 
             
                  #   can be found in.  Defaults to the current object's bucket.
         | 
| @@ -873,17 +873,20 @@ module AWS | |
| 873 873 | 
             
                    options[:copy_source] =
         | 
| 874 874 | 
             
                      case source
         | 
| 875 875 | 
             
                      when S3Object
         | 
| 876 | 
            -
                        " | 
| 876 | 
            +
                        "/#{source.bucket.name}/#{source.key}"
         | 
| 877 877 | 
             
                      when ObjectVersion
         | 
| 878 878 | 
             
                        options[:version_id] = source.version_id
         | 
| 879 | 
            -
                        " | 
| 879 | 
            +
                        "/#{source.object.bucket.name}/#{source.object.key}"
         | 
| 880 880 | 
             
                      else
         | 
| 881 881 | 
             
                        if options[:bucket]
         | 
| 882 | 
            -
                          " | 
| 882 | 
            +
                          "/#{options.delete(:bucket).name}/#{source}"
         | 
| 883 883 | 
             
                        elsif options[:bucket_name]
         | 
| 884 | 
            +
                          # oops, this should be slash-prefixed, but unable to change
         | 
| 885 | 
            +
                          # this without breaking users that already work-around this
         | 
| 886 | 
            +
                          # bug by sending :bucket_name => "/bucket-name"
         | 
| 884 887 | 
             
                          "#{options.delete(:bucket_name)}/#{source}"
         | 
| 885 888 | 
             
                        else
         | 
| 886 | 
            -
                          " | 
| 889 | 
            +
                          "/#{self.bucket.name}/#{source}"
         | 
| 887 890 | 
             
                        end
         | 
| 888 891 | 
             
                      end
         | 
| 889 892 |  | 
| @@ -936,9 +939,9 @@ module AWS | |
| 936 939 | 
             
                  #
         | 
| 937 940 | 
             
                  # @param [Hash] options
         | 
| 938 941 | 
             
                  #
         | 
| 939 | 
            -
                  # @option options [String] :bucket_name The name of the | 
| 940 | 
            -
                  #   the object should be copied into.  Defaults to the current | 
| 941 | 
            -
                  #   bucket.
         | 
| 942 | 
            +
                  # @option options [String] :bucket_name The slash-prefixed name of the
         | 
| 943 | 
            +
                  #   bucket the object should be copied into.  Defaults to the current
         | 
| 944 | 
            +
                  #   object's bucket.
         | 
| 942 945 | 
             
                  #
         | 
| 943 946 | 
             
                  # @option options [Bucket] :bucket The bucket the target object
         | 
| 944 947 | 
             
                  #   should be copied into. Defaults to the current object's bucket.
         | 
    
        data/lib/aws/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: aws-sdk-v1
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.55.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Amazon Web Services
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-10-08 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: nokogiri
         |