azure-storage 0.14.0.preview → 0.15.0.preview
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/lib/azure/storage/blob/append.rb +6 -0
- data/lib/azure/storage/blob/blob.rb +80 -3
- data/lib/azure/storage/blob/blob_service.rb +29 -8
- data/lib/azure/storage/blob/block.rb +22 -2
- data/lib/azure/storage/blob/container.rb +57 -6
- data/lib/azure/storage/blob/page.rb +25 -2
- data/lib/azure/storage/client.rb +10 -10
- data/lib/azure/storage/client_options.rb +6 -3
- data/lib/azure/storage/configurable.rb +50 -17
- data/lib/azure/storage/core/auth/anonymous_signer.rb +44 -0
- data/lib/azure/storage/core/filter/retry_filter.rb +123 -12
- data/lib/azure/storage/default.rb +10 -1
- data/lib/azure/storage/file/directory.rb +13 -3
- data/lib/azure/storage/file/file.rb +17 -4
- data/lib/azure/storage/file/file_service.rb +19 -12
- data/lib/azure/storage/file/share.rb +16 -4
- data/lib/azure/storage/queue/queue_service.rb +26 -13
- data/lib/azure/storage/service/geo_replication.rb +40 -0
- data/lib/azure/storage/service/serialization.rb +26 -0
- data/lib/azure/storage/service/storage_service.rb +144 -20
- data/lib/azure/storage/service/storage_service_stats.rb +39 -0
- data/lib/azure/storage/table/table_service.rb +33 -14
- data/lib/azure/storage/version.rb +1 -1
- metadata +5 -2
| @@ -0,0 +1,39 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            #-------------------------------------------------------------------------
         | 
| 4 | 
            +
            # # Copyright (c) Microsoft and contributors. All rights reserved.
         | 
| 5 | 
            +
            #
         | 
| 6 | 
            +
            # The MIT License(MIT)
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            # Permission is hereby granted, free of charge, to any person obtaining a copy
         | 
| 9 | 
            +
            # of this software and associated documentation files(the "Software"), to deal
         | 
| 10 | 
            +
            # in the Software without restriction, including without limitation the rights
         | 
| 11 | 
            +
            # to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
         | 
| 12 | 
            +
            # copies of the Software, and to permit persons to whom the Software is
         | 
| 13 | 
            +
            # furnished to do so, subject to the following conditions :
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            # The above copyright notice and this permission notice shall be included in
         | 
| 16 | 
            +
            # all copies or substantial portions of the Software.
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         | 
| 19 | 
            +
            # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         | 
| 20 | 
            +
            # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
         | 
| 21 | 
            +
            # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         | 
| 22 | 
            +
            # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         | 
| 23 | 
            +
            # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
         | 
| 24 | 
            +
            # THE SOFTWARE.
         | 
| 25 | 
            +
            #--------------------------------------------------------------------------
         | 
| 26 | 
            +
            require "azure/storage/service/geo_replication"
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            module Azure::Storage
         | 
| 29 | 
            +
              module Service
         | 
| 30 | 
            +
                class StorageServiceStats
         | 
| 31 | 
            +
                  def initialize
         | 
| 32 | 
            +
                    @geo_replication = GeoReplication.new
         | 
| 33 | 
            +
                    yield self if block_given?
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  attr_accessor :geo_replication
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
            end
         | 
| @@ -36,7 +36,8 @@ module Azure::Storage | |
| 36 36 | 
             
                    client_config = options[:client] || Azure::Storage
         | 
| 37 37 | 
             
                    signer = options[:signer] || client_config.signer || Auth::SharedKey.new(client_config.storage_account_name, client_config.storage_access_key)
         | 
| 38 38 | 
             
                    super(signer, client_config.storage_account_name, options, &block)
         | 
| 39 | 
            -
                    @ | 
| 39 | 
            +
                    @storage_service_host[:primary] = client.storage_table_host
         | 
| 40 | 
            +
                    @storage_service_host[:secondary] = client.storage_table_host true
         | 
| 40 41 | 
             
                  end
         | 
| 41 42 |  | 
| 42 43 | 
             
                  # Public: Creates new table in the storage account
         | 
| @@ -110,14 +111,17 @@ module Azure::Storage | |
| 110 111 | 
             
                  # * +:timeout+                 - Integer. A timeout in seconds.
         | 
| 111 112 | 
             
                  # * +:request_id+              - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
         | 
| 112 113 | 
             
                  #                                in the analytics logs when storage analytics logging is enabled.
         | 
| 114 | 
            +
                  # * +:location_mode+           - LocationMode. Specifies the location mode used to decide 
         | 
| 115 | 
            +
                  #                                which location the request should be sent to.
         | 
| 113 116 | 
             
                  #
         | 
| 114 117 | 
             
                  # Returns the last updated time for the table
         | 
| 115 118 | 
             
                  def get_table(table_name, options = {})
         | 
| 116 119 | 
             
                    headers = {
         | 
| 117 120 | 
             
                      HeaderConstants::ACCEPT => Table::Serialization.get_accept_string(:full_meta),
         | 
| 118 121 | 
             
                    }
         | 
| 119 | 
            -
                     | 
| 120 | 
            -
                     | 
| 122 | 
            +
                    options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
         | 
| 123 | 
            +
                    response = call(:get, table_uri(table_name, new_query(options), options), nil, headers, options)
         | 
| 124 | 
            +
                    Table::Serialization.table_entries_from_json(response.body)
         | 
| 121 125 | 
             
                  rescue => e
         | 
| 122 126 | 
             
                    raise_with_response(e, response)
         | 
| 123 127 | 
             
                  end
         | 
| @@ -136,6 +140,8 @@ module Azure::Storage | |
| 136 140 | 
             
                  # * +:timeout+                 - Integer. A timeout in seconds.
         | 
| 137 141 | 
             
                  # * +:request_id+              - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
         | 
| 138 142 | 
             
                  #                                in the analytics logs when storage analytics logging is enabled.
         | 
| 143 | 
            +
                  # * +:location_mode+           - LocationMode. Specifies the location mode used to decide 
         | 
| 144 | 
            +
                  #                                which location the request should be sent to.
         | 
| 139 145 | 
             
                  # * +:accept+                  - String. Specifies the accepted content-type of the response payload. Possible values are:
         | 
| 140 146 | 
             
                  #                                 :no_meta
         | 
| 141 147 | 
             
                  #                                 :min_meta
         | 
| @@ -147,7 +153,9 @@ module Azure::Storage | |
| 147 153 | 
             
                  def query_tables(options = {})
         | 
| 148 154 | 
             
                    query = new_query(options)
         | 
| 149 155 | 
             
                    query[TableConstants::NEXT_TABLE_NAME] = options[:next_table_token] if options[:next_table_token]
         | 
| 150 | 
            -
             | 
| 156 | 
            +
             | 
| 157 | 
            +
                    options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
         | 
| 158 | 
            +
                    uri = collection_uri(query, options)
         | 
| 151 159 |  | 
| 152 160 | 
             
                    headers = {
         | 
| 153 161 | 
             
                      HeaderConstants::ACCEPT => Table::Serialization.get_accept_string(options[:accept]),
         | 
| @@ -175,6 +183,8 @@ module Azure::Storage | |
| 175 183 | 
             
                  # * +:timeout+                 - Integer. A timeout in seconds.
         | 
| 176 184 | 
             
                  # * +:request_id+              - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
         | 
| 177 185 | 
             
                  #                                in the analytics logs when storage analytics logging is enabled.
         | 
| 186 | 
            +
                  # * +:location_mode+           - LocationMode. Specifies the location mode used to decide 
         | 
| 187 | 
            +
                  #                                which location the request should be sent to.
         | 
| 178 188 | 
             
                  #
         | 
| 179 189 | 
             
                  # See http://msdn.microsoft.com/en-us/library/azure/jj159100
         | 
| 180 190 | 
             
                  #
         | 
| @@ -183,7 +193,8 @@ module Azure::Storage | |
| 183 193 | 
             
                    query = new_query(options)
         | 
| 184 194 | 
             
                    query[QueryStringConstants::COMP] = QueryStringConstants::ACL
         | 
| 185 195 |  | 
| 186 | 
            -
                     | 
| 196 | 
            +
                    options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
         | 
| 197 | 
            +
                    response = call(:get, generate_uri(table_name, query, options), nil, { "x-ms-version" => "2012-02-12" }, options)
         | 
| 187 198 |  | 
| 188 199 | 
             
                    signed_identifiers = []
         | 
| 189 200 | 
             
                    signed_identifiers = Table::Serialization.signed_identifiers_from_xml response.body unless response.body == nil || response.body.length < 1
         | 
| @@ -247,7 +258,7 @@ module Azure::Storage | |
| 247 258 | 
             
                  # Returns a Azure::Storage::Entity::Table::Entity
         | 
| 248 259 | 
             
                  def insert_entity(table_name, entity_values, options = {})
         | 
| 249 260 | 
             
                    body = Table::Serialization.hash_to_json(entity_values)
         | 
| 250 | 
            -
                    time = EdmType::to_edm_time(Time.now)
         | 
| 261 | 
            +
                    #time = EdmType::to_edm_time(Time.now)
         | 
| 251 262 | 
             
                    headers = {
         | 
| 252 263 | 
             
                      HeaderConstants::ACCEPT => Table::Serialization.get_accept_string(options[:accept])
         | 
| 253 264 | 
             
                    }
         | 
| @@ -278,6 +289,8 @@ module Azure::Storage | |
| 278 289 | 
             
                  # * +:timeout+                 - Integer. A timeout in seconds.
         | 
| 279 290 | 
             
                  # * +:request_id+              - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
         | 
| 280 291 | 
             
                  #                                in the analytics logs when storage analytics logging is enabled.
         | 
| 292 | 
            +
                  # * +:location_mode+           - LocationMode. Specifies the location mode used to decide 
         | 
| 293 | 
            +
                  #                                which location the request should be sent to.
         | 
| 281 294 | 
             
                  # * +:accept+                  - String. Specifies the accepted content-type of the response payload. Possible values are:
         | 
| 282 295 | 
             
                  #                                 :no_meta
         | 
| 283 296 | 
             
                  #                                 :min_meta
         | 
| @@ -294,7 +307,8 @@ module Azure::Storage | |
| 294 307 | 
             
                    query[QueryStringConstants::NEXT_PARTITION_KEY] = options[:continuation_token][:next_partition_key] if options[:continuation_token] && options[:continuation_token][:next_partition_key]
         | 
| 295 308 | 
             
                    query[QueryStringConstants::NEXT_ROW_KEY] = options[:continuation_token][:next_row_key] if options[:continuation_token] && options[:continuation_token][:next_row_key]
         | 
| 296 309 |  | 
| 297 | 
            -
                     | 
| 310 | 
            +
                    options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
         | 
| 311 | 
            +
                    uri = entities_uri(table_name, options[:partition_key], options[:row_key], query, options)
         | 
| 298 312 |  | 
| 299 313 | 
             
                    headers = {
         | 
| 300 314 | 
             
                      HeaderConstants::ACCEPT => Table::Serialization.get_accept_string(options[:accept])
         | 
| @@ -484,6 +498,8 @@ module Azure::Storage | |
| 484 498 | 
             
                  # * +:timeout+                 - Integer. A timeout in seconds.
         | 
| 485 499 | 
             
                  # * +:request_id+              - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
         | 
| 486 500 | 
             
                  #                                in the analytics logs when storage analytics logging is enabled.
         | 
| 501 | 
            +
                  # * +:location_mode+           - LocationMode. Specifies the location mode used to decide 
         | 
| 502 | 
            +
                  #                                which location the request should be sent to.
         | 
| 487 503 | 
             
                  #
         | 
| 488 504 | 
             
                  # See http://msdn.microsoft.com/en-us/library/azure/dd894038
         | 
| 489 505 | 
             
                  #
         | 
| @@ -496,7 +512,8 @@ module Azure::Storage | |
| 496 512 | 
             
                    }
         | 
| 497 513 |  | 
| 498 514 | 
             
                    body = batch.to_body
         | 
| 499 | 
            -
                     | 
| 515 | 
            +
                    options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
         | 
| 516 | 
            +
                    response = call(:post, generate_uri("/$batch", new_query(options), options), body, headers, options, true)
         | 
| 500 517 | 
             
                    batch.parse_response(response)
         | 
| 501 518 | 
             
                  rescue => e
         | 
| 502 519 | 
             
                    raise_with_response(e, response)
         | 
| @@ -517,6 +534,8 @@ module Azure::Storage | |
| 517 534 | 
             
                  # * +:timeout+                 - Integer. A timeout in seconds.
         | 
| 518 535 | 
             
                  # * +:request_id+              - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
         | 
| 519 536 | 
             
                  #                                in the analytics logs when storage analytics logging is enabled.
         | 
| 537 | 
            +
                  # * +:location_mode+           - LocationMode. Specifies the location mode used to decide 
         | 
| 538 | 
            +
                  #                                which location the request should be sent to.
         | 
| 520 539 | 
             
                  #
         | 
| 521 540 | 
             
                  # Returns an Azure::Storage::Table::Entity instance on success
         | 
| 522 541 | 
             
                  def get_entity(table_name, partition_key, row_key, options = {})
         | 
| @@ -530,8 +549,8 @@ module Azure::Storage | |
| 530 549 | 
             
                  #
         | 
| 531 550 | 
             
                  # Returns a URI
         | 
| 532 551 | 
             
                  protected
         | 
| 533 | 
            -
                    def collection_uri(query = {})
         | 
| 534 | 
            -
                      generate_uri("Tables", query)
         | 
| 552 | 
            +
                    def collection_uri(query = {}, options = {})
         | 
| 553 | 
            +
                      generate_uri("Tables", query, options)
         | 
| 535 554 | 
             
                    end
         | 
| 536 555 |  | 
| 537 556 | 
             
                  # Public: Generate the URI for a specific table.
         | 
| @@ -542,9 +561,9 @@ module Azure::Storage | |
| 542 561 | 
             
                  #
         | 
| 543 562 | 
             
                  # Returns a URI
         | 
| 544 563 | 
             
                  public
         | 
| 545 | 
            -
                  def table_uri(name, query = {})
         | 
| 564 | 
            +
                  def table_uri(name, query = {}, options = {})
         | 
| 546 565 | 
             
                    return name if name.kind_of? ::URI
         | 
| 547 | 
            -
                    generate_uri("Tables('#{name}')", query)
         | 
| 566 | 
            +
                    generate_uri("Tables('#{name}')", query, options)
         | 
| 548 567 | 
             
                  end
         | 
| 549 568 |  | 
| 550 569 | 
             
                  # Public: Generate the URI for an entity or group of entities in a table.
         | 
| @@ -559,7 +578,7 @@ module Azure::Storage | |
| 559 578 | 
             
                  #
         | 
| 560 579 | 
             
                  # Returns a URI
         | 
| 561 580 | 
             
                  public
         | 
| 562 | 
            -
                  def entities_uri(table_name, partition_key = nil, row_key = nil, query = {})
         | 
| 581 | 
            +
                  def entities_uri(table_name, partition_key = nil, row_key = nil, query = {}, options = {})
         | 
| 563 582 | 
             
                    return table_name if table_name.kind_of? ::URI
         | 
| 564 583 |  | 
| 565 584 | 
             
                    path = if partition_key && row_key
         | 
| @@ -570,7 +589,7 @@ module Azure::Storage | |
| 570 589 | 
             
                             "%s()" % table_name.encode("UTF-8")
         | 
| 571 590 | 
             
                           end
         | 
| 572 591 |  | 
| 573 | 
            -
                    uri = generate_uri(path)
         | 
| 592 | 
            +
                    uri = generate_uri(path, query, options)
         | 
| 574 593 | 
             
                    qs = []
         | 
| 575 594 | 
             
                    if query
         | 
| 576 595 | 
             
                      query.each do | key, val |
         | 
| @@ -29,7 +29,7 @@ module Azure | |
| 29 29 | 
             
                class Version
         | 
| 30 30 | 
             
                  # Fields represent the parts defined in http://semver.org/
         | 
| 31 31 | 
             
                  MAJOR = 0 unless defined? MAJOR
         | 
| 32 | 
            -
                  MINOR =  | 
| 32 | 
            +
                  MINOR = 15 unless defined? MINOR
         | 
| 33 33 | 
             
                  UPDATE = 0 unless defined? UPDATE
         | 
| 34 34 | 
             
                  PRE = "preview" unless defined? PRE
         | 
| 35 35 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: azure-storage
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.15.0.preview
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Microsoft Corporation
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-11-17 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: azure-core
         | 
| @@ -190,6 +190,7 @@ files: | |
| 190 190 | 
             
            - lib/azure/storage/client_options_error.rb
         | 
| 191 191 | 
             
            - lib/azure/storage/configurable.rb
         | 
| 192 192 | 
             
            - lib/azure/storage/core.rb
         | 
| 193 | 
            +
            - lib/azure/storage/core/auth/anonymous_signer.rb
         | 
| 193 194 | 
             
            - lib/azure/storage/core/auth/shared_access_signature.rb
         | 
| 194 195 | 
             
            - lib/azure/storage/core/auth/shared_access_signature_generator.rb
         | 
| 195 196 | 
             
            - lib/azure/storage/core/auth/shared_access_signature_signer.rb
         | 
| @@ -216,6 +217,7 @@ files: | |
| 216 217 | 
             
            - lib/azure/storage/service/cors.rb
         | 
| 217 218 | 
             
            - lib/azure/storage/service/cors_rule.rb
         | 
| 218 219 | 
             
            - lib/azure/storage/service/enumeration_results.rb
         | 
| 220 | 
            +
            - lib/azure/storage/service/geo_replication.rb
         | 
| 219 221 | 
             
            - lib/azure/storage/service/logging.rb
         | 
| 220 222 | 
             
            - lib/azure/storage/service/metrics.rb
         | 
| 221 223 | 
             
            - lib/azure/storage/service/retention_policy.rb
         | 
| @@ -223,6 +225,7 @@ files: | |
| 223 225 | 
             
            - lib/azure/storage/service/signed_identifier.rb
         | 
| 224 226 | 
             
            - lib/azure/storage/service/storage_service.rb
         | 
| 225 227 | 
             
            - lib/azure/storage/service/storage_service_properties.rb
         | 
| 228 | 
            +
            - lib/azure/storage/service/storage_service_stats.rb
         | 
| 226 229 | 
             
            - lib/azure/storage/table/auth/shared_key.rb
         | 
| 227 230 | 
             
            - lib/azure/storage/table/batch.rb
         | 
| 228 231 | 
             
            - lib/azure/storage/table/batch_response.rb
         |