azure-armrest 0.9.12 → 0.9.13

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
  SHA256:
3
- metadata.gz: 416faa7c6d2151e096ed17470ffbd099572a3e82036a98b2359fca338e70a1a6
4
- data.tar.gz: 380ef8ce3dbcb34e0c1c2b82d38c7a919d1cfd3e3657732184fe868c3cc1f0c8
3
+ metadata.gz: 6dcd07e3c1fc8044f9b374e414b9f73951882b44d6f829c5c1b576aa2bebe01c
4
+ data.tar.gz: c35fe136a9f7e52f5f913ad5218f6958dbaf468e6021ab90cbfc3446b8d4b5a6
5
5
  SHA512:
6
- metadata.gz: 296868a490d1f9a3e46c4f06d1ab615f5b66c9921a8318d766a266313078eda3a2694589820de4efc4b8e30d20f7561e643337901774109b6f9d12e0802ef333
7
- data.tar.gz: 5e3a47a0c268e4f5e1bce3b0023fd7eb8c9bab20003618e86592ad32dc7cb7773d476860dcd9bacaab5d9d98283ccffd446b22911c8ec1ff755fa16aa57bb615
6
+ metadata.gz: 5158479f2c1247d7ac00014034c09009f886f386b2e7864846246148e449919ffe672b223f1d2a31f77113a3ab71665e0e41da6c4f57055a4ecc42bb88a12a6e
7
+ data.tar.gz: 394a269426ccf9664b0c3da1d1838a46df032d152a629dee80e9d7c890d251047daa10740180e388a1fb0be98339b0e6dcc1541382111fc3e1ae73b95e5e7049
@@ -4,7 +4,7 @@ Style/MethodCallWithArgsParentheses:
4
4
  - raise
5
5
  Style/PercentLiteralDelimiters:
6
6
  PreferredDelimiters:
7
- '%i': []
8
- '%I': []
9
- '%w': []
10
- '%W': []
7
+ '%i': '[]'
8
+ '%I': '[]'
9
+ '%w': '[]'
10
+ '%W': '[]'
data/CHANGES CHANGED
@@ -1,3 +1,12 @@
1
+ = 0.9.13 - 12-Sep-2018
2
+ * Updated the USGov AD authority endpoint, which was changed by Microsoft recently.
3
+ * Added the timeout option for the Configuration class. This allows you to set
4
+ the timeout value for all http requests. The default is 60 seconds.
5
+ * Added the get_secret and list_secrets methods to the KeyVaultService class.
6
+ * Added the get method to the VirtualMachineImageService class, plus some
7
+ internal refactoring
8
+ * Some internal updates for rubocop.
9
+
1
10
  = 0.9.12 - 12-Jul-2018
2
11
  * Fixed and updated the ResourceProviderService#list_api_versions method. The
3
12
  previous version was broken and would probably return invalid informtion.
@@ -288,6 +288,7 @@ module Azure
288
288
  :proxy => configuration.proxy,
289
289
  :ssl_version => configuration.ssl_version,
290
290
  :ssl_verify => configuration.ssl_verify,
291
+ :timeout => configuration.timeout,
291
292
  :headers => {
292
293
  :accept => configuration.accept,
293
294
  :content_type => configuration.content_type,
@@ -59,6 +59,9 @@ module Azure
59
59
  # SSL verify mode for all http requests.
60
60
  attr_accessor :ssl_verify
61
61
 
62
+ # Timeout value for http requests in seconds. The default is 60.
63
+ attr_accessor :timeout
64
+
62
65
  # Namespace providers, their resource types, locations and supported api-version strings.
63
66
  attr_reader :providers
64
67
 
@@ -105,6 +108,7 @@ module Azure
105
108
  :grant_type => 'client_credentials',
106
109
  :proxy => ENV['http_proxy'],
107
110
  :ssl_version => 'TLSv1',
111
+ :timeout => 60,
108
112
  :max_threads => 10,
109
113
  :max_retries => 3,
110
114
  :environment => Azure::Armrest::Environment::Public
@@ -295,6 +299,7 @@ module Azure
295
299
  :proxy => proxy,
296
300
  :ssl_version => ssl_version,
297
301
  :ssl_verify => ssl_verify,
302
+ :timeout => timeout,
298
303
  :payload => {
299
304
  :grant_type => grant_type,
300
305
  :client_id => client_id,
@@ -139,7 +139,7 @@ module Azure
139
139
 
140
140
  USGovernment = new(
141
141
  :name => 'US Government',
142
- :active_directory_authority => 'https://login-us.microsoftonline.com/',
142
+ :active_directory_authority => 'https://login.microsoftonline.us/',
143
143
  :active_directory_resource_id => 'https://management.core.usgovcloudapi.net/',
144
144
  :gallery_url => 'https://gallery.usgovcloudapi.net/',
145
145
  :graph_url => 'https://graph.windows.net/',
@@ -10,6 +10,25 @@ module Azure
10
10
  super(configuration, 'vaults', 'Microsoft.KeyVault', options)
11
11
  end
12
12
 
13
+ # Get information for the specified +secret_name+ in +vault_name+ within
14
+ # the given +resource_group+.
15
+ #
16
+ def get_secret(secret_name, vault_name, resource_group = configuration.resource_group)
17
+ url = build_url(resource_group, vault_name, 'secrets', secret_name)
18
+ model_class.new(rest_get(url))
19
+ end
20
+
21
+ # Get a list secrets for the given +vault_name+ within +resource_group+.
22
+ # You may optionally specify the +maxresults+, which defaults to 25.
23
+ #
24
+ def list_secrets(vault_name, resource_group = configuration.resource_group, options = {})
25
+ url = build_url(resource_group, vault_name, 'secrets')
26
+ url << "&maxresults=#{options[:maxresults]}" if options[:maxresults]
27
+
28
+ response = rest_get(url)
29
+ get_all_results(response)
30
+ end
31
+
13
32
  # Gets the deleted Azure key vault.
14
33
  #
15
34
  def get_deleted(vault_name, location)
@@ -306,7 +306,8 @@ module Azure
306
306
  :headers => headers,
307
307
  :proxy => configuration.proxy,
308
308
  :ssl_version => configuration.ssl_version,
309
- :ssl_verify => configuration.ssl_verify
309
+ :ssl_verify => configuration.ssl_verify,
310
+ :timeout => configuration.timeout
310
311
  )
311
312
 
312
313
  Azure::Armrest::ResponseHeaders.new(response.headers).tap do |rh|
@@ -351,7 +352,8 @@ module Azure
351
352
  :headers => headers,
352
353
  :proxy => configuration.proxy,
353
354
  :ssl_version => configuration.ssl_version,
354
- :ssl_verify => configuration.ssl_verify
355
+ :ssl_verify => configuration.ssl_verify,
356
+ :timeout => configuration.timeout
355
357
  )
356
358
 
357
359
  Azure::Armrest::ResponseHeaders.new(response.headers).tap do |rh|
@@ -401,7 +403,8 @@ module Azure
401
403
  :headers => headers,
402
404
  :proxy => configuration.proxy,
403
405
  :ssl_version => configuration.ssl_version,
404
- :ssl_verify => configuration.ssl_verify
406
+ :ssl_verify => configuration.ssl_verify,
407
+ :timeout => configuration.timeout
405
408
  )
406
409
 
407
410
  Azure::Armrest::ResponseHeaders.new(response.headers).tap do |rh|
@@ -516,7 +519,8 @@ module Azure
516
519
  :headers => headers,
517
520
  :proxy => configuration.proxy,
518
521
  :ssl_version => configuration.ssl_version,
519
- :ssl_verify => configuration.ssl_verify
522
+ :ssl_verify => configuration.ssl_verify,
523
+ :timeout => configuration.timeout
520
524
  )
521
525
 
522
526
  BlobProperty.new(response.headers.merge(:container => container, :name => blob), options[:skip_accessors_definition])
@@ -555,7 +559,8 @@ module Azure
555
559
  :headers => headers,
556
560
  :proxy => configuration.proxy,
557
561
  :ssl_version => configuration.ssl_version,
558
- :ssl_verify => configuration.ssl_verify
562
+ :ssl_verify => configuration.ssl_verify,
563
+ :timeout => configuration.timeout
559
564
  )
560
565
 
561
566
  BlobProperty.new(response.headers.merge(:container => container, :name => blob))
@@ -717,7 +722,8 @@ module Azure
717
722
  :headers => headers,
718
723
  :proxy => configuration.proxy,
719
724
  :ssl_version => configuration.ssl_version,
720
- :ssl_verify => configuration.ssl_verify
725
+ :ssl_verify => configuration.ssl_verify,
726
+ :timeout => configuration.timeout
721
727
  )
722
728
 
723
729
  blob = blob_properties(dst_container, dst_blob, key)
@@ -744,7 +750,8 @@ module Azure
744
750
  :headers => headers,
745
751
  :proxy => configuration.proxy,
746
752
  :ssl_version => configuration.ssl_version,
747
- :ssl_verify => configuration.ssl_verify
753
+ :ssl_verify => configuration.ssl_verify,
754
+ :timeout => configuration.timeout
748
755
  )
749
756
 
750
757
  headers = Azure::Armrest::ResponseHeaders.new(response.headers)
@@ -819,7 +826,8 @@ module Azure
819
826
  :headers => headers,
820
827
  :proxy => configuration.proxy,
821
828
  :ssl_version => configuration.ssl_version,
822
- :ssl_verify => configuration.ssl_verify
829
+ :ssl_verify => configuration.ssl_verify,
830
+ :timeout => configuration.timeout
823
831
  )
824
832
 
825
833
  resp_headers = Azure::Armrest::ResponseHeaders.new(response.headers)
@@ -870,7 +878,8 @@ module Azure
870
878
  :headers => headers,
871
879
  :proxy => configuration.proxy,
872
880
  :ssl_version => configuration.ssl_version,
873
- :ssl_verify => configuration.ssl_verify
881
+ :ssl_verify => configuration.ssl_verify,
882
+ :timeout => configuration.timeout
874
883
  )
875
884
 
876
885
  headers = Azure::Armrest::ResponseHeaders.new(response.headers)
@@ -946,7 +955,8 @@ module Azure
946
955
  :headers => headers,
947
956
  :proxy => configuration.proxy,
948
957
  :ssl_version => configuration.ssl_version,
949
- :ssl_verify => configuration.ssl_verify
958
+ :ssl_verify => configuration.ssl_verify,
959
+ :timeout => configuration.timeout
950
960
  )
951
961
  end
952
962
 
@@ -1001,7 +1011,8 @@ module Azure
1001
1011
  :headers => headers,
1002
1012
  :proxy => configuration.proxy,
1003
1013
  :ssl_version => configuration.ssl_version,
1004
- :ssl_verify => configuration.ssl_verify
1014
+ :ssl_verify => configuration.ssl_verify,
1015
+ :timeout => configuration.timeout
1005
1016
  )
1006
1017
  end
1007
1018
 
@@ -1020,7 +1031,8 @@ module Azure
1020
1031
  :headers => headers,
1021
1032
  :proxy => configuration.proxy,
1022
1033
  :ssl_version => configuration.ssl_version,
1023
- :ssl_verify => configuration.ssl_verify
1034
+ :ssl_verify => configuration.ssl_verify,
1035
+ :timeout => configuration.timeout
1024
1036
  }
1025
1037
 
1026
1038
  if %w[put post].include?(request_type.to_s.downcase)
@@ -1049,7 +1061,8 @@ module Azure
1049
1061
  :headers => headers,
1050
1062
  :proxy => configuration.proxy,
1051
1063
  :ssl_version => configuration.ssl_version,
1052
- :ssl_verify => configuration.ssl_verify
1064
+ :ssl_verify => configuration.ssl_verify,
1065
+ :timeout => configuration.timeout
1053
1066
  )
1054
1067
  end
1055
1068
 
@@ -1,6 +1,6 @@
1
1
  module Azure
2
2
  module Armrest
3
3
  # The version of the azure-armrest library.
4
- VERSION = '0.9.12'.freeze
4
+ VERSION = '0.9.13'.freeze
5
5
  end
6
6
  end
@@ -22,6 +22,21 @@ module Azure
22
22
  @publisher = options[:publisher]
23
23
  end
24
24
 
25
+ # Return information about a specific offer/sku/version for the given
26
+ # +publisher+ within +location+.
27
+ #
28
+ def get(offer, sku, version, location = @location, publisher = @publisher)
29
+ check_for_location_and_publisher(location, publisher)
30
+
31
+ url = build_url(
32
+ location, 'publishers', publisher, 'artifacttypes',
33
+ 'vmimage', 'offers', offer, 'skus', sku, 'versions', version
34
+ )
35
+
36
+ response = rest_get(url)
37
+ Azure::Armrest::VirtualMachineImage.new(response)
38
+ end
39
+
25
40
  # Return a list of all VM image offers from the given +location+.
26
41
  #
27
42
  # Example:
@@ -33,11 +48,12 @@ module Azure
33
48
 
34
49
  mutex = Mutex.new
35
50
  images = []
51
+ max = configuration.max_threads
36
52
 
37
- Parallel.each(publishers(location), :in_threads => configuration.max_threads) do |publisher|
38
- Parallel.each(offers(location, publisher.name), :in_threads => configuration.max_threads) do |offer|
39
- Parallel.each(skus(offer.name, location, publisher.name), :in_threads => configuration.max_threads) do |sku|
40
- Parallel.each(versions(sku.name, offer.name, location, publisher.name), :in_threads => configuration.max_threads) do |version|
53
+ Parallel.each(publishers(location), :in_threads => max) do |publisher|
54
+ Parallel.each(offers(location, publisher.name), :in_threads => max) do |offer|
55
+ Parallel.each(skus(offer.name, location, publisher.name), :in_threads => max) do |sku|
56
+ Parallel.each(versions(sku.name, offer.name, location, publisher.name), :in_threads => max) do |version|
41
57
  mutex.synchronize do
42
58
  images << Azure::Armrest::VirtualMachineImage.new(
43
59
  :location => version.location,
@@ -63,8 +79,7 @@ module Azure
63
79
  # vmis.offers('eastus', 'Canonical')
64
80
  #
65
81
  def offers(location = @location, publisher = @publisher)
66
- raise ArgumentError, "No location specified" unless location
67
- raise ArgumentError, "No publisher specified" unless publisher
82
+ check_for_location_and_publisher(location, publisher)
68
83
 
69
84
  url = build_url(location, 'publishers', publisher, 'artifacttypes', 'vmimage', 'offers')
70
85
 
@@ -93,8 +108,7 @@ module Azure
93
108
  # vmis.skus('UbuntuServer', 'eastus', 'Canonical')
94
109
  #
95
110
  def skus(offer, location = @location, publisher = @publisher)
96
- raise ArgumentError, "No location specified" unless location
97
- raise ArgumentError, "No publisher specified" unless publisher
111
+ check_for_location_and_publisher(location, publisher)
98
112
 
99
113
  url = build_url(
100
114
  location, 'publishers', publisher, 'artifacttypes',
@@ -115,8 +129,7 @@ module Azure
115
129
  # => ["15.10.201511111", "15.10.201511161", "15.10.201512030"]
116
130
  #
117
131
  def versions(sku, offer, location = @location, publisher = @publisher)
118
- raise ArgumentError, "No location specified" unless location
119
- raise ArgumentError, "No publisher specified" unless publisher
132
+ check_for_location_and_publisher(location, publisher)
120
133
 
121
134
  url = build_url(
122
135
  location, 'publishers', publisher, 'artifacttypes',
@@ -133,8 +146,7 @@ module Azure
133
146
  # vmis.extension('LinuxDiagnostic', '2.3.9029', 'westus2', 'Microsoft.OSTCExtensions')
134
147
  #
135
148
  def extension(type, version, location = @location, publisher = @publisher)
136
- raise ArgumentError, "No location specified" unless location
137
- raise ArgumentError, "No publisher specified" unless publisher
149
+ check_for_location_and_publisher(location, publisher)
138
150
 
139
151
  url = build_url(
140
152
  location, 'publishers', publisher, 'artifacttypes',
@@ -152,8 +164,7 @@ module Azure
152
164
  # vmis.extension_types('westus', 'Microsoft.OSTCExtensions')
153
165
  #
154
166
  def extension_types(location = @location, publisher = @publisher)
155
- raise ArgumentError, "No location specified" unless location
156
- raise ArgumentError, "No publisher specified" unless publisher
167
+ check_for_location_and_publisher(location, publisher)
157
168
 
158
169
  url = build_url(location, 'publishers', publisher, 'artifacttypes', 'vmextension', 'types')
159
170
 
@@ -169,8 +180,7 @@ module Azure
169
180
  # vmis.extension_type_versions('LinuxDiagnostic', 'eastus', 'Microsoft.OSTCExtensions')
170
181
  #
171
182
  def extension_type_versions(type, location = @location, publisher = @publisher)
172
- raise ArgumentError, "No location specified" unless location
173
- raise ArgumentError, "No publisher specified" unless publisher
183
+ check_for_location_and_publisher(location, publisher)
174
184
 
175
185
  url = build_url(location, 'publishers', publisher, 'artifacttypes', 'vmextension', 'types', type, 'versions')
176
186
 
@@ -180,6 +190,14 @@ module Azure
180
190
 
181
191
  private
182
192
 
193
+ # Raise an error if either the +location+ or +publisher+ are nil. Used
194
+ # by other methods to handle explicit nils.
195
+ #
196
+ def check_for_location_and_publisher(location, publisher)
197
+ raise ArgumentError, "No location specified" unless location
198
+ raise ArgumentError, "No publisher specified" unless publisher
199
+ end
200
+
183
201
  # Builds a URL based on subscription_id an resource_group and any other
184
202
  # arguments provided, and appends it with the api_version.
185
203
  #
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.9.12
4
+ version: 0.9.13
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: 2018-07-12 00:00:00.000000000 Z
14
+ date: 2018-09-12 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json