azure-armrest 0.3.0 → 0.3.1

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: d6e051e8b1aafc0e56dead25b4b049a1db77991d
4
- data.tar.gz: 6cd67f1ba82fc44da524373ae20f68b6e0a29737
3
+ metadata.gz: 81c1664938977f85f9b79045d208233777851e8a
4
+ data.tar.gz: 4418b381009c2c0274e7fd45f217ca114a44ae8e
5
5
  SHA512:
6
- metadata.gz: 2243372f9f4b26501539f91db5d91be939454c7608a6feee25d9addd8aae16239c986b76555286a1f19e384ce4fc7d77511701f30ae5104145b8da3003671bc2
7
- data.tar.gz: c139739090ad6fa30c5e86e61197db7cf09c7695d79ad4ee6aa728281294653234728cb782542f7a0633b1deede6d10258107211d51588ff1afcc2964aa7ee03
6
+ metadata.gz: b101ce1ef690827027dfd59ab2c509064afd8f488cc96b6879466ae29d9dca2b699a4fa6227022b5594e8f575f173f14e1a6c66805baa0d8cbdeee377c9ea236
7
+ data.tar.gz: 274f153ce11e6628d91bdf0bc21ef0dc15ad88c2bdf801705a5cdc14d159d3fff5ef1a61dbe370fb57d8a56b61facee9d67d89569fc9be0e6cc2a661bf1dd1a7
data/.travis.yml CHANGED
@@ -1,8 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "2.0"
4
- - "2.1"
5
- - "2.2"
3
+ - "2.2.5"
4
+ - "2.3.1"
6
5
  - ruby-head
7
6
  - jruby-head
8
7
  matrix:
data/CHANGES CHANGED
@@ -1,3 +1,12 @@
1
+ = 0.3.1 - 14-Jul-2016
2
+ * Now uses the parallel gem and thread pools for those few methods where
3
+ we were using threaded methods internally in order to reduce errors
4
+ caused by too many requests.
5
+ * Updated the rest-client dependency to 2.0.0 now that it has been released.
6
+ * Updated travis.yml to only test 2.2.5 and 2.3.1 for now. Partly due to a
7
+ change in the activesupport gem.
8
+ * One rspec fix for 2.3.x.
9
+
1
10
  = 0.3.0 - 28-Jun-2016
2
11
  * The configuration handling has been moved into its own class called
3
12
  Azure::Armrest::Configuration. You can call this explicitly using :new,
@@ -20,12 +20,13 @@ behind the scenes.
20
20
  EOF
21
21
 
22
22
  spec.add_dependency 'json'
23
- spec.add_dependency 'rest-client', '~> 2.0.0.rc'
23
+ spec.add_dependency 'rest-client', '~> 2.0.0'
24
24
  spec.add_dependency 'cache_method', '~> 0.2.7'
25
25
  spec.add_dependency 'azure-signature', '~> 0.2.0'
26
26
  spec.add_dependency 'activesupport', '>= 1.2.0'
27
27
  spec.add_dependency 'nokogiri', '~> 1.6.0'
28
28
  spec.add_dependency 'addressable', '~> 2.4.0'
29
+ spec.add_dependency 'parallel', '~> 1.9.0'
29
30
 
30
31
  spec.add_development_dependency 'bundler'
31
32
  spec.add_development_dependency 'rake'
data/lib/azure/armrest.rb CHANGED
@@ -2,6 +2,7 @@ require 'rest-client'
2
2
  require 'json'
3
3
  require 'thread'
4
4
  require 'addressable'
5
+ require 'parallel'
5
6
 
6
7
  # The Azure module serves as a namespace.
7
8
  module Azure
@@ -9,10 +9,6 @@ module Azure
9
9
  def initialize(configuration, options = {})
10
10
  super(configuration, 'availabilitySets', 'Microsoft.Compute', options)
11
11
  end
12
-
13
- def list_all
14
- list_in_all_groups
15
- end
16
12
  end # AvailabilitySetService
17
13
  end # Armrest
18
14
  end # Azure
@@ -215,14 +215,12 @@ module Azure
215
215
  def all_blobs(key = nil)
216
216
  key ||= properties.key1
217
217
  array = []
218
- threads = []
218
+ mutex = Mutex.new
219
219
 
220
- containers(key).each do |container|
221
- threads << Thread.new(container, key) { |c, k| array << blobs(c.name, k) }
220
+ Parallel.each(containers(key), :in_threads => 10) do |container|
221
+ mutex.synchronize { array << blobs(container.name, key) }
222
222
  end
223
223
 
224
- threads.each(&:join)
225
-
226
224
  array.flatten
227
225
  end
228
226
 
@@ -75,23 +75,20 @@ module Azure
75
75
  @model_class ||= Object.const_get(self.class.to_s.sub(/Service$/, ''))
76
76
  end
77
77
 
78
- # Aggregate resources from each group
79
- # To be used in the case that API does not support list_all with one call
78
+ # Aggregate resources from all resource groups.
79
+ #
80
+ # To be used in the cases where the API does not support list_all with one call.
81
+ #
80
82
  def list_in_all_groups
81
83
  array = []
82
- threads = []
83
84
  mutex = Mutex.new
84
85
 
85
- resource_groups.each do |rg|
86
- threads << Thread.new(rg.name) do |group|
87
- response = rest_get(build_url(group))
88
- results = JSON.parse(response)['value'].map { |hash| model_class.new(hash) }
89
- mutex.synchronize { array << results } unless results.blank?
90
- end
86
+ Parallel.each(list_resource_groups, :in_threads => 10) do |rg|
87
+ response = rest_get(build_url(rg.name))
88
+ results = JSON.parse(response)['value'].map { |hash| model_class.new(hash) }
89
+ mutex.synchronize { array << results } unless results.blank?
91
90
  end
92
91
 
93
- threads.each(&:join)
94
-
95
92
  array.flatten
96
93
  end
97
94
  end
@@ -246,30 +246,25 @@ module Azure
246
246
  #
247
247
  def get_private_images(storage_accounts)
248
248
  results = []
249
- threads = []
250
249
  mutex = Mutex.new
251
250
 
252
- storage_accounts.each do |lstorage_account|
253
- threads << Thread.new(lstorage_account) do |storage_account|
254
- key = get_account_key(storage_account)
251
+ Parallel.each(storage_accounts, :in_threads => 10) do |storage_account|
252
+ key = get_account_key(storage_account)
255
253
 
256
- storage_account.all_blobs(key).each do |blob|
257
- next unless File.extname(blob.name).casecmp('.vhd') == 0
258
- next unless blob.properties.lease_state.casecmp('available') == 0
254
+ storage_account.all_blobs(key).each do |blob|
255
+ next unless File.extname(blob.name).casecmp('.vhd') == 0
256
+ next unless blob.properties.lease_state.casecmp('available') == 0
259
257
 
260
- blob_properties = storage_account.blob_properties(blob.container, blob.name, key)
261
- next unless blob_properties.respond_to?(:x_ms_meta_microsoftazurecompute_osstate)
262
- next unless blob_properties.x_ms_meta_microsoftazurecompute_osstate.casecmp('generalized') == 0
258
+ blob_properties = storage_account.blob_properties(blob.container, blob.name, key)
259
+ next unless blob_properties.respond_to?(:x_ms_meta_microsoftazurecompute_osstate)
260
+ next unless blob_properties.x_ms_meta_microsoftazurecompute_osstate.casecmp('generalized') == 0
263
261
 
264
- mutex.synchronize do
265
- results << blob_to_private_image_object(storage_account, blob, blob_properties)
266
- end
262
+ mutex.synchronize do
263
+ results << blob_to_private_image_object(storage_account, blob, blob_properties)
267
264
  end
268
265
  end
269
266
  end
270
267
 
271
- threads.each(&:join)
272
-
273
268
  results
274
269
  end
275
270
 
@@ -1,5 +1,5 @@
1
1
  module Azure
2
2
  module Armrest
3
- VERSION = '0.3.0'.freeze
3
+ VERSION = '0.3.1'.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.0
4
+ version: 0.3.1
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-06-28 00:00:00.000000000 Z
14
+ date: 2016-07-14 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json
@@ -33,14 +33,14 @@ dependencies:
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: 2.0.0.rc
36
+ version: 2.0.0
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: 2.0.0.rc
43
+ version: 2.0.0
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: cache_method
46
46
  requirement: !ruby/object:Gem::Requirement
@@ -111,6 +111,20 @@ dependencies:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
113
  version: 2.4.0
114
+ - !ruby/object:Gem::Dependency
115
+ name: parallel
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 1.9.0
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 1.9.0
114
128
  - !ruby/object:Gem::Dependency
115
129
  name: bundler
116
130
  requirement: !ruby/object:Gem::Requirement