azure-armrest 0.3.10 → 0.3.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b9777098a3e4838e748f6da116a2537864c42002
4
- data.tar.gz: 3ec9b411092bfb9d6cd5fc24c0aadecd2a0ccbc6
3
+ metadata.gz: 374a82fa5abab25e86c1d55475f91cbcd51f0606
4
+ data.tar.gz: 8fb3f44d22dbe3f8d4697c74205d671e04c7be96
5
5
  SHA512:
6
- metadata.gz: d67953ce9e556be3f25a410b64899cde8d6294089eca9bc0b3e320ce1e452e2277783a48459ff7250422c487e39898fb1ab9ac471df482ae382fe4d81539156f
7
- data.tar.gz: 4b7966bd30284bd34bd16eacb0960bb49ba23ea767db1a9275159c0c1f459dde5ae34d69151c679ec8a83b2df3d8b2b0bfb3a192c23b844ff984b7ab3b4aef7c
6
+ metadata.gz: 67130daca26bbfc9b629dd256f65a92412eaebe7b59a832a4f80b032ae0622052c4979640631458609fb466aac204e1f0f678184d5ed13e2e45a69085b885b9d
7
+ data.tar.gz: 2539f429201b3d24ad4703bab06b4e7112125dba85aa29a047ab6c1d0843a9a13eaf2ff229b9850ff34695d6b7412c694d3d63bf36d2f493dcff7c4b7ccada96
data/.travis.yml CHANGED
@@ -9,3 +9,4 @@ matrix:
9
9
  - rvm: ruby-head
10
10
  - rvm: jruby-head
11
11
  fast_finish: true
12
+ after_script: bundle exec codeclimate-test-reporter
data/CHANGES CHANGED
@@ -1,3 +1,11 @@
1
+ = 0.3.11 - 8-Nov-2016
2
+ * Fixed the regex for the internal method parse_id_string, making the
3
+ get_associated_resource method more robust.
4
+ * The get_associated_resource now supports VM extensions.
5
+ * The list and list_all methods for the ResourceService class now
6
+ optionally return all possible results instead of capping at 1000.
7
+ * Some updates for codeclimate-test-reporter, simplecov.
8
+
1
9
  = 0.3.10 - 28-Oct-2016
2
10
  * Added the ResourceGroupBasedService#get_associated_resource method. This
3
11
  method will retrieve a service or subservice resource based on an ID string.
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in azure-armrest.gemspec
4
4
  gemspec
5
+
6
+ group :test do
7
+ gem "simplecov", :require => false
8
+ gem "codeclimate-test-reporter", "~> 1.0.0", :require => false
9
+ end
@@ -31,6 +31,7 @@ behind the scenes.
31
31
  spec.add_development_dependency 'bundler'
32
32
  spec.add_development_dependency 'rake'
33
33
  spec.add_development_dependency 'rspec', '~> 3.0'
34
- spec.add_development_dependency 'codeclimate-test-reporter'
34
+ spec.add_development_dependency 'simplecov'
35
+ spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0.0'
35
36
  spec.add_development_dependency 'timecop', '~> 0.7'
36
37
  end
@@ -337,6 +337,25 @@ module Azure
337
337
  return nil unless json['nextLink']
338
338
  json['nextLink'][/.*?skipToken=(.*?)$/i, 1]
339
339
  end
340
+
341
+ # Make additional calls and concatenate the results if a continuation URL is found.
342
+ def get_all_results(response)
343
+ results = Azure::Armrest::ArmrestCollection.create_from_response(response, model_class)
344
+ nextlink = JSON.parse(response)['nextLink']
345
+
346
+ while nextlink
347
+ response = rest_get_without_encoding(nextlink)
348
+ more = Azure::Armrest::ArmrestCollection.create_from_response(response, model_class)
349
+ results.concat(more)
350
+ nextlink = JSON.parse(response)['nextLink']
351
+ end
352
+
353
+ results
354
+ end
355
+
356
+ def model_class
357
+ @model_class ||= Object.const_get(self.class.to_s.sub(/Service$/, ''))
358
+ end
340
359
  end # ArmrestService
341
360
  end # Armrest
342
361
  end # Azure
@@ -16,6 +16,7 @@ module Azure
16
16
  'securityrules' => Azure::Armrest::Network::NetworkSecurityRule,
17
17
  'routes' => Azure::Armrest::Network::Route,
18
18
  'databases' => Azure::Armrest::Sql::SqlDatabase,
19
+ 'extensions' => Azure::Armrest::VirtualMachineExtension
19
20
  }.freeze
20
21
 
21
22
  # Create a resource +name+ within the resource group +rgroup+, or the
@@ -175,14 +176,14 @@ module Azure
175
176
  def parse_id_string(id_string)
176
177
  regex = %r{
177
178
  subscriptions/
178
- (?<subscription_id>[\w\-]+)?/
179
+ (?<subscription_id>[^\/]+)?/
179
180
  resourceGroups/
180
- (?<resource_group>\w+)?/
181
+ (?<resource_group>[^\/]+)?/
181
182
  providers/
182
- (?<provider>[\w\.]+)?/
183
- (?<service_name>\w+)?/
184
- (?<resource_name>\w+)
185
- (/(?<subservice_name>\w+)?/(?<subservice_resource_name>\w+))*
183
+ (?<provider>[^\/]+)?/
184
+ (?<service_name>[^\/]+)?/
185
+ (?<resource_name>[^\/]+)
186
+ (/(?<subservice_name>[^\/]+)?/(?<subservice_resource_name>[^\/]+))*
186
187
  \z
187
188
  }x
188
189
 
@@ -190,21 +191,6 @@ module Azure
190
191
  Hash[match.names.zip(match.captures)]
191
192
  end
192
193
 
193
- # Make additional calls and concatenate the results if a continuation URL is found.
194
- def get_all_results(response)
195
- results = Azure::Armrest::ArmrestCollection.create_from_response(response, model_class)
196
- nextlink = JSON.parse(response)['nextLink']
197
-
198
- while nextlink
199
- response = rest_get_without_encoding(nextlink)
200
- more = Azure::Armrest::ArmrestCollection.create_from_response(response, model_class)
201
- results.concat(more)
202
- nextlink = JSON.parse(response)['nextLink']
203
- end
204
-
205
- results
206
- end
207
-
208
194
  def validate_resource_group(name)
209
195
  raise ArgumentError, "must specify resource group" unless name
210
196
  end
@@ -224,10 +210,6 @@ module Azure
224
210
  url << "?api-version=#{@api_version}"
225
211
  end
226
212
 
227
- def model_class
228
- @model_class ||= Object.const_get(self.class.to_s.sub(/Service$/, ''))
229
- end
230
-
231
213
  # Aggregate resources from all resource groups.
232
214
  #
233
215
  # To be used in the cases where the API does not support list_all with
@@ -14,6 +14,9 @@ module Azure
14
14
  # resource group. You can optionally pass :top or :filter options as well
15
15
  # to restrict returned results.
16
16
  #
17
+ # Normally this is capped at 1000 results, but you may specify the :all
18
+ # option to get everything.
19
+ #
17
20
  # Examples:
18
21
  #
19
22
  # rs = Azure::Armrest::ResourceService.new
@@ -23,16 +26,29 @@ module Azure
23
26
  def list(resource_group, options = {})
24
27
  url = build_url(resource_group, options)
25
28
  response = rest_get(url)
26
- Azure::Armrest::ArmrestCollection.create_from_response(response, Azure::Armrest::Resource)
29
+
30
+ if options[:all]
31
+ get_all_results(response)
32
+ else
33
+ Azure::Armrest::ArmrestCollection.create_from_response(response, Azure::Armrest::Resource)
34
+ end
27
35
  end
28
36
 
29
37
  # Same as Azure::Armrest::ResourceService#list but returns all resources
30
38
  # for all resource groups.
31
39
  #
40
+ # Normally this is capped at 1000 results, but you may specify the :all
41
+ # option to get everything.
42
+ #
32
43
  def list_all(options = {})
33
44
  url = build_url(nil, options)
34
45
  response = rest_get(url)
35
- Azure::Armrest::ArmrestCollection.create_from_response(response, Azure::Armrest::Resource)
46
+
47
+ if options[:all]
48
+ get_all_results(response)
49
+ else
50
+ Azure::Armrest::ArmrestCollection.create_from_response(response, Azure::Armrest::Resource)
51
+ end
36
52
  end
37
53
 
38
54
  # Move the resources from +source_group+ under +source_subscription+,
@@ -1,5 +1,5 @@
1
1
  module Azure
2
2
  module Armrest
3
- VERSION = '0.3.10'.freeze
3
+ VERSION = '0.3.11'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: azure-armrest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.3.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-10-28 00:00:00.000000000 Z
14
+ date: 2016-11-08 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json
@@ -168,7 +168,7 @@ dependencies:
168
168
  - !ruby/object:Gem::Version
169
169
  version: '3.0'
170
170
  - !ruby/object:Gem::Dependency
171
- name: codeclimate-test-reporter
171
+ name: simplecov
172
172
  requirement: !ruby/object:Gem::Requirement
173
173
  requirements:
174
174
  - - ">="
@@ -181,6 +181,20 @@ dependencies:
181
181
  - - ">="
182
182
  - !ruby/object:Gem::Version
183
183
  version: '0'
184
+ - !ruby/object:Gem::Dependency
185
+ name: codeclimate-test-reporter
186
+ requirement: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - "~>"
189
+ - !ruby/object:Gem::Version
190
+ version: 1.0.0
191
+ type: :development
192
+ prerelease: false
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: 1.0.0
184
198
  - !ruby/object:Gem::Dependency
185
199
  name: timecop
186
200
  requirement: !ruby/object:Gem::Requirement
@@ -275,7 +289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
289
  version: '0'
276
290
  requirements: []
277
291
  rubyforge_project:
278
- rubygems_version: 2.6.7
292
+ rubygems_version: 2.6.8
279
293
  signing_key:
280
294
  specification_version: 4
281
295
  summary: An interface for ARM/JSON Azure REST API