azure-armrest 0.9.13 → 0.11.0

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
  SHA256:
3
- metadata.gz: 6dcd07e3c1fc8044f9b374e414b9f73951882b44d6f829c5c1b576aa2bebe01c
4
- data.tar.gz: c35fe136a9f7e52f5f913ad5218f6958dbaf468e6021ab90cbfc3446b8d4b5a6
3
+ metadata.gz: c05fdb104f21ace674e10937a178a0ba1976c11f501d708107e5543976b1f8ae
4
+ data.tar.gz: 1d78a637421c4166578bf53a56f24dd7b7781dc74323eb02659f0e72ee9c55b0
5
5
  SHA512:
6
- metadata.gz: 5158479f2c1247d7ac00014034c09009f886f386b2e7864846246148e449919ffe672b223f1d2a31f77113a3ab71665e0e41da6c4f57055a4ecc42bb88a12a6e
7
- data.tar.gz: 394a269426ccf9664b0c3da1d1838a46df032d152a629dee80e9d7c890d251047daa10740180e388a1fb0be98339b0e6dcc1541382111fc3e1ae73b95e5e7049
6
+ metadata.gz: 4b20b6dcc409488a5559dce6be791448ebdeb78a077e48453c3aa8de143573c508ca92845f3725fc5ca83acb2c0c4970effaf82ed675a9c191b0e281bae3880f
7
+ data.tar.gz: ebc6a58804b759f3bfed65436e742dd1f7d815df6df252184a6da066fe119725b124287a31133cd49fa5740affe8ff0bbb73f1ecabcf087cb8521d7f118839e2
data/.codeclimate.yml ADDED
@@ -0,0 +1,16 @@
1
+ prepare:
2
+ fetch:
3
+ - url: https://raw.githubusercontent.com/ManageIQ/manageiq-style/master/.rubocop_base.yml
4
+ path: ".rubocop_base.yml"
5
+ - url: https://raw.githubusercontent.com/ManageIQ/manageiq-style/master/.rubocop_cc_base.yml
6
+ path: ".rubocop_cc_base.yml"
7
+ - url: https://raw.githubusercontent.com/ManageIQ/manageiq-style/master/styles/base.yml
8
+ path: styles/base.yml
9
+ - url: https://raw.githubusercontent.com/ManageIQ/manageiq-style/master/styles/cc_base.yml
10
+ path: styles/cc_base.yml
11
+ plugins:
12
+ rubocop:
13
+ enabled: true
14
+ config: ".rubocop_cc.yml"
15
+ channel: rubocop-0-82
16
+ version: '2'
data/.rubocop.yml CHANGED
@@ -1,4 +1,4 @@
1
+ inherit_gem:
2
+ manageiq-style: ".rubocop_base.yml"
1
3
  inherit_from:
2
- - https://raw.githubusercontent.com/ManageIQ/guides/master/.rubocop_base.yml
3
- # put all local rubocop config into .rubocop_local.yml as it will be loaded by .rubocop_cc.yml as well
4
- - .rubocop_local.yml
4
+ - ".rubocop_local.yml"
data/.rubocop_cc.yml ADDED
@@ -0,0 +1,4 @@
1
+ inherit_from:
2
+ - ".rubocop_base.yml"
3
+ - ".rubocop_cc_base.yml"
4
+ - ".rubocop_local.yml"
data/.travis.yml CHANGED
@@ -1,10 +1,8 @@
1
1
  language: ruby
2
- sudo: false
3
2
  cache: bundler
4
3
  rvm:
5
- - "2.2.8"
6
- - "2.3.5"
7
- - "2.4.2"
4
+ - "2.5.7"
5
+ - "2.6.5"
8
6
  - ruby-head
9
7
  - jruby-head
10
8
  matrix:
@@ -12,4 +10,9 @@ matrix:
12
10
  - rvm: ruby-head
13
11
  - rvm: jruby-head
14
12
  fast_finish: true
15
- after_script: bundle exec codeclimate-test-reporter
13
+ before_script:
14
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
15
+ - chmod +x ./cc-test-reporter
16
+ - ./cc-test-reporter before-build
17
+ after_script:
18
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
data/CHANGES CHANGED
@@ -1,3 +1,34 @@
1
+ = 0.11.0 - 20-Apr-2021
2
+ * Modify the VirtualMachineService#get method to include instance view
3
+ information
4
+ * Update default ssl_version to TLSv1_2
5
+ * Fix tenants method
6
+ * Handle application/xml exception content-types
7
+
8
+ = 0.10.0 - 14-May-2020
9
+ * Updated the rest-client dependency to 2.1.0.
10
+ * Updated the azure-signature dependency to 0.3.0.
11
+ * Updated the MetricsService#list_metrics method to use the current API, which
12
+ had apparently undergone some serious revision since we first implemented it.
13
+ It now accepts a hash of options, though you may still pass a string for the
14
+ sake of backwards compatibility.
15
+
16
+ = 0.9.15 - 23-Jan-2020
17
+ * The VirtualMachineService#delete_associated_resources now supports deleting
18
+ attached data disks.
19
+
20
+ = 0.9.14 - 23-Oct-2019
21
+ * Added the VirtualMachineService#list_by_location method.
22
+ * The VirtualMachineService#vm_operations method now returns a response object
23
+ instead of nil.
24
+ * The results of the ResourceProviderService#supported? method are now cached.
25
+ * Fixed a bug in the VirtualMachineService#vm_operate method where it wasn't
26
+ setting the response code.
27
+ * Fixed a bug in the Armrest::Configuration#log= method where it would bomb if
28
+ you used an object that was neither a string nor a logger instance.
29
+ * Made the requirements for the memoist gem less pessimistic.
30
+ * Some spec updates and general refactoring.
31
+
1
32
  = 0.9.13 - 12-Sep-2018
2
33
  * Updated the USGov AD authority endpoint, which was changed by Microsoft recently.
3
34
  * Added the timeout option for the Configuration class. This allows you to set
data/README.md CHANGED
@@ -8,7 +8,6 @@ A Ruby interface for Azure using the new REST API.
8
8
  [![Build Status](https://travis-ci.org/ManageIQ/azure-armrest.svg)](https://travis-ci.org/ManageIQ/azure-armrest)
9
9
  [![Code Climate](https://codeclimate.com/github/ManageIQ/azure-armrest/badges/gpa.svg)](https://codeclimate.com/github/ManageIQ/azure-armrest)
10
10
  [![Test Coverage](https://codeclimate.com/github/ManageIQ/azure-armrest/badges/coverage.svg)](https://codeclimate.com/github/ManageIQ/azure-armrest/coverage)
11
- [![Dependency Status](https://gemnasium.com/ManageIQ/azure-armrest.svg)](https://gemnasium.com/ManageIQ/azure-armrest)
12
11
  [![Security](https://hakiri.io/github/ManageIQ/azure-armrest/master.svg)](https://hakiri.io/github/ManageIQ/azure-armrest/master)
13
12
 
14
13
  ## Synopsis
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.email = ['dberger@redhat.com', 'bsorota@redhat.com', 'gblomqui@redhat.com', 'billwei@redhat.com']
9
9
  spec.summary = 'An interface for ARM/JSON Azure REST API'
10
10
  spec.homepage = 'http://github.com/ManageIQ/azure-armrest'
11
- spec.license = 'Apache 2.0'
11
+ spec.license = 'Apache-2.0'
12
12
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
13
13
 
14
14
  spec.description = <<-EOF
@@ -17,18 +17,18 @@ different than the current azure gem, which uses the older (XML) interface
17
17
  behind the scenes.
18
18
  EOF
19
19
 
20
- spec.add_dependency 'json', '~> 2'
21
- spec.add_dependency 'rest-client', '~> 2.0.0'
22
- spec.add_dependency 'memoist', '~> 0.15.0'
23
- spec.add_dependency 'azure-signature', '~> 0.2.3'
24
20
  spec.add_dependency 'activesupport', '>= 4.2.2'
25
21
  spec.add_dependency 'addressable', '~> 2.5.0'
22
+ spec.add_dependency 'azure-signature', '~> 0.3.0'
23
+ spec.add_dependency 'json', '~> 2'
24
+ spec.add_dependency 'memoist', '~> 0.15'
26
25
  spec.add_dependency 'parallel', '~> 1.12.0'
26
+ spec.add_dependency 'rest-client', '~> 2.1.0'
27
27
 
28
28
  spec.add_development_dependency 'bundler'
29
+ spec.add_development_dependency 'manageiq-style'
29
30
  spec.add_development_dependency 'rake'
30
31
  spec.add_development_dependency 'rspec', '~> 3.0'
31
32
  spec.add_development_dependency 'simplecov'
32
- spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0.0'
33
33
  spec.add_development_dependency 'timecop', '~> 0.7'
34
34
  end
data/lib/azure/armrest.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'rest-client'
2
2
  require 'json'
3
- require 'thread'
4
3
  require 'addressable'
5
4
  require 'parallel'
6
5
  require 'memoist'
@@ -1,5 +1,6 @@
1
1
  require 'time'
2
2
  require 'active_support/core_ext/hash/conversions'
3
+ require 'active_support/core_ext/hash/keys'
3
4
  require_relative 'model/base_model'
4
5
 
5
6
  module Azure
@@ -154,7 +155,7 @@ module Azure
154
155
  # Returns a list of tenants that can be accessed.
155
156
  #
156
157
  def tenants
157
- url = url_with_api_version(configuration.api_version, configuration.resource_url, 'tenants')
158
+ url = url_with_api_version(configuration.api_version, configuration.environment.resource_url, 'tenants')
158
159
  resp = rest_get(url)
159
160
  JSON.parse(resp.body)['value'].map{ |hash| Azure::Armrest::Tenant.new(hash) }
160
161
  end
@@ -253,11 +254,22 @@ module Azure
253
254
 
254
255
  def raise_api_exception(err)
255
256
  begin
256
- response = JSON.parse(err.http_body)
257
- code = response['error']['code']
258
- message = response['error']['message']
257
+ content_type_header = err.response.headers[:content_type]
258
+
259
+ response = case content_type_header.match(%r{(application/\w+)})[1]
260
+ when "application/json"
261
+ JSON.parse(err.http_body)
262
+ when "application/xml"
263
+ # The XML document that is returned has Error, Code, and Message
264
+ # so we need to downcase the keys to stay consistent with the
265
+ # parsed-json hash.
266
+ Hash.from_xml(err.http_body).deep_transform_keys(&:downcase)
267
+ end
268
+
269
+ code = response['error']['code']
270
+ message = response['error']['message']
259
271
  rescue
260
- code = err.try(:http_code) || err.try(:code)
272
+ code = err.try(:http_code) || err.try(:code)
261
273
  message = err.try(:http_body) || err.try(:message)
262
274
  end
263
275
 
@@ -107,7 +107,7 @@ module Azure
107
107
  :content_type => 'application/json',
108
108
  :grant_type => 'client_credentials',
109
109
  :proxy => ENV['http_proxy'],
110
- :ssl_version => 'TLSv1',
110
+ :ssl_version => 'TLSv1_2',
111
111
  :timeout => 60,
112
112
  :max_threads => 10,
113
113
  :max_retries => 3,
@@ -211,8 +211,12 @@ module Azure
211
211
  # a logger instance
212
212
  #
213
213
  def self.log=(output)
214
- output = Logger.new(output) unless output.kind_of?(Logger)
215
- RestClient.log = output
214
+ case output
215
+ when String
216
+ RestClient.log = Logger.new(output)
217
+ else
218
+ RestClient.log = output
219
+ end
216
220
  end
217
221
 
218
222
  # Returns a list of subscriptions for the current configuration object.
@@ -36,9 +36,21 @@ module Azure
36
36
  )
37
37
  end
38
38
 
39
- # Returns a list metrics for +resource_id+, which can be
40
- # either a resource object or a plain resource string. You
41
- # may also provide a +filter+ to limit the results.
39
+ # Returns a list metrics for +resource_id+, which can be either a
40
+ # resource object or a plain resource string. You may also provide
41
+ # hash of filtering +options+ to limit the results. The possible
42
+ # options are:
43
+ #
44
+ # * :timespan => The timespan of the query in "start/end" format.
45
+ # * :interval => The interval (timegrain) of the query.
46
+ # * :metricnames => A comma separated list of metrics to retrieve.
47
+ # * :aggregation => A comma separated list of aggregration types to retrieve.
48
+ # * :segment => The name of the dimension to segment the metric values by.
49
+ # * :top => The maximum number of records to retrieve. Defaults to 10.
50
+ # * :orderby => The aggregation to use for sorting.
51
+ # * :filter => An expression used to filter the results.
52
+ # * :resultType => Reduces the set of data collected. Syntax is dependent on operation.
53
+ # * :metricnamespace => Metric namespace to query metric definitions for.
42
54
  #
43
55
  # If no filter expression is defined, the first metric defined
44
56
  # for that resource will be returned using the primary aggregation
@@ -49,13 +61,18 @@ module Azure
49
61
  #
50
62
  # vm = vms.get('your_vm', 'your_resource_group')
51
63
  #
52
- # filter = "name.value eq 'Percentage CPU' and startTime "
53
- # filter << "eq 2017-01-03 and endTime eq 2017-01-04"
64
+ # options = {
65
+ # :metricnames => "'Percentage CPU'"
66
+ # :timespan => "2020-02-13T02:20:00Z/2020-02-14T04:20:00Z"
67
+ # :aggregation => "Average",
68
+ # :interval => "PT1M"
69
+ # }
54
70
  #
55
- # definitions = mts.list_metrics(vm.id)
71
+ # definitions = mts.list_metrics(vm.id, options)
56
72
  #
57
- def list_metrics(resource, filter = nil)
73
+ def list_metrics(resource, options = {})
58
74
  resource_id = resource.respond_to?(:id) ? resource.id : resource
75
+ options[:filter] = options if options.is_a?(String) # For backwards compatibility
59
76
 
60
77
  url = File.join(
61
78
  configuration.environment.resource_url,
@@ -64,7 +81,12 @@ module Azure
64
81
  )
65
82
 
66
83
  url << "?api-version=#{api_version}"
67
- url << "&$filter=#{filter}" if filter
84
+
85
+ # The :filter option requires a leading '$'
86
+ options.each do |key, value|
87
+ key.to_s == 'filter' ? url << "&$" : url << "&"
88
+ url << "#{key}=#{value}"
89
+ end
68
90
 
69
91
  response = rest_get(url)
70
92
 
@@ -288,7 +288,7 @@ module Azure
288
288
  url = File.join(properties.primary_endpoints.file, share, file)
289
289
  url += "?timeout=#{timeout}" if timeout
290
290
 
291
- hash = options.transform_keys.each { |okey| 'x-ms-' + okey.to_s.tr('_', '-') }
291
+ hash = options.transform_keys { |okey| 'x-ms-' + okey.to_s.tr('_', '-') }
292
292
 
293
293
  hash['verb'] = 'PUT'
294
294
 
@@ -380,7 +380,7 @@ module Azure
380
380
  url = File.join(properties.primary_endpoints.file, share, file) + "?comp=range"
381
381
  url += "&timeout=#{timeout}" if timeout
382
382
 
383
- hash = options.transform_keys.each { |okey| 'x-ms-' + okey.to_s.tr('_', '-') }
383
+ hash = options.transform_keys { |okey| 'x-ms-' + okey.to_s.tr('_', '-') }
384
384
 
385
385
  hash['verb'] = 'PUT'
386
386
  hash['x-ms-write'] ||= 'update'
@@ -232,7 +232,7 @@ module Azure
232
232
  api_version = configuration.provider_default_api_version(provider_name, full_service_name)
233
233
  end
234
234
  api_version ||= configuration.provider_default_api_version(provider_name, service_name)
235
- api_version ||= configuration.api_version
235
+ api_version || configuration.api_version
236
236
  end
237
237
 
238
238
  def delete_by_url(url, resource_name = '')
@@ -260,7 +260,7 @@ module Azure
260
260
  # arguments provided, and appends it with the api_version.
261
261
  #
262
262
  def build_url(resource_group = nil, *args)
263
- url = File.join(configuration.environment.resource_url, build_id_string(resource_group, *args))
263
+ File.join(configuration.environment.resource_url, build_id_string(resource_group, *args))
264
264
  end
265
265
 
266
266
  def build_id_string(resource_group = nil, *args)
@@ -279,6 +279,8 @@ module Azure
279
279
  query << "&$top=#{value}"
280
280
  elsif key.casecmp('filter').zero?
281
281
  query << "&$filter=#{value}" # Allow raw filter
282
+ elsif key.casecmp('expand').zero?
283
+ query << "&$expand=#{value}"
282
284
  else
283
285
  if query.include?("$filter")
284
286
  query << " and #{key} eq '#{value}'"
@@ -131,14 +131,17 @@ module Azure
131
131
  # given +namespace+. By default it will search the Microsoft.Compute
132
132
  # namespace.
133
133
  #
134
+ # The results of this method are cached.
135
+ #
134
136
  def supported?(resource_type, namespace = 'Microsoft.Compute')
135
137
  get(namespace).resource_types.map(&:resource_type).map(&:downcase).include?(resource_type.downcase)
136
138
  end
137
139
 
140
+ memoize :supported?
141
+
138
142
  private
139
143
 
140
144
  def build_url(namespace = nil, *args)
141
- id = configuration.subscription_id
142
145
  url = File.join(base_url, 'providers')
143
146
  url = File.join(url, namespace) if namespace
144
147
  url = File.join(url, *args) unless args.empty?
@@ -86,7 +86,7 @@ module Azure::Armrest::Storage::ManagedStorageHelper
86
86
  rescue Azure::Armrest::ForbiddenException => err
87
87
  log('warn', "ManagedStorageHelper.read: #{err}")
88
88
  raise err
89
- rescue RestClient::Exception, Azure::Armrest::ForbiddenException => err
89
+ rescue RestClient::Exception, Azure::Armrest::Exception => err
90
90
  raise err unless retries < max_retries
91
91
  log('warn', "ManagedStorageHelper.read: #{err} - retry number #{retries}")
92
92
  retries += 1
@@ -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.13'.freeze
4
+ VERSION = '0.11.0'.freeze
5
5
  end
6
6
  end
@@ -16,6 +16,14 @@ module Azure
16
16
  super(configuration, 'virtualMachines', 'Microsoft.Compute', options)
17
17
  end
18
18
 
19
+ # Return a list of virtual machines for the given +location+.
20
+ #
21
+ def list_by_location(location, options = {})
22
+ url = url_with_api_version(api_version, base_url, 'providers', provider, 'locations', location, service_name)
23
+ response = rest_get(url)
24
+ get_all_results(response, options[:skip_accessors_definition])
25
+ end
26
+
19
27
  # Return a list of available VM series (aka sizes, flavors, etc), such
20
28
  # as "Basic_A1", though other information is included as well.
21
29
  #
@@ -63,23 +71,48 @@ module Azure
63
71
  # Retrieves the settings of the VM named +vmname+ in resource group
64
72
  # +group+, which will default to the same as the name of the VM.
65
73
  #
66
- # By default this method will retrieve the model view. If the +model_view+
67
- # parameter is false, it will retrieve an instance view. The difference is
68
- # in the details of the information retrieved.
74
+ # You can also specify any query options. At this time only the
75
+ # :expand => 'instanceView' option is supported, but others could
76
+ # be added over time.
77
+ #
78
+ # For backwards compatibility, the third argument may also be a boolean
79
+ # which will retrieve the model view by default. Set to false if you only
80
+ # want the instance view.
81
+ #
82
+ # Examples:
69
83
  #
70
- def get(vmname, group = configuration.resource_group, model_view = true)
71
- model_view ? super(vmname, group) : get_instance_view(vmname, group)
84
+ # vms = VirtualMachineService.new(credentials)
85
+ #
86
+ # # Standard call, get just the model view
87
+ # vms.get('some_name', 'some_group')
88
+ # vms.get('some_name', 'some_group', true) # same
89
+ #
90
+ # # Get the instance view only
91
+ # vms.get('some_name', 'some_group', false)
92
+ #
93
+ # # Get the instance view merged with the model view
94
+ # vms.get('some_name', 'some_group', :expand => 'instanceView')
95
+ #
96
+ def get(vmname, group = configuration.resource_group, options = {})
97
+ if options.kind_of?(Hash)
98
+ url = build_url(group, vmname, options)
99
+ response = rest_get(url)
100
+ VirtualMachineInstance.new(response)
101
+ else
102
+ options ? super(vmname, group) : get_instance_view(vmname, group)
103
+ end
72
104
  end
73
105
 
74
106
  # Convenient wrapper around the get method that retrieves the model view
75
- # for +vmname+ in resource_group +group+.
107
+ # for +vmname+ in resource_group +group+ without the instance view
108
+ # information.
76
109
  #
77
110
  def get_model_view(vmname, group = configuration.resource_group)
78
- get(vmname, group, true)
111
+ get(vmname, group)
79
112
  end
80
113
 
81
- # Convenient wrapper around the get method that retrieves the instance view
82
- # for +vmname+ in resource_group +group+.
114
+ # Convenient wrapper around the get method that retrieves only the
115
+ # instance view for +vmname+ in resource_group +group+.
83
116
  #
84
117
  def get_instance_view(vmname, group = configuration.resource_group)
85
118
  raise ArgumentError, "must specify resource group" unless group
@@ -144,6 +177,7 @@ module Azure
144
177
  :network_interfaces => true,
145
178
  :ip_addresses => true,
146
179
  :os_disk => true,
180
+ :data_disks => false,
147
181
  :network_security_groups => false,
148
182
  :storage_account => false,
149
183
  :verbose => false
@@ -164,6 +198,10 @@ module Azure
164
198
  if options[:os_disk] || options[:storage_account]
165
199
  delete_associated_disk(vm, options)
166
200
  end
201
+
202
+ if options[:data_disks]
203
+ delete_associated_data_disks(vm, options)
204
+ end
167
205
  end
168
206
 
169
207
  def model_class
@@ -227,6 +265,20 @@ module Azure
227
265
  end
228
266
  end
229
267
 
268
+ # This deletes any attached data disks that are associated with the
269
+ # virtual machine. Note that this should only happen after the VM
270
+ # has been deleted.
271
+ #
272
+ def delete_associated_data_disks(vm, options)
273
+ sds = Azure::Armrest::Storage::DiskService.new(configuration)
274
+ data_disks = vm.properties.storage_profile.try(:data_disks)
275
+
276
+ data_disks&.each do |data_disk|
277
+ disk = sds.get_by_id(data_disk.managed_disk.id)
278
+ delete_and_wait(sds, disk.name, disk.resource_group, options)
279
+ end
280
+ end
281
+
230
282
  def delete_managed_storage(vm, options)
231
283
  sds = Azure::Armrest::Storage::DiskService.new(configuration)
232
284
  disk = sds.get_by_id(vm.properties.storage_profile.os_disk.managed_disk.id)
@@ -306,8 +358,11 @@ module Azure
306
358
  raise ArgumentError, "must specify name of the vm" unless vmname
307
359
 
308
360
  url = build_url(group, vmname, action)
309
- rest_post(url)
310
- nil
361
+ response = rest_post(url, options.to_json)
362
+
363
+ Azure::Armrest::ResponseHeaders.new(response.headers).tap do |headers|
364
+ headers.response_code = response.code
365
+ end
311
366
  end
312
367
  end
313
368
  end
metadata CHANGED
@@ -1,116 +1,116 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: azure-armrest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.13
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
8
8
  - Bronagh Sorota
9
9
  - Greg Blomquist
10
10
  - Bill Wei
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-09-12 00:00:00.000000000 Z
14
+ date: 2021-04-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: json
17
+ name: activesupport
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - "~>"
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '2'
22
+ version: 4.2.2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '2'
29
+ version: 4.2.2
30
30
  - !ruby/object:Gem::Dependency
31
- name: rest-client
31
+ name: addressable
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: 2.0.0
36
+ version: 2.5.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
43
+ version: 2.5.0
44
44
  - !ruby/object:Gem::Dependency
45
- name: memoist
45
+ name: azure-signature
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: 0.15.0
50
+ version: 0.3.0
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: 0.15.0
57
+ version: 0.3.0
58
58
  - !ruby/object:Gem::Dependency
59
- name: azure-signature
59
+ name: json
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: 0.2.3
64
+ version: '2'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: 0.2.3
71
+ version: '2'
72
72
  - !ruby/object:Gem::Dependency
73
- name: activesupport
73
+ name: memoist
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - ">="
76
+ - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: 4.2.2
78
+ version: '0.15'
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - ">="
83
+ - - "~>"
84
84
  - !ruby/object:Gem::Version
85
- version: 4.2.2
85
+ version: '0.15'
86
86
  - !ruby/object:Gem::Dependency
87
- name: addressable
87
+ name: parallel
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
90
  - - "~>"
91
91
  - !ruby/object:Gem::Version
92
- version: 2.5.0
92
+ version: 1.12.0
93
93
  type: :runtime
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: 2.5.0
99
+ version: 1.12.0
100
100
  - !ruby/object:Gem::Dependency
101
- name: parallel
101
+ name: rest-client
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: 1.12.0
106
+ version: 2.1.0
107
107
  type: :runtime
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: 1.12.0
113
+ version: 2.1.0
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: bundler
116
116
  requirement: !ruby/object:Gem::Requirement
@@ -125,6 +125,20 @@ dependencies:
125
125
  - - ">="
126
126
  - !ruby/object:Gem::Version
127
127
  version: '0'
128
+ - !ruby/object:Gem::Dependency
129
+ name: manageiq-style
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
128
142
  - !ruby/object:Gem::Dependency
129
143
  name: rake
130
144
  requirement: !ruby/object:Gem::Requirement
@@ -167,20 +181,6 @@ dependencies:
167
181
  - - ">="
168
182
  - !ruby/object:Gem::Version
169
183
  version: '0'
170
- - !ruby/object:Gem::Dependency
171
- name: codeclimate-test-reporter
172
- requirement: !ruby/object:Gem::Requirement
173
- requirements:
174
- - - "~>"
175
- - !ruby/object:Gem::Version
176
- version: 1.0.0
177
- type: :development
178
- prerelease: false
179
- version_requirements: !ruby/object:Gem::Requirement
180
- requirements:
181
- - - "~>"
182
- - !ruby/object:Gem::Version
183
- version: 1.0.0
184
184
  - !ruby/object:Gem::Dependency
185
185
  name: timecop
186
186
  requirement: !ruby/object:Gem::Requirement
@@ -208,9 +208,11 @@ executables: []
208
208
  extensions: []
209
209
  extra_rdoc_files: []
210
210
  files:
211
+ - ".codeclimate.yml"
211
212
  - ".gitignore"
212
213
  - ".rspec"
213
214
  - ".rubocop.yml"
215
+ - ".rubocop_cc.yml"
214
216
  - ".rubocop_local.yml"
215
217
  - ".travis.yml"
216
218
  - CHANGES
@@ -273,9 +275,9 @@ files:
273
275
  - lib/azure/armrest/virtual_machine_service.rb
274
276
  homepage: http://github.com/ManageIQ/azure-armrest
275
277
  licenses:
276
- - Apache 2.0
278
+ - Apache-2.0
277
279
  metadata: {}
278
- post_install_message:
280
+ post_install_message:
279
281
  rdoc_options: []
280
282
  require_paths:
281
283
  - lib
@@ -290,9 +292,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
290
292
  - !ruby/object:Gem::Version
291
293
  version: '0'
292
294
  requirements: []
293
- rubyforge_project:
294
- rubygems_version: 2.7.6
295
- signing_key:
295
+ rubygems_version: 3.2.5
296
+ signing_key:
296
297
  specification_version: 4
297
298
  summary: An interface for ARM/JSON Azure REST API
298
299
  test_files: []