foreman_azure_rm 2.1.2 → 2.2.3

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: 04afcc03f8710a4e02d4f540342ff9e1ec9188fc8c83734065eecc6956327341
4
- data.tar.gz: 20b3d6cbfd6346270fb9fe335ae0ebde9181751ffd61b6c4bb98868cacf82ab4
3
+ metadata.gz: 66582a70ada6bb3f6b1fc712b3e608b51011c30a1984fec8eedd4668c73e4354
4
+ data.tar.gz: 1e6bd7f047048ac2ce3fe11bacd0d58d0789283fb4a282f45afbb56acf32d6bf
5
5
  SHA512:
6
- metadata.gz: c6dc0580218a0bb8e37c734a669931d1fd6c02d37170b77d50a11afdaaee0c7675ee0cb3897eb8c05aa7e8d58af519a8e1b3e09521b6e1344a78cda1f5e3f456
7
- data.tar.gz: 2aea8c30cc2c29bea406c17471bffbf029311616137e964564e236d1b8caee737f8afc644c5b6e52969f4a0eaff59d420bf4a0de7159229b424475e5797da6ba
6
+ metadata.gz: 113776b3d93fdafecc995f33baea6b405d103ad0b07805be982243d14a324541b1d8ee88707bd2277a4b86b199a360a4a4ef7153cdddabc8d489b70c75f98c46
7
+ data.tar.gz: 91049cb9fd99a32afb1bee9cf607610323fceff5281ede64caefd57b3762ffcc72e071ebd974fdd743c568305f9fa9a48a5c6d5ab65fb6c755a68a726eab31b0
data/README.md CHANGED
@@ -67,6 +67,7 @@ Then run `bundle install` from the same directory
67
67
  * Limited extension support
68
68
  * Microsoft's custom script extension
69
69
  * Puppet Lab's Puppet agent extension for Windows
70
+ * Azure Gov Cloud Support
70
71
 
71
72
  ## Configuration
72
73
  Go to **Infrastructure > Compute Resources** and click on "New Compute Resource".
@@ -86,7 +87,6 @@ That's it. You're now ready to create and manage Azure resources in your new Azu
86
87
 
87
88
 
88
89
  ## Planned Features
89
- * Azure Gov Cloud Support
90
90
  * Support for http_proxy
91
91
 
92
92
  ## Known Limitations
@@ -10,6 +10,7 @@ module ForemanAzureRm
10
10
  param :app_ident, String, :desc => N_("Client ID for AzureRm")
11
11
  param :secret_key, String, :desc => N_("Client Secret for AzureRm")
12
12
  param :sub_id, String, :desc => N_("Subscription ID for AzureRm")
13
+ param :cloud, String, :desc => N_("Cloud")
13
14
  end
14
15
  end
15
16
 
@@ -10,4 +10,7 @@ module AzureComputeResourceHelper
10
10
  end
11
11
  selectable_f(f, :url, regions, {}, {:label => _('Azure Region'), :disabled => regions.empty?, :required => true, :help_inline_permanent => load_button_f(f, regions.present?, _("Load Regions")) })
12
12
  end
13
+ def azure_doc_version
14
+ doc_version = Foreman::Plugin.find(:foreman_azure_rm).version.scan(/\d+\.\d+/).first + '.x'
15
+ end
13
16
  end
@@ -4,7 +4,7 @@ module ForemanAzureRm
4
4
  module ManagedVM
5
5
  extend ActiveSupport::Concern
6
6
 
7
- def define_managed_storage_profile(vm_name, os_disk_caching, platform, premium_os_disk)
7
+ def define_managed_storage_profile(vm_name, os_disk_caching, platform, premium_os_disk, os_disk_size_gb)
8
8
  storage_profile = ComputeModels::StorageProfile.new
9
9
  os_disk = ComputeModels::OSDisk.new
10
10
  managed_disk_params = ComputeModels::ManagedDiskParameters.new
@@ -12,6 +12,7 @@ module ForemanAzureRm
12
12
  # Create OS disk
13
13
  os_disk.name = "#{vm_name}-osdisk"
14
14
  os_disk.os_type = platform
15
+ os_disk.disk_size_gb = os_disk_size_gb
15
16
  os_disk.create_option = ComputeModels::DiskCreateOptionTypes::FromImage
16
17
  os_disk.caching = disk_caching(os_disk_caching)
17
18
  managed_disk_params.storage_account_type = if premium_os_disk == 'true'
@@ -122,7 +123,7 @@ module ForemanAzureRm
122
123
  def create_nics(region, args = {})
123
124
  nics = []
124
125
  args[:interfaces_attributes].each do |nic, attrs|
125
- private_ip = (attrs[:private_ip] == 'false') ? false : true
126
+ private_ip = Foreman::Cast.to_bool(attrs[:private_ip])
126
127
  priv_ip_alloc = if private_ip
127
128
  NetworkModels::IPAllocationMethod::Static
128
129
  else
@@ -187,21 +188,23 @@ module ForemanAzureRm
187
188
  os_profile.admin_password = vm_hash[:password]
188
189
 
189
190
  # Adding the ssh-key support for authentication
190
- os_profile.linux_configuration = ComputeModels::LinuxConfiguration.new.tap do |linux|
191
- linux.disable_password_authentication = vm_hash[:disable_password_authentication]
192
- linux.ssh = ComputeModels::SshConfiguration.new.tap do |ssh_config|
193
- ssh_config.public_keys = [
194
- ComputeModels::SshPublicKey.new.tap do |foreman_key|
195
- foreman_key.key_data = key_pair.public
196
- foreman_key.path = "/home/#{vm_hash[:username]}/.ssh/authorized_keys"
191
+ if vm_hash[:platform] == 'Linux'
192
+ os_profile.linux_configuration = ComputeModels::LinuxConfiguration.new.tap do |linux|
193
+ linux.disable_password_authentication = vm_hash[:disable_password_authentication]
194
+ linux.ssh = ComputeModels::SshConfiguration.new.tap do |ssh_config|
195
+ ssh_config.public_keys = [
196
+ ComputeModels::SshPublicKey.new.tap do |foreman_key|
197
+ foreman_key.key_data = key_pair.public
198
+ foreman_key.path = "/home/#{vm_hash[:username]}/.ssh/authorized_keys"
199
+ end
200
+ ]
201
+ if vm_hash[:ssh_key_data].present?
202
+ key_data = vm_hash[:ssh_key_data]
203
+ pub_key = ComputeModels::SshPublicKey.new
204
+ pub_key.key_data = key_data
205
+ pub_key.path = "/home/#{vm_hash[:username]}/.ssh/authorized_keys"
206
+ ssh_config.public_keys << pub_key
197
207
  end
198
- ]
199
- if vm_hash[:ssh_key_data].present?
200
- key_data = vm_hash[:ssh_key_data]
201
- pub_key = ComputeModels::SshPublicKey.new
202
- pub_key.key_data = key_data
203
- pub_key.path = "/home/#{vm_hash[:username]}/.ssh/authorized_keys"
204
- ssh_config.public_keys << pub_key
205
208
  end
206
209
  end
207
210
  end
@@ -212,7 +215,8 @@ module ForemanAzureRm
212
215
  vm_hash[:name],
213
216
  vm_hash[:os_disk_caching],
214
217
  vm_hash[:platform],
215
- vm_hash[:premium_os_disk]
218
+ vm_hash[:premium_os_disk],
219
+ vm_hash[:os_disk_size_gb]
216
220
  )
217
221
  vm.hardware_profile = ComputeModels::HardwareProfile.new.tap do |hw_profile|
218
222
  hw_profile.vm_size = vm_hash[:vm_size]
@@ -235,11 +239,22 @@ module ForemanAzureRm
235
239
  if args[:script_command].present? || args[:script_uris].present?
236
240
  args[:script_uris] ||= args[:script_uris].to_s
237
241
  extension = ComputeModels::VirtualMachineExtension.new
238
- if args[:platform] == 'Linux'
242
+
243
+ case args[:platform]
244
+ # https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/custom-script-linux
245
+ when 'Linux'
239
246
  extension.publisher = 'Microsoft.Azure.Extensions'
240
247
  extension.virtual_machine_extension_type = 'CustomScript'
241
248
  extension.type_handler_version = '2.0'
249
+ # https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/custom-script-windows
250
+ when 'Windows'
251
+ extension.publisher = 'Microsoft.Compute'
252
+ extension.virtual_machine_extension_type = 'CustomScriptExtension'
253
+ extension.type_handler_version = '1.10'
254
+ else
255
+ raise RuntimeError, "Unsupported platform #{args[:platform]}"
242
256
  end
257
+
243
258
  extension.auto_upgrade_minor_version = true
244
259
  extension.location = region
245
260
  extension.settings = {
@@ -11,6 +11,7 @@ module ForemanAzureRm
11
11
  alias_attribute :secret_key, :password
12
12
  alias_attribute :region, :url
13
13
  alias_attribute :tenant, :uuid
14
+ alias_attribute :azure_environment, :cloud
14
15
 
15
16
  validates :user, :password, :uuid, :app_ident, :presence => true
16
17
 
@@ -41,8 +42,16 @@ module ForemanAzureRm
41
42
  attrs[:app_ident] = name
42
43
  end
43
44
 
45
+ def cloud
46
+ attrs[:cloud]
47
+ end
48
+
49
+ def cloud=(name)
50
+ attrs[:cloud] = name
51
+ end
52
+
44
53
  def sdk
45
- @sdk ||= ForemanAzureRm::AzureSdkAdapter.new(tenant, app_ident, secret_key, sub_id)
54
+ @sdk ||= ForemanAzureRm::AzureSdkAdapter.new(tenant, app_ident, secret_key, sub_id, azure_environment)
46
55
  end
47
56
 
48
57
  def to_label
@@ -81,7 +90,7 @@ module ForemanAzureRm
81
90
 
82
91
  def test_connection(options = {})
83
92
  super
84
- errors[:user].empty? && errors[:password].empty? && errors[:uuid].empty? && errors[:app_ident].empty? && regions
93
+ errors[:user].empty? && errors[:password].empty? && errors[:uuid].empty? && errors[:app_ident].empty? && errors[:cloud].empty? && regions
85
94
  rescue StandardError => e
86
95
  errors[:base] << e.message
87
96
  rescue Excon::Error::Socket => e
@@ -106,7 +115,8 @@ module ForemanAzureRm
106
115
  platform: opts[:platform],
107
116
  ssh_key_data: opts[:ssh_key_data],
108
117
  os_disk_caching: opts[:os_disk_caching],
109
- premium_os_disk: opts[:premium_os_disk]
118
+ premium_os_disk: opts[:premium_os_disk],
119
+ os_disk_size_gb: opts[:os_disk_size_gb]
110
120
  )
111
121
  if opts[:interfaces].present?
112
122
  ifaces = []
@@ -259,23 +269,26 @@ module ForemanAzureRm
259
269
  args = args.to_h.deep_symbolize_keys
260
270
  args[:vm_name] = args[:name].split('.')[0]
261
271
  nics = create_nics(region, args)
262
- if args[:password].present? && !args[:ssh_key_data].present?
263
- # Any change to sudoers_cmd and formation of new
264
- # args[:script_command] must be accordingly changed
265
- # in script_command method in AzureRmCompute class
266
- sudoers_cmd = "$echo #{args[:password]} | sudo -S echo '\"#{args[:username]}\" ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/waagent"
267
- if args[:script_command].present?
268
- # to run the script_cmd given through form as username
269
- user_command = args[:script_command]
270
- args[:script_command] = sudoers_cmd + " ; su - \"#{args[:username]}\" -c \"#{user_command}\""
272
+
273
+ if args[:platform] == 'Linux'
274
+ if args[:password].present? && !args[:ssh_key_data].present?
275
+ # Any change to sudoers_cmd and formation of new
276
+ # args[:script_command] must be accordingly changed
277
+ # in script_command method in AzureRmCompute class
278
+ sudoers_cmd = "$echo #{args[:password]} | sudo -S echo '\"#{args[:username]}\" ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/waagent"
279
+ if args[:script_command].present?
280
+ # to run the script_cmd given through form as username
281
+ user_command = args[:script_command]
282
+ args[:script_command] = sudoers_cmd + " ; su - \"#{args[:username]}\" -c \"#{user_command}\""
283
+ else
284
+ args[:script_command] = sudoers_cmd
285
+ end
286
+ disable_password_auth = false
287
+ elsif args[:ssh_key_data].present? && !args[:password].present?
288
+ disable_password_auth = true
271
289
  else
272
- args[:script_command] = sudoers_cmd
290
+ disable_password_auth = false
273
291
  end
274
- disable_password_auth = false
275
- elsif args[:ssh_key_data].present? && !args[:password].present?
276
- disable_password_auth = true
277
- else
278
- disable_password_auth = false
279
292
  end
280
293
 
281
294
  vm = create_managed_virtual_machine(
@@ -292,6 +305,7 @@ module ForemanAzureRm
292
305
  image_id: args[:image_id],
293
306
  os_disk_caching: args[:os_disk_caching],
294
307
  premium_os_disk: args[:premium_os_disk],
308
+ os_disk_size_gb: args[:os_disk_size_gb],
295
309
  data_disks: args[:volumes_attributes],
296
310
  custom_data: args[:user_data],
297
311
  script_command: args[:script_command],
@@ -10,7 +10,7 @@ module ForemanAzureRm
10
10
  delegate :name, to: :azure_vm, allow_nil: true
11
11
 
12
12
  def initialize(azure_vm: ComputeModels::VirtualMachine.new,
13
- sdk: sdk,
13
+ sdk: nil,
14
14
  resource_group: azure_vm.resource_group,
15
15
  nics: [],
16
16
  volumes: [],
@@ -179,6 +179,10 @@ module ForemanAzureRm
179
179
  @azure_vm.storage_profile.os_disk.managed_disk.storage_account_type
180
180
  end
181
181
 
182
+ def os_disk_size_gb
183
+ @azure_vm.storage_profile.os_disk.disk_size_gb
184
+ end
185
+
182
186
  def os_disk_caching
183
187
  @azure_vm.storage_profile.os_disk.caching
184
188
  end
@@ -1 +1 @@
1
- attributes :tenant, :app_ident, :sub_id, :secret_key, :region
1
+ attributes :azure_environment, :tenant, :app_ident, :sub_id, :region
@@ -1,6 +1,12 @@
1
- <%= text_f f, :app_ident, :label => _('Client ID'), :required => true %>
1
+ <%= selectable_f f, :cloud, [
2
+ ['Public / Standard', 'azure'],
3
+ ['US Government', 'azureusgovernment'],
4
+ ['China', 'azurechina'],
5
+ ['Germany', 'azuregermancloud'],
6
+ ], {}, { :label => _('Cloud'), :required => true } %>
7
+ <%= text_f f, :app_ident, :label => _('Client ID'), :required => true, :help_inline => link_to('Documentation', external_link_path(type: 'plugin_manual', name: 'foreman_azure', version: azure_doc_version), :kind => 'pficon', :rel => 'external', :class => 'btn btn-default btn-docs', :target => '_blank') %>
2
8
  <%= password_f f, :password, :label => _('Client Secret'), :keep_value => true, :required => true %>
3
9
  <%= text_f f, :user, :label => _('Subscription ID'), :required => true %>
4
10
  <%= text_f f, :uuid, :label => _('Tenant ID'), :required => true %>
5
11
 
6
- <%= regions_list(@compute_resource, f) %>
12
+ <%= regions_list(@compute_resource, f) %>
@@ -154,6 +154,16 @@
154
154
  'false'
155
155
  %>
156
156
 
157
+ <%= number_f f, :os_disk_size_gb,
158
+ {
159
+ :label => _('Override OS Disk Size (GB)'),
160
+ :label_help => _("Leave empty to use default image size"),
161
+ :required => false,
162
+ :min => 1,
163
+ :class => "col-md-2",
164
+ }
165
+ %>
166
+
157
167
  <%= selectable_f f, :os_disk_caching, %w(None ReadOnly ReadWrite),
158
168
  { :include_blank => _("Azure's Default") },
159
169
  {
@@ -1,46 +1,87 @@
1
1
  module ForemanAzureRm
2
2
  class AzureSdkAdapter
3
- def initialize(tenant, app_ident, secret_key, sub_id)
4
- @tenant = tenant
5
- @app_ident = app_ident
6
- @secret_key = secret_key
7
- @sub_id = sub_id
3
+ def initialize(tenant, app_ident, secret_key, sub_id, azure_environment)
4
+ @tenant = tenant
5
+ @app_ident = app_ident
6
+ @secret_key = secret_key
7
+ @sub_id = sub_id
8
+ @azure_environment = azure_environment
9
+ @ad_settings = ad_environment_settings(azure_environment)
10
+ @environment_settings = environment_settings(azure_environment)
8
11
  end
9
12
 
10
13
  def resource_client
11
- @resource_client ||= Resources::Client.new(azure_credentials)
14
+ #resource_manager_endpoint_url
15
+ @resource_client ||= Resources::Client.new(azure_credentials(@environment_settings.resource_manager_endpoint_url))
12
16
  end
13
17
 
14
18
  def compute_client
15
- @compute_client ||= Compute::Client.new(azure_credentials)
19
+ @compute_client ||= Compute::Client.new(azure_credentials(@environment_settings.resource_manager_endpoint_url))
16
20
  end
17
21
 
18
22
  def network_client
19
- @network_client ||= Network::Client.new(azure_credentials)
23
+ @network_client ||= Network::Client.new(azure_credentials(@environment_settings.resource_manager_endpoint_url))
20
24
  end
21
25
 
22
26
  def storage_client
23
- @storage_client ||= Storage::Client.new(azure_credentials)
27
+ @storage_client ||= Storage::Client.new(azure_credentials(@environment_settings.resource_manager_endpoint_url))
24
28
  end
25
29
 
26
30
  def subscription_client
27
- @subscription_client ||= Subscriptions::Client.new(azure_credentials)
31
+ @subscription_client ||= Subscriptions::Client.new(azure_credentials(@environment_settings.resource_manager_endpoint_url))
28
32
  end
29
33
 
30
- def azure_credentials
34
+ def azure_credentials(base_url)
31
35
  provider = MsRestAzure::ApplicationTokenProvider.new(
32
36
  @tenant,
33
37
  @app_ident,
34
- @secret_key)
38
+ @secret_key,
39
+ @ad_settings)
35
40
 
36
41
  credentials = MsRest::TokenCredentials.new(provider)
37
42
 
38
43
  {
39
44
  credentials: credentials,
40
- subscription_id: @sub_id
45
+ tenant_id: @tenant,
46
+ client_id: @app_ident,
47
+ client_secret: @secret_key,
48
+ subscription_id: @sub_id,
49
+ base_url: base_url
41
50
  }
42
51
  end
43
52
 
53
+ # https://github.com/Azure/azure-sdk-for-ruby/issues/850
54
+ # Retrieves a [MsRestAzure::ActiveDirectoryServiceSettings] object representing the settings for the given cloud.
55
+ # @param azure_environment [String] The Azure environment to retrieve settings for.
56
+ #
57
+ # @return [MsRestAzure::ActiveDirectoryServiceSettings] Settings to be used for subsequent requests
58
+ #
59
+ def ad_environment_settings(azure_environment)
60
+ case azure_environment.downcase
61
+ when 'azureusgovernment'
62
+ MsRestAzure::ActiveDirectoryServiceSettings.get_azure_us_government_settings
63
+ when 'azurechina'
64
+ MsRestAzure::ActiveDirectoryServiceSettings.get_azure_china_settings
65
+ when 'azuregermancloud'
66
+ MsRestAzure::ActiveDirectoryServiceSettings.get_azure_german_settings
67
+ when 'azure'
68
+ MsRestAzure::ActiveDirectoryServiceSettings.get_azure_settings
69
+ end
70
+ end
71
+
72
+ def environment_settings(azure_environment)
73
+ case azure_environment.downcase
74
+ when 'azureusgovernment'
75
+ MsRestAzure::AzureEnvironments::AzureUSGovernment
76
+ when 'azurechina'
77
+ MsRestAzure::AzureEnvironments::AzureChinaCloud
78
+ when 'azuregermancloud'
79
+ MsRestAzure::AzureEnvironments::AzureGermanCloud
80
+ when 'azure'
81
+ MsRestAzure::AzureEnvironments::AzureCloud
82
+ end
83
+ end
84
+
44
85
  def list_regions(subscription_id)
45
86
  subscription_client.subscriptions.list_locations(subscription_id)
46
87
  end
@@ -11,7 +11,7 @@ module ForemanAzureRm
11
11
  Foreman::Plugin.register :foreman_azure_rm do
12
12
  requires_foreman '>= 1.17'
13
13
  compute_resource ForemanAzureRm::AzureRm
14
- parameter_filter ComputeResource, :azure_vm, :tenant, :app_ident, :secret_key, :sub_id, :region
14
+ parameter_filter ComputeResource, :azure_vm, :tenant, :app_ident, :secret_key, :sub_id, :region, :cloud
15
15
  end
16
16
  end
17
17
 
@@ -1,3 +1,3 @@
1
1
  module ForemanAzureRm
2
- VERSION = '2.1.2'.freeze
2
+ VERSION = '2.2.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,101 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_azure_rm
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aditi Puntambekar
8
8
  - Shimon Shtein
9
9
  - Tyler Gregory
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-07-13 00:00:00.000000000 Z
13
+ date: 2021-05-04 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: deface
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - "<"
20
- - !ruby/object:Gem::Version
21
- version: '2.0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - "<"
27
- - !ruby/object:Gem::Version
28
- version: '2.0'
29
15
  - !ruby/object:Gem::Dependency
30
16
  name: azure_mgmt_resources
31
17
  requirement: !ruby/object:Gem::Requirement
32
18
  requirements:
33
19
  - - "~>"
34
20
  - !ruby/object:Gem::Version
35
- version: 0.17.6
21
+ version: 0.18.1
36
22
  type: :runtime
37
23
  prerelease: false
38
24
  version_requirements: !ruby/object:Gem::Requirement
39
25
  requirements:
40
26
  - - "~>"
41
27
  - !ruby/object:Gem::Version
42
- version: 0.17.6
28
+ version: 0.18.1
43
29
  - !ruby/object:Gem::Dependency
44
30
  name: azure_mgmt_network
45
31
  requirement: !ruby/object:Gem::Requirement
46
32
  requirements:
47
33
  - - "~>"
48
34
  - !ruby/object:Gem::Version
49
- version: 0.19.0
35
+ version: 0.26.1
50
36
  type: :runtime
51
37
  prerelease: false
52
38
  version_requirements: !ruby/object:Gem::Requirement
53
39
  requirements:
54
40
  - - "~>"
55
41
  - !ruby/object:Gem::Version
56
- version: 0.19.0
42
+ version: 0.26.1
57
43
  - !ruby/object:Gem::Dependency
58
44
  name: azure_mgmt_storage
59
45
  requirement: !ruby/object:Gem::Requirement
60
46
  requirements:
61
47
  - - "~>"
62
48
  - !ruby/object:Gem::Version
63
- version: 0.17.10
49
+ version: 0.23.0
64
50
  type: :runtime
65
51
  prerelease: false
66
52
  version_requirements: !ruby/object:Gem::Requirement
67
53
  requirements:
68
54
  - - "~>"
69
55
  - !ruby/object:Gem::Version
70
- version: 0.17.10
56
+ version: 0.23.0
71
57
  - !ruby/object:Gem::Dependency
72
58
  name: azure_mgmt_compute
73
59
  requirement: !ruby/object:Gem::Requirement
74
60
  requirements:
75
61
  - - "~>"
76
62
  - !ruby/object:Gem::Version
77
- version: 0.18.7
63
+ version: 0.22.0
78
64
  type: :runtime
79
65
  prerelease: false
80
66
  version_requirements: !ruby/object:Gem::Requirement
81
67
  requirements:
82
68
  - - "~>"
83
69
  - !ruby/object:Gem::Version
84
- version: 0.18.7
70
+ version: 0.22.0
85
71
  - !ruby/object:Gem::Dependency
86
72
  name: azure_mgmt_subscriptions
87
73
  requirement: !ruby/object:Gem::Requirement
88
74
  requirements:
89
75
  - - "~>"
90
76
  - !ruby/object:Gem::Version
91
- version: 0.18.1
77
+ version: 0.18.5
92
78
  type: :runtime
93
79
  prerelease: false
94
80
  version_requirements: !ruby/object:Gem::Requirement
95
81
  requirements:
96
82
  - - "~>"
97
83
  - !ruby/object:Gem::Version
98
- version: 0.18.1
84
+ version: 0.18.5
99
85
  - !ruby/object:Gem::Dependency
100
86
  name: rubocop
101
87
  requirement: !ruby/object:Gem::Requirement
@@ -215,7 +201,7 @@ homepage: https://github.com/theforeman/foreman_azure_rm
215
201
  licenses:
216
202
  - GPL-3.0
217
203
  metadata: {}
218
- post_install_message:
204
+ post_install_message:
219
205
  rdoc_options: []
220
206
  require_paths:
221
207
  - lib
@@ -230,9 +216,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
216
  - !ruby/object:Gem::Version
231
217
  version: '0'
232
218
  requirements: []
233
- rubyforge_project:
234
- rubygems_version: 2.7.6.2
235
- signing_key:
219
+ rubygems_version: 3.1.6
220
+ signing_key:
236
221
  specification_version: 4
237
222
  summary: Azure Resource Manager as a compute resource for The Foreman
238
223
  test_files: []