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 +4 -4
- data/README.md +1 -1
- data/app/controllers/foreman_azure_rm/concerns/compute_resources_controller_extensions.rb +1 -0
- data/app/helpers/azure_compute_resource_helper.rb +3 -0
- data/app/models/concerns/foreman_azure_rm/vm_extensions/managed_vm.rb +33 -18
- data/app/models/foreman_azure_rm/azure_rm.rb +32 -18
- data/app/models/foreman_azure_rm/azure_rm_compute.rb +5 -1
- data/app/views/api/v2/compute_resources/azurerm.json.rabl +1 -1
- data/app/views/compute_resources/form/_azurerm.html.erb +8 -2
- data/app/views/compute_resources_vms/form/azurerm/_base.html.erb +10 -0
- data/lib/foreman_azure_rm/azure_sdk_adapter.rb +54 -13
- data/lib/foreman_azure_rm/engine.rb +1 -1
- data/lib/foreman_azure_rm/version.rb +1 -1
- metadata +16 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66582a70ada6bb3f6b1fc712b3e608b51011c30a1984fec8eedd4668c73e4354
|
4
|
+
data.tar.gz: 1e6bd7f047048ac2ce3fe11bacd0d58d0789283fb4a282f45afbb56acf32d6bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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]
|
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
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
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
|
-
|
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
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
#
|
269
|
-
|
270
|
-
|
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
|
-
|
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:
|
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, :
|
1
|
+
attributes :azure_environment, :tenant, :app_ident, :sub_id, :region
|
@@ -1,6 +1,12 @@
|
|
1
|
-
<%=
|
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
|
5
|
-
@app_ident
|
6
|
-
@secret_key
|
7
|
-
@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
|
-
|
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
|
-
|
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
|
|
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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|
-
|
234
|
-
|
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: []
|