azure-storage 0.10.0.preview → 0.10.1.preview

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/azure/storage/autoload.rb +2 -4
  3. data/lib/azure/storage/blob/blob_service.rb +2 -5
  4. data/lib/azure/storage/blob/container.rb +5 -1
  5. data/lib/azure/storage/client.rb +4 -4
  6. data/lib/azure/storage/{core/client_options.rb → client_options.rb} +1 -2
  7. data/lib/azure/storage/{core/client_options_error.rb → client_options_error.rb} +2 -2
  8. data/lib/azure/storage/core.rb +1 -1
  9. data/lib/azure/storage/core/auth/shared_access_signature.rb +3 -2
  10. data/lib/azure/storage/core/auth/shared_access_signature_generator.rb +31 -18
  11. data/lib/azure/storage/core/auth/shared_access_signature_signer.rb +1 -1
  12. data/lib/azure/storage/core/auth/shared_key.rb +4 -72
  13. data/lib/azure/storage/core/autoload.rb +17 -8
  14. data/lib/azure/storage/core/error.rb +2 -8
  15. data/lib/azure/storage/core/filter/exponential_retry_filter.rb +62 -0
  16. data/lib/azure/storage/core/{auth/shared_key_lite.rb → filter/linear_retry_filter.rb} +27 -29
  17. data/lib/azure/storage/core/filter/retry_filter.rb +172 -0
  18. data/lib/azure/storage/core/http_client.rb +1 -1
  19. data/lib/azure/storage/core/utility.rb +2 -10
  20. data/lib/azure/storage/{core/constants.rb → default.rb} +0 -0
  21. data/lib/azure/storage/service/storage_service.rb +7 -2
  22. data/lib/azure/storage/table/auth/shared_key.rb +2 -2
  23. data/lib/azure/storage/table/batch.rb +1 -1
  24. data/lib/azure/storage/table/table_service.rb +11 -11
  25. data/lib/azure/storage/version.rb +1 -1
  26. metadata +24 -18
  27. data/lib/azure/storage/core/auth/signer.rb +0 -60
  28. data/lib/azure/storage/core/filtered_service.rb +0 -54
  29. data/lib/azure/storage/core/http/debug_filter.rb +0 -45
  30. data/lib/azure/storage/core/http/http_error.rb +0 -95
  31. data/lib/azure/storage/core/http/http_filter.rb +0 -62
  32. data/lib/azure/storage/core/http/http_request.rb +0 -182
  33. data/lib/azure/storage/core/http/http_response.rb +0 -105
  34. data/lib/azure/storage/core/http/retry_policy.rb +0 -83
  35. data/lib/azure/storage/core/http/signer_filter.rb +0 -42
  36. data/lib/azure/storage/core/service.rb +0 -55
  37. data/lib/azure/storage/core/signed_service.rb +0 -54
@@ -21,35 +21,33 @@
21
21
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
22
  # THE SOFTWARE.
23
23
  #--------------------------------------------------------------------------
24
- require "azure/storage/core/auth/shared_key"
24
+ require 'azure/core'
25
+ require 'azure/core/http/retry_policy'
25
26
 
26
- module Azure::Storage
27
- module Auth
28
- class SharedKeyLite < SharedKey
29
- # The name of the strategy.
30
- #
31
- # @return [String]
32
- def name
33
- 'SharedKeyLite'
34
- end
35
-
36
- # Generate the string to sign.
37
- #
38
- # @param method [Symbol] The HTTP request method.
39
- # @param uri [URI] The URI of the request we're signing.
40
- # @param headers [Hash] A Hash of HTTP request headers.
41
- #
42
- # Returns a plain text string.
43
- def signable_string(method, uri, headers)
44
- [
45
- method.to_s.upcase,
46
- headers.fetch('Content-MD5', ''),
47
- headers.fetch('Content-Type', ''),
48
- headers.fetch('Date') { raise IndexError, 'Headers must include Date' },
49
- canonicalized_headers(headers),
50
- canonicalized_resource(uri)
51
- ].join("\n")
52
- end
27
+ module Azure::Storage::Core::Filter
28
+ class LinearRetryPolicyFilter < RetryPolicyFilter
29
+ def initialize(retry_count=nil, retry_interval=nil)
30
+ @retry_count = retry_count || LinearRetryPolicyFilter::DEFAULT_RETRY_COUNT
31
+ @retry_interval = retry_interval || LinearRetryPolicyFilter::DEFAULT_RETRY_INTERVAL
32
+
33
+ super @retry_count, @retry_interval
34
+ end
35
+
36
+ DEFAULT_RETRY_COUNT = 3
37
+ DEFAULT_RETRY_INTERVAL = 30
38
+
39
+ # Overrides the base class implementation of call to determine
40
+ # how the HTTP request should continue retrying
41
+ #
42
+ # retry_data - Hash. Stores stateful retry data
43
+ #
44
+ # The retry_data is a Hash which can be used to store
45
+ # stateful data about the request execution context (such as an
46
+ # incrementing counter, timestamp, etc). The retry_data object
47
+ # will be the same instance throughout the lifetime of the request
48
+ def apply_retry_policy(retry_data)
49
+ retry_data[:count] = retry_data[:count] == nil ? 1 : retry_data[:count] + 1
50
+ retry_data[:interval] = @retry_interval
53
51
  end
54
52
  end
55
- end
53
+ end
@@ -0,0 +1,172 @@
1
+ #-------------------------------------------------------------------------
2
+ # # Copyright (c) Microsoft and contributors. All rights reserved.
3
+ #
4
+ # The MIT License(MIT)
5
+
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files(the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions :
12
+
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ # THE SOFTWARE.
23
+ #--------------------------------------------------------------------------
24
+ require 'azure/core'
25
+ require 'azure/core/http/retry_policy'
26
+
27
+ module Azure::Storage::Core::Filter
28
+ class RetryPolicyFilter < Azure::Core::Http::RetryPolicy
29
+ def initialize(retry_count=nil, retry_interval=nil)
30
+ @retry_count = retry_count
31
+ @retry_interval = retry_interval
32
+
33
+ super &:should_retry?
34
+ end
35
+
36
+ attr_reader :retry_count,
37
+ :retry_interval
38
+
39
+ # Overrides the base class implementation of call to determine
40
+ # whether to retry the operation
41
+ #
42
+ # response - HttpResponse. The response from the active request
43
+ # retry_data - Hash. Stores stateful retry data
44
+ def should_retry?(response, retry_data)
45
+ apply_retry_policy retry_data
46
+ retry_data[:retryable] = retry_data[:count] <= @retry_count
47
+ return false unless retry_data[:retryable]
48
+
49
+ should_retry_on_local_error? retry_data
50
+ should_retry_on_error? response, retry_data
51
+ return false unless retry_data[:retryable]
52
+
53
+ adjust_retry_parameter retry_data
54
+ end
55
+
56
+ # Apply the retry policy to determine how the HTTP request should continue retrying
57
+ #
58
+ # retry_data - Hash. Stores stateful retry data
59
+ #
60
+ # The retry_data is a Hash which can be used to store
61
+ # stateful data about the request execution context (such as an
62
+ # incrementing counter, timestamp, etc). The retry_data object
63
+ # will be the same instance throughout the lifetime of the request
64
+ #
65
+ # Alternatively, a subclass could override this method.
66
+ def apply_retry_policy(retry_data)
67
+ end
68
+
69
+ # Determines if the HTTP request should continue retrying
70
+ #
71
+ # retry_data - Hash. Stores stateful retry data
72
+ #
73
+ # The retry_data is a Hash which can be used to store
74
+ # stateful data about the request execution context (such as an
75
+ # incrementing counter, timestamp, etc). The retry_data object
76
+ # will be the same instance throughout the lifetime of the request.
77
+ def should_retry_on_local_error?(retry_data)
78
+ unless retry_data[:error]
79
+ retry_data[:retryable] = true;
80
+ return true
81
+ end
82
+
83
+ if retry_data[:error].inspect.include?('SocketError: Hostname not known')
84
+ # Retry on local DNS resolving
85
+ # When uses resolv-replace.rb to replace the libc resolver
86
+ # Reference:
87
+ # https://makandracards.com/ninjaconcept/30815-fixing-socketerror-getaddrinfo-name-or-service-not-known-with-ruby-s-resolv-replace-rb
88
+ # http://www.subelsky.com/2014/05/fixing-socketerror-getaddrinfo-name-or.html
89
+ retry_data[:retryable] = true;
90
+ elsif retry_data[:error].inspect.include?('getaddrinfo: Name or service not known')
91
+ # When uses the default resolver
92
+ retry_data[:retryable] = true;
93
+ elsif retry_data[:error].inspect.include?('Errno::EACCES')
94
+ retry_data[:retryable] = false;
95
+ elsif retry_data[:error].inspect.include?('NOSUPPORT')
96
+ retry_data[:retryable] = false;
97
+ end
98
+
99
+ retry_data[:retryable]
100
+ end
101
+
102
+ # Determines if the HTTP request should continue retrying
103
+ #
104
+ # response - Azure::Core::Http::HttpResponse. The response from the active request
105
+ # retry_data - Hash. Stores stateful retry data
106
+ #
107
+ # The retry_data is a Hash which can be used to store
108
+ # stateful data about the request execution context (such as an
109
+ # incrementing counter, timestamp, etc). The retry_data object
110
+ # will be the same instance throughout the lifetime of the request.
111
+ def should_retry_on_error?(response, retry_data)
112
+ unless response
113
+ retry_data[:retryable] = false unless retry_data[:error]
114
+ return retry_data[:retryable]
115
+ end
116
+
117
+ # If a request sent to the secondary location fails with 404 (Not Found), it is possible
118
+ # that the resource replication is not finished yet. So, in case of 404 only in the secondary
119
+ # location, the failure should still be retryable.
120
+ secondary_not_found = (retry_data[:current_location] === Azure::Storage::RequestLocationMode::SECONDARY_ONLY) && response.status_code === 404;
121
+
122
+ if secondary_not_found
123
+ retry_data[:status_code] = 500
124
+ else
125
+ if (response.status_code)
126
+ retry_data[:status_code] = response.status_code
127
+ else
128
+ retry_data[:status_code] = nil
129
+ end
130
+ end
131
+
132
+ # Non-timeout Cases
133
+ if (retry_data[:status_code] >= 300 && retry_data[:status_code] != 408)
134
+ # Always no retry on "not implemented" and "version not supported"
135
+ if (retry_data[:status_code] == 501 || retry_data[:status_code] == 505)
136
+ retry_data[:retryable] = false;
137
+ return false;
138
+ end
139
+ end
140
+
141
+ # When absorb_conditional_errors_on_retry is set (for append blob)
142
+ if (retry_data[:request_options] && retry_data[:request_options][:absorb_conditional_errors_on_retry])
143
+ if (retry_data[:status_code] == 412)
144
+ # When appending block with precondition failure and their was a server error before, we ignore the error.
145
+ if (retry_data[:last_server_error])
146
+ retry_data[:error] = nil;
147
+ retry_data[:retryable] = true;
148
+ else
149
+ retry_data[:retryable] = false;
150
+ end
151
+ elsif (retry_data[:retryable] && retry_data[:status_code] >= 500 && retry_data[:status_code] < 600)
152
+ # Retry on the server error
153
+ retry_data[:retryable] = true;
154
+ retry_data[:last_server_error] = true;
155
+ end
156
+ elsif (retry_data[:status_code] < 500)
157
+ # No retry on the client error
158
+ retry_data[:retryable] = false;
159
+ end
160
+ end
161
+
162
+ # Adjust the retry parameter
163
+ #
164
+ # retry_data - Hash. Stores stateful retry data
165
+ def adjust_retry_parameter(retry_data)
166
+ # TODO: Adjust the retry parameter according to the location and last attempt time
167
+ sleep retry_data[:interval] if retry_data[:retryable]
168
+ retry_data[:retryable]
169
+ end
170
+
171
+ end
172
+ end
@@ -22,7 +22,7 @@
22
22
  # THE SOFTWARE.
23
23
  #--------------------------------------------------------------------------
24
24
 
25
- module Azure::Core
25
+ module Azure::Storage::Core
26
26
  module HttpClient
27
27
  # Returns the http agent based on uri
28
28
  # @param uri [URI|String] the base uri (scheme, host, port) of the http endpoint
@@ -34,7 +34,7 @@ if RUBY_VERSION.to_f < 2.0
34
34
  end
35
35
  end
36
36
 
37
- module Azure
37
+ module Azure::Storage
38
38
  module Error
39
39
  # Azure Error
40
40
  class Error < Azure::Core::Error
@@ -204,12 +204,6 @@ end
204
204
 
205
205
  # Code validate private/public IP acceptable ranges.
206
206
  class IPAddr
207
- PRIVATE_RANGES = [
208
- IPAddr.new('10.0.0.0/8'),
209
- IPAddr.new('172.16.0.0/12'),
210
- IPAddr.new('192.168.0.0/16')
211
- ]
212
-
213
207
  def private?
214
208
  return false unless self.ipv4?
215
209
  PRIVATE_RANGES.each do |ipr|
@@ -249,6 +243,4 @@ class IPAddr
249
243
  (IPAddr.new(ip) rescue nil).nil?
250
244
  end
251
245
  end
252
- end
253
-
254
- Azure::Loggerx = Azure::Core::Logger
246
+ end
@@ -22,7 +22,7 @@
22
22
  # THE SOFTWARE.
23
23
  #--------------------------------------------------------------------------
24
24
 
25
- require 'azure/storage/core/signed_service'
25
+ require 'azure/core/signed_service'
26
26
  require 'azure/storage/core'
27
27
  require 'azure/storage/service/storage_service_properties'
28
28
 
@@ -36,7 +36,12 @@ module Azure::Storage
36
36
  # (optional, Default=Azure::Storage::Auth::SharedKey.new)
37
37
  # @param account_name [String] The account name (optional, Default=Azure.config.storage_account_name)
38
38
  # @param options [Azure::Storage::Configurable] the client configuration context
39
- def initialize(signer=Auth::SharedKey.new, account_name=nil, options = {})
39
+ def initialize(signer=nil, account_name=nil, options = {})
40
+ options[:client] = Azure::Storage if options[:client] == nil
41
+ client_config = options[:client]
42
+ signer = signer || Azure::Storage::Core::Auth::SharedKey.new(
43
+ client_config.storage_account_name,
44
+ client_config.storage_access_key)
40
45
  super(signer, account_name, options)
41
46
  end
42
47
 
@@ -22,12 +22,12 @@
22
22
  # THE SOFTWARE.
23
23
  #--------------------------------------------------------------------------
24
24
  require 'cgi'
25
- require 'azure/storage/core/auth/signer'
25
+ require 'azure/storage/core/auth/shared_key'
26
26
 
27
27
  module Azure::Storage
28
28
  module Table
29
29
  module Auth
30
- class SharedKey < Azure::Storage::Auth::SharedKey
30
+ class SharedKey < Core::Auth::SharedKey
31
31
  # The account name
32
32
  attr :account_name
33
33
 
@@ -23,10 +23,10 @@
23
23
  #--------------------------------------------------------------------------
24
24
  require 'uuid'
25
25
 
26
+ require 'azure/core/http/http_error'
26
27
  require 'azure/storage/table/serialization'
27
28
  require 'azure/storage/table/table_service'
28
29
  require 'azure/storage/table/batch_response'
29
- require 'azure/storage/core/http/http_error'
30
30
 
31
31
  module Azure::Storage
32
32
  module Table
@@ -29,7 +29,7 @@ require 'azure/storage/table/entity'
29
29
 
30
30
  module Azure::Storage
31
31
  module Table
32
- class TableService < Azure::Storage::Service::StorageService
32
+ class TableService < Service::StorageService
33
33
 
34
34
  def initialize(options = {})
35
35
  client_config = options[:client] || Azure::Storage
@@ -58,7 +58,7 @@ module Azure::Storage
58
58
  query = { }
59
59
  query['timeout'] = options[:timeout].to_s if options[:timeout]
60
60
 
61
- body = Azure::Storage::Table::Serialization.hash_to_entry_xml({"TableName" => table_name}).to_xml
61
+ body = Table::Serialization.hash_to_entry_xml({"TableName" => table_name}).to_xml
62
62
  call(:post, collection_uri(query), body)
63
63
  nil
64
64
  end
@@ -104,7 +104,7 @@ module Azure::Storage
104
104
  query["timeout"] = options[:timeout].to_s if options[:timeout]
105
105
 
106
106
  response = call(:get, table_uri(table_name, query))
107
- results = Azure::Storage::Table::Serialization.hash_from_entry_xml(response.body)
107
+ results = Table::Serialization.hash_from_entry_xml(response.body)
108
108
  results[:updated]
109
109
  end
110
110
 
@@ -131,7 +131,7 @@ module Azure::Storage
131
131
  uri = collection_uri(query)
132
132
 
133
133
  response = call(:get, uri)
134
- entries = Azure::Storage::Table::Serialization.entries_from_feed_xml(response.body) || []
134
+ entries = Table::Serialization.entries_from_feed_xml(response.body) || []
135
135
 
136
136
  values = Azure::Service::EnumerationResults.new(entries)
137
137
  values.continuation_token = response.headers["x-ms-continuation-NextTableName"]
@@ -160,7 +160,7 @@ module Azure::Storage
160
160
  response = call(:get, generate_uri(table_name, query), nil, {'x-ms-version' => '2012-02-12'})
161
161
 
162
162
  signed_identifiers = []
163
- signed_identifiers = Azure::Storage::Table::Serialization.signed_identifiers_from_xml response.body unless response.body == nil or response.body.length < 1
163
+ signed_identifiers = Table::Serialization.signed_identifiers_from_xml response.body unless response.body == nil or response.body.length < 1
164
164
  signed_identifiers
165
165
  end
166
166
 
@@ -186,7 +186,7 @@ module Azure::Storage
186
186
 
187
187
  uri = generate_uri(table_name, query)
188
188
  body = nil
189
- body = Azure::Storage::Table::Serialization.signed_identifiers_to_xml options[:signed_identifiers] if options[:signed_identifiers] && options[:signed_identifiers].length > 0
189
+ body = Table::Serialization.signed_identifiers_to_xml options[:signed_identifiers] if options[:signed_identifiers] && options[:signed_identifiers].length > 0
190
190
 
191
191
  call(:put, uri, body, {'x-ms-version' => '2012-02-12'})
192
192
  nil
@@ -210,14 +210,14 @@ module Azure::Storage
210
210
  #
211
211
  # Returns a Azure::Storage::Entity::Table::Entity
212
212
  def insert_entity(table_name, entity_values, options={})
213
- body = Azure::Storage::Table::Serialization.hash_to_entry_xml(entity_values).to_xml
213
+ body = Table::Serialization.hash_to_entry_xml(entity_values).to_xml
214
214
 
215
215
  query = { }
216
216
  query['timeout'] = options[:timeout].to_s if options[:timeout]
217
217
 
218
218
  response = call(:post, entities_uri(table_name, nil, nil, query), body)
219
219
 
220
- result = Azure::Storage::Table::Serialization.hash_from_entry_xml(response.body)
220
+ result = Table::Serialization.hash_from_entry_xml(response.body)
221
221
 
222
222
  Entity.new do |entity|
223
223
  entity.table = table_name
@@ -262,7 +262,7 @@ module Azure::Storage
262
262
 
263
263
  entities = Azure::Service::EnumerationResults.new
264
264
 
265
- results = (options[:partition_key] and options[:row_key]) ? [Azure::Storage::Table::Serialization.hash_from_entry_xml(response.body)] : Azure::Storage::Table::Serialization.entries_from_feed_xml(response.body)
265
+ results = (options[:partition_key] and options[:row_key]) ? [Table::Serialization.hash_from_entry_xml(response.body)] : Table::Serialization.entries_from_feed_xml(response.body)
266
266
 
267
267
  results.each do |result|
268
268
  entity = Entity.new do |e|
@@ -315,7 +315,7 @@ module Azure::Storage
315
315
  headers = {}
316
316
  headers["If-Match"] = if_match || "*" unless options[:create_if_not_exists]
317
317
 
318
- body = Azure::Storage::Table::Serialization.hash_to_entry_xml(entity_values).to_xml
318
+ body = Table::Serialization.hash_to_entry_xml(entity_values).to_xml
319
319
 
320
320
  response = call(:put, uri, body, headers)
321
321
  response.headers["etag"]
@@ -353,7 +353,7 @@ module Azure::Storage
353
353
  headers = { "X-HTTP-Method"=> "MERGE" }
354
354
  headers["If-Match"] = if_match || "*" unless options[:create_if_not_exists]
355
355
 
356
- body = Azure::Storage::Table::Serialization.hash_to_entry_xml(entity_values).to_xml
356
+ body = Table::Serialization.hash_to_entry_xml(entity_values).to_xml
357
357
 
358
358
  response = call(:post, uri, body, headers)
359
359
  response.headers["etag"]
@@ -28,7 +28,7 @@ module Azure
28
28
  # Fields represent the parts defined in http://semver.org/
29
29
  MAJOR = 0 unless defined? MAJOR
30
30
  MINOR = 10 unless defined? MINOR
31
- UPDATE = 0 unless defined? UPDATE
31
+ UPDATE = 1 unless defined? UPDATE
32
32
  PRE = 'preview' unless defined? PRE
33
33
 
34
34
  class << self
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.10.0.preview
4
+ version: 0.10.1.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: 2016-03-30 00:00:00.000000000 Z
11
+ date: 2016-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: azure-core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: faraday
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -235,7 +249,7 @@ dependencies:
235
249
  - !ruby/object:Gem::Version
236
250
  version: '0.8'
237
251
  description: Microsoft Azure Storage Client Library for Ruby
238
- email: dmsh@microsoft.com
252
+ email: ascl@microsoft.com
239
253
  executables: []
240
254
  extensions: []
241
255
  extra_rdoc_files: []
@@ -250,32 +264,23 @@ files:
250
264
  - lib/azure/storage/blob/page.rb
251
265
  - lib/azure/storage/blob/serialization.rb
252
266
  - lib/azure/storage/client.rb
267
+ - lib/azure/storage/client_options.rb
268
+ - lib/azure/storage/client_options_error.rb
253
269
  - lib/azure/storage/configurable.rb
254
270
  - lib/azure/storage/core.rb
255
271
  - lib/azure/storage/core/auth/shared_access_signature.rb
256
272
  - lib/azure/storage/core/auth/shared_access_signature_generator.rb
257
273
  - lib/azure/storage/core/auth/shared_access_signature_signer.rb
258
274
  - lib/azure/storage/core/auth/shared_key.rb
259
- - lib/azure/storage/core/auth/shared_key_lite.rb
260
- - lib/azure/storage/core/auth/signer.rb
261
275
  - lib/azure/storage/core/autoload.rb
262
- - lib/azure/storage/core/client_options.rb
263
- - lib/azure/storage/core/client_options_error.rb
264
- - lib/azure/storage/core/constants.rb
265
276
  - lib/azure/storage/core/error.rb
266
- - lib/azure/storage/core/filtered_service.rb
267
- - lib/azure/storage/core/http/debug_filter.rb
268
- - lib/azure/storage/core/http/http_error.rb
269
- - lib/azure/storage/core/http/http_filter.rb
270
- - lib/azure/storage/core/http/http_request.rb
271
- - lib/azure/storage/core/http/http_response.rb
272
- - lib/azure/storage/core/http/retry_policy.rb
273
- - lib/azure/storage/core/http/signer_filter.rb
277
+ - lib/azure/storage/core/filter/exponential_retry_filter.rb
278
+ - lib/azure/storage/core/filter/linear_retry_filter.rb
279
+ - lib/azure/storage/core/filter/retry_filter.rb
274
280
  - lib/azure/storage/core/http_client.rb
275
- - lib/azure/storage/core/service.rb
276
- - lib/azure/storage/core/signed_service.rb
277
281
  - lib/azure/storage/core/sr.rb
278
282
  - lib/azure/storage/core/utility.rb
283
+ - lib/azure/storage/default.rb
279
284
  - lib/azure/storage/queue/message.rb
280
285
  - lib/azure/storage/queue/queue.rb
281
286
  - lib/azure/storage/queue/queue_service.rb
@@ -327,3 +332,4 @@ signing_key:
327
332
  specification_version: 4
328
333
  summary: Official Ruby client library to consume Azure Storage services
329
334
  test_files: []
335
+ has_rdoc: