azure-armrest 0.3.10 → 0.3.11

Sign up to get free protection for your applications and to get access to all the features.
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