foreman_azure_rm 2.1.3 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -15
- data/app/controllers/foreman_azure_rm/concerns/compute_resources_controller_extensions.rb +1 -0
- data/app/models/concerns/foreman_azure_rm/vm_extensions/managed_vm.rb +16 -0
- data/app/models/foreman_azure_rm/azure_rm.rb +11 -2
- data/app/views/api/v2/compute_resources/azurerm.json.rabl +1 -1
- data/app/views/compute_resources/form/_azurerm.html.erb +6 -0
- data/app/views/compute_resources_vms/index/_azurerm.html.erb +12 -12
- data/app/views/images/form/_azurerm.html.erb +2 -2
- data/lib/foreman_azure_rm/azure_sdk_adapter.rb +54 -13
- data/lib/foreman_azure_rm/engine.rb +2 -2
- data/lib/foreman_azure_rm/version.rb +1 -1
- data/locale/ko/LC_MESSAGES/foreman_azure_rm.mo +0 -0
- data/locale/ko/foreman_azure_rm.po +7 -6
- data/locale/nl_NL/LC_MESSAGES/foreman_azure_rm.mo +0 -0
- data/locale/nl_NL/foreman_azure_rm.po +2 -1
- data/locale/pl/LC_MESSAGES/foreman_azure_rm.mo +0 -0
- data/locale/pl/foreman_azure_rm.po +3 -2
- data/locale/pt_BR/LC_MESSAGES/foreman_azure_rm.mo +0 -0
- data/locale/pt_BR/foreman_azure_rm.po +11 -9
- data/locale/ru/LC_MESSAGES/foreman_azure_rm.mo +0 -0
- data/locale/ru/foreman_azure_rm.po +11 -9
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 416621db4c525470113b126a84a30a5701999e6bc442f6e18beb0bdd6b3379a3
|
4
|
+
data.tar.gz: 6ec1793bc3394b0a19f92f5ad98a33c005e30fce89bd549ebde954529ab7d895
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8a953836164727d9bba985be5d77b8211c73bc2cc20f45c7de563d49fb06cd32652695e6b4a0b42c19e0dcd5a5d86b51b347562b460f90eb33342f518044fd7
|
7
|
+
data.tar.gz: 79cbe567f0cb3556b046f208c6f7218876c4ab10fb8b74d4ae6e2d9df8a9f601b8a895cff46e236630c306f1f977a00c5976517af99c39744b6060a72b0cfda7
|
data/README.md
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
```foreman_azure_rm``` adds [Microsoft Azure Resource Manager](http://azure.com/) as a compute resource for The Foreman
|
5
5
|
|
6
6
|
* Website: [TheForeman.org](http://theforeman.org)
|
7
|
+
* ForemanAzureRm: [Plugin manual](https://theforeman.org/plugins/foreman_azure)
|
7
8
|
* Support: [Foreman support](http://theforeman.org/support.html)
|
8
9
|
|
9
10
|
## Installation
|
@@ -12,25 +13,25 @@
|
|
12
13
|
|
13
14
|
Add the following to bundler.d/Gemfile.local.rb in your Foreman installation directory (/usr/share/foreman by default)
|
14
15
|
|
15
|
-
```
|
16
|
+
```console
|
16
17
|
$ gem 'foreman_azure_rm'
|
17
18
|
```
|
18
19
|
|
19
20
|
Or simply:
|
20
21
|
|
21
|
-
```
|
22
|
+
```console
|
22
23
|
$ echo "gem 'foreman_azure_rm'" > /usr/share/foreman/bundler.d/Gemfile.local.rb
|
23
24
|
```
|
24
25
|
|
25
26
|
Then run `bundle install` from the same directory
|
26
27
|
|
27
28
|
### Package
|
28
|
-
```
|
29
|
+
```console
|
29
30
|
# yum install tfm-rubygem-foreman_azure_rm
|
30
31
|
```
|
31
32
|
|
32
33
|
### Foreman Installer
|
33
|
-
```
|
34
|
+
```console
|
34
35
|
# foreman-installer --enable-foreman-plugin-azure
|
35
36
|
```
|
36
37
|
|
@@ -44,7 +45,7 @@ git clone https://github.com/theforeman/foreman_azure_rm.git
|
|
44
45
|
Add the following to bundler.d/Gemfile.local.rb in your Foreman development directory
|
45
46
|
|
46
47
|
```ruby
|
47
|
-
|
48
|
+
gem 'foreman_azure_rm', :path => 'path to foreman_azure_rm directory'
|
48
49
|
```
|
49
50
|
|
50
51
|
Then run `bundle install` from the same directory
|
@@ -54,14 +55,19 @@ Then run `bundle install` from the same directory
|
|
54
55
|
* VM creation
|
55
56
|
* Provisions using Finish and User data templates from Foreman
|
56
57
|
* Supports cloud-config provisioning
|
57
|
-
* Currently supports single NIC
|
58
|
-
* Currently supports single default OS Disk
|
59
58
|
* Currently supports only provisioning of Linux platforms
|
60
59
|
* Provisioning using [Public Images](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cli-ps-findimage)
|
60
|
+
* Provision using custom images
|
61
|
+
* Provision using shared image galleries
|
62
|
+
* Provision using RHEL byos images
|
63
|
+
* Multiple NICs support
|
64
|
+
* Support to add multiple data disks/volumes (standard or premium)
|
65
|
+
* VM Extension with Custom Script and File URIs support
|
61
66
|
* Static or dynamic addresses on a per NIC basis
|
62
67
|
* Limited extension support
|
63
68
|
* Microsoft's custom script extension
|
64
69
|
* Puppet Lab's Puppet agent extension for Windows
|
70
|
+
* Azure Gov Cloud Support
|
65
71
|
|
66
72
|
## Configuration
|
67
73
|
Go to **Infrastructure > Compute Resources** and click on "New Compute Resource".
|
@@ -71,21 +77,17 @@ Choose the **Azure Resource Manager provider**, and fill in all the fields. You
|
|
71
77
|
That's it. You're now ready to create and manage Azure resources in your new Azure Resource Manager compute resource. You should see something like this in the Compute Resource page:
|
72
78
|
|
73
79
|
|
74
|
-
![](https://i.imgur.com/
|
80
|
+
![](https://i.imgur.com/vsamP4G.png)
|
75
81
|
|
76
82
|
|
77
|
-
![](https://i.imgur.com/
|
83
|
+
![](https://i.imgur.com/Ag9tH55.png)
|
78
84
|
|
79
85
|
|
80
|
-
![](https://i.imgur.com/
|
86
|
+
![](https://i.imgur.com/fNjlFci.png)
|
81
87
|
|
82
88
|
|
83
89
|
## Planned Features
|
84
|
-
*
|
85
|
-
* Support to add multiple data disks (standard or premium)
|
86
|
-
* Provision using custom images
|
87
|
-
* Provision using shared image galleries
|
88
|
-
* Improved extension support
|
90
|
+
* Support for http_proxy
|
89
91
|
|
90
92
|
## Known Limitations
|
91
93
|
* Please note that currently username is expected to be the same on both Virtual Machine tab for Host creation and during Image creation for Compute Resource. The password field for Image creation is optional.
|
@@ -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
|
|
@@ -59,6 +59,21 @@ module ForemanAzureRm
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
+
def marketplace_image_plan(image)
|
63
|
+
image_type, image_id = image.split('://')
|
64
|
+
return nil unless image_type == 'marketplace' && image_id.include?('byos')
|
65
|
+
urn = image_id.split(':')
|
66
|
+
publisher = urn[0]
|
67
|
+
offer = urn[1]
|
68
|
+
sku = urn[2]
|
69
|
+
version = urn[3]
|
70
|
+
image_plan = ComputeModels::PurchasePlan.new
|
71
|
+
image_plan.publisher = publisher.downcase
|
72
|
+
image_plan.name = sku.downcase
|
73
|
+
image_plan.product = offer.downcase
|
74
|
+
image_plan
|
75
|
+
end
|
76
|
+
|
62
77
|
def marketplace_image_reference(publisher, offer, sku, version)
|
63
78
|
image_reference = ComputeModels::ImageReference.new
|
64
79
|
image_reference.publisher = publisher
|
@@ -209,6 +224,7 @@ module ForemanAzureRm
|
|
209
224
|
|
210
225
|
def create_managed_virtual_machine(vm_hash)
|
211
226
|
vm_params = initialize_vm(vm_hash)
|
227
|
+
vm_params.plan = marketplace_image_plan(vm_hash[:image_id])
|
212
228
|
vm_params.network_profile = define_network_profile(vm_hash[:network_interface_card_ids])
|
213
229
|
vm_params.storage_profile.image_reference = define_image(vm_hash[:resource_group], vm_hash[:image_id])
|
214
230
|
vm_params.storage_profile.data_disks = define_data_disks(vm_hash[:name], vm_hash[:data_disks])
|
@@ -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
|
@@ -1 +1 @@
|
|
1
|
-
attributes :tenant, :app_ident, :sub_id, :
|
1
|
+
attributes :azure_environment, :tenant, :app_ident, :sub_id, :region
|
@@ -1,3 +1,9 @@
|
|
1
|
+
<%= selectable_f f, :cloud, [
|
2
|
+
['Public / Standard', 'azure'],
|
3
|
+
['US Government', 'azureusgovernment'],
|
4
|
+
['China', 'azurechina'],
|
5
|
+
['Germany', 'azuregermancloud'],
|
6
|
+
], {}, { :label => _('Cloud'), :required => true } %>
|
1
7
|
<%= text_f f, :app_ident, :label => _('Client ID'), :required => true, :help_inline => link_to(icon_text('help', _('Documentation'), :kind => 'pficon'),
|
2
8
|
azure_doc_url, :rel => 'external', :class => 'btn btn-default btn-docs', :target => '_blank') %>
|
3
9
|
<%= password_f f, :password, :label => _('Client Secret'), :keep_value => true, :required => true %>
|
@@ -1,14 +1,14 @@
|
|
1
|
-
<
|
2
|
-
<
|
3
|
-
<
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
<thead>
|
2
|
+
<tr>
|
3
|
+
<th><%= _('Name') %></th>
|
4
|
+
<th><%= _('Size') %></th>
|
5
|
+
<th><%= _('Resource Group') %></th>
|
6
|
+
<th><%= _('Region') %></th>
|
7
|
+
<th><%= _('State') %></th>
|
8
|
+
<th><%= _('Actions') %></th>
|
9
|
+
</tr>
|
10
|
+
</thead>
|
11
|
+
<tbody>
|
12
12
|
<% @vms.each do |vm| %>
|
13
13
|
<tr>
|
14
14
|
<td><%= link_to_if_authorized vm.name, hash_for_compute_resource_vm_path(:compute_resource_id => @compute_resource, :id => vm.identity).merge(:auth_object => @compute_resource) %></td>
|
@@ -27,4 +27,4 @@
|
|
27
27
|
</td>
|
28
28
|
</tr>
|
29
29
|
<% end %>
|
30
|
-
</
|
30
|
+
</tbody>
|
@@ -2,5 +2,5 @@
|
|
2
2
|
:help_inline => _("The user that will be used to SSH into the VM for completion")
|
3
3
|
%>
|
4
4
|
<%= password_f f, :password, :keep_value => true, :help_inline => _("Password to authenticate with - used for SSH finish step.") %>
|
5
|
-
<%= image_field(f, :label => _("Azure Image Name"), :help_inline => _("For custom or shared gallery image prefix
|
6
|
-
<%= checkbox_f f, :user_data, :help_inline => _("Does this image support user data input?") %>
|
5
|
+
<%= image_field(f, :label => _("Azure Image Name"), :help_inline => _("For custom or shared gallery image, use prefix 'custom://' or 'gallery://'. For public and RHEL-byos images, prefix the uuid with 'marketplace://'. (e.g. 'marketplace://OpenLogic:CentOS:7.5:latest' or 'custom://image-name')")) %>
|
6
|
+
<%= checkbox_f f, :user_data, :help_inline => _("Does this image support user data input?") %>
|
@@ -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
|
|
@@ -42,7 +42,7 @@ module ForemanAzureRm
|
|
42
42
|
require 'azure_mgmt_subscriptions'
|
43
43
|
|
44
44
|
# Add format validation for azure images
|
45
|
-
::Image.validates :uuid, format: { with: /\A((marketplace|custom|gallery):\/\/)[^:]+(:[^:]+:[^:]+:[^:]+)?\z/,
|
45
|
+
::Image.validates :uuid, uniqueness: { scope: :compute_resource_id, case_sensitive: false }, format: { with: /\A((marketplace|custom|gallery):\/\/)[^:]+(:[^:]+:[^:]+:[^:]+)?\z/,
|
46
46
|
message: "Incorrect UUID format" }, if: -> (image){ image.compute_resource.is_a? ForemanAzureRm::AzureRm }
|
47
47
|
|
48
48
|
# Use excon as default so that HTTP Proxy settings of foreman works
|
Binary file
|
@@ -7,9 +7,10 @@
|
|
7
7
|
# 0868a4d1af5275b3f70b0a6dac4c99a4, 2020
|
8
8
|
# Bryan Kearney <bryan.kearney@gmail.com>, 2020
|
9
9
|
#
|
10
|
+
#, fuzzy
|
10
11
|
msgid ""
|
11
12
|
msgstr ""
|
12
|
-
"Project-Id-Version: foreman_azure_rm 2.
|
13
|
+
"Project-Id-Version: foreman_azure_rm 2.1.1\n"
|
13
14
|
"Report-Msgid-Bugs-To: \n"
|
14
15
|
"PO-Revision-Date: 2020-04-21 13:58+0000\n"
|
15
16
|
"Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>, 2020\n"
|
@@ -24,7 +25,7 @@ msgid "%{vm_size} VM Size"
|
|
24
25
|
msgstr ""
|
25
26
|
|
26
27
|
msgid "Action with sub plans"
|
27
|
-
msgstr ""
|
28
|
+
msgstr "하위 계획이 있는 작업"
|
28
29
|
|
29
30
|
msgid "Actions"
|
30
31
|
msgstr "동작 "
|
@@ -78,13 +79,13 @@ msgid "Image"
|
|
78
79
|
msgstr "이미지 "
|
79
80
|
|
80
81
|
msgid "Import Puppet classes"
|
81
|
-
msgstr ""
|
82
|
+
msgstr "Puppet 클래스 가져오기"
|
82
83
|
|
83
84
|
msgid "Import facts"
|
84
|
-
msgstr ""
|
85
|
+
msgstr "팩트 불러오기"
|
85
86
|
|
86
87
|
msgid "Load Regions"
|
87
|
-
msgstr ""
|
88
|
+
msgstr "지역 로드 "
|
88
89
|
|
89
90
|
msgid "Marketplace Image URN"
|
90
91
|
msgstr ""
|
@@ -132,7 +133,7 @@ msgid "Reload Images, Sizes, vNets"
|
|
132
133
|
msgstr ""
|
133
134
|
|
134
135
|
msgid "Remote action:"
|
135
|
-
msgstr ""
|
136
|
+
msgstr "원격 작업:"
|
136
137
|
|
137
138
|
msgid "Resource Group"
|
138
139
|
msgstr ""
|
Binary file
|
@@ -7,9 +7,10 @@
|
|
7
7
|
# Maxim Burgerhout <maxim@wzzrd.com>, 2020
|
8
8
|
# EmielK <emiel@kremers.us>, 2020
|
9
9
|
#
|
10
|
+
#, fuzzy
|
10
11
|
msgid ""
|
11
12
|
msgstr ""
|
12
|
-
"Project-Id-Version: foreman_azure_rm 2.
|
13
|
+
"Project-Id-Version: foreman_azure_rm 2.1.1\n"
|
13
14
|
"Report-Msgid-Bugs-To: \n"
|
14
15
|
"PO-Revision-Date: 2020-04-21 13:58+0000\n"
|
15
16
|
"Last-Translator: EmielK <emiel@kremers.us>, 2020\n"
|
Binary file
|
@@ -7,9 +7,10 @@
|
|
7
7
|
# sziolkow <sziolkow@gmail.com>, 2020
|
8
8
|
# Michał Foryt <michal.foryt@gmail.com>, 2020
|
9
9
|
#
|
10
|
+
#, fuzzy
|
10
11
|
msgid ""
|
11
12
|
msgstr ""
|
12
|
-
"Project-Id-Version: foreman_azure_rm 2.
|
13
|
+
"Project-Id-Version: foreman_azure_rm 2.1.1\n"
|
13
14
|
"Report-Msgid-Bugs-To: \n"
|
14
15
|
"PO-Revision-Date: 2020-04-21 13:58+0000\n"
|
15
16
|
"Last-Translator: Michał Foryt <michal.foryt@gmail.com>, 2020\n"
|
@@ -86,7 +87,7 @@ msgid "Import facts"
|
|
86
87
|
msgstr ""
|
87
88
|
|
88
89
|
msgid "Load Regions"
|
89
|
-
msgstr ""
|
90
|
+
msgstr "Załaduj regiony"
|
90
91
|
|
91
92
|
msgid "Marketplace Image URN"
|
92
93
|
msgstr ""
|
Binary file
|
@@ -4,18 +4,20 @@
|
|
4
4
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5
5
|
#
|
6
6
|
# Translators:
|
7
|
-
# Flamarion Jorge <jorge.flamarion@gmail.com>, 2020
|
8
7
|
# 0868a4d1af5275b3f70b0a6dac4c99a4, 2020
|
8
|
+
# Bruno Emanuel Silva <bemanuel.pe@gmail.com>, 2020
|
9
|
+
# Flamarion Jorge <jorge.flamarion@gmail.com>, 2020
|
9
10
|
# Bryan Kearney <bryan.kearney@gmail.com>, 2020
|
10
11
|
# Luiz Henrique Vasconcelos <luizvasconceloss@yahoo.com.br>, 2020
|
11
|
-
# Bruno Emanuel Silva <bemanuel.pe@gmail.com>, 2020
|
12
12
|
#
|
13
|
+
#, fuzzy
|
13
14
|
msgid ""
|
14
15
|
msgstr ""
|
15
|
-
"Project-Id-Version: foreman_azure_rm 2.
|
16
|
+
"Project-Id-Version: foreman_azure_rm 2.1.1\n"
|
16
17
|
"Report-Msgid-Bugs-To: \n"
|
17
18
|
"PO-Revision-Date: 2020-04-21 13:58+0000\n"
|
18
|
-
"Last-Translator:
|
19
|
+
"Last-Translator: Luiz Henrique Vasconcelos <luizvasconceloss@yahoo.com.br>, 20"
|
20
|
+
"20\n"
|
19
21
|
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/foreman/teams/11"
|
20
22
|
"4/pt_BR/)\n"
|
21
23
|
"MIME-Version: 1.0\n"
|
@@ -28,7 +30,7 @@ msgid "%{vm_size} VM Size"
|
|
28
30
|
msgstr ""
|
29
31
|
|
30
32
|
msgid "Action with sub plans"
|
31
|
-
msgstr ""
|
33
|
+
msgstr "Ação com subplanos"
|
32
34
|
|
33
35
|
msgid "Actions"
|
34
36
|
msgstr "Ações"
|
@@ -82,13 +84,13 @@ msgid "Image"
|
|
82
84
|
msgstr "Imagem"
|
83
85
|
|
84
86
|
msgid "Import Puppet classes"
|
85
|
-
msgstr ""
|
87
|
+
msgstr "Importar classes de Puppet"
|
86
88
|
|
87
89
|
msgid "Import facts"
|
88
|
-
msgstr ""
|
90
|
+
msgstr "Importar fatos"
|
89
91
|
|
90
92
|
msgid "Load Regions"
|
91
|
-
msgstr ""
|
93
|
+
msgstr "Carregar regiões"
|
92
94
|
|
93
95
|
msgid "Marketplace Image URN"
|
94
96
|
msgstr ""
|
@@ -136,7 +138,7 @@ msgid "Reload Images, Sizes, vNets"
|
|
136
138
|
msgstr ""
|
137
139
|
|
138
140
|
msgid "Remote action:"
|
139
|
-
msgstr ""
|
141
|
+
msgstr "Ação remota:"
|
140
142
|
|
141
143
|
msgid "Resource Group"
|
142
144
|
msgstr ""
|
Binary file
|
@@ -4,17 +4,19 @@
|
|
4
4
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5
5
|
#
|
6
6
|
# Translators:
|
7
|
-
# 0868a4d1af5275b3f70b0a6dac4c99a4, 2020
|
8
7
|
# Andrei Burd <burdandrei@gmail.com>, 2020
|
9
|
-
# Bryan Kearney <bryan.kearney@gmail.com>, 2020
|
10
8
|
# Vladimir Pavlov <v.pavlov@i-teco.ru>, 2020
|
9
|
+
# Yulia <yulia.poyarkova@redhat.com>, 2020
|
10
|
+
# 0868a4d1af5275b3f70b0a6dac4c99a4, 2020
|
11
|
+
# Bryan Kearney <bryan.kearney@gmail.com>, 2020
|
11
12
|
#
|
13
|
+
#, fuzzy
|
12
14
|
msgid ""
|
13
15
|
msgstr ""
|
14
|
-
"Project-Id-Version: foreman_azure_rm 2.
|
16
|
+
"Project-Id-Version: foreman_azure_rm 2.1.1\n"
|
15
17
|
"Report-Msgid-Bugs-To: \n"
|
16
18
|
"PO-Revision-Date: 2020-04-21 13:58+0000\n"
|
17
|
-
"Last-Translator:
|
19
|
+
"Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>, 2020\n"
|
18
20
|
"Language-Team: Russian (https://www.transifex.com/foreman/teams/114/ru/)\n"
|
19
21
|
"MIME-Version: 1.0\n"
|
20
22
|
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -28,7 +30,7 @@ msgid "%{vm_size} VM Size"
|
|
28
30
|
msgstr ""
|
29
31
|
|
30
32
|
msgid "Action with sub plans"
|
31
|
-
msgstr ""
|
33
|
+
msgstr "Действия с подпланами"
|
32
34
|
|
33
35
|
msgid "Actions"
|
34
36
|
msgstr "Действия"
|
@@ -82,13 +84,13 @@ msgid "Image"
|
|
82
84
|
msgstr "Образ"
|
83
85
|
|
84
86
|
msgid "Import Puppet classes"
|
85
|
-
msgstr ""
|
87
|
+
msgstr "Импорт классов Puppet"
|
86
88
|
|
87
89
|
msgid "Import facts"
|
88
|
-
msgstr ""
|
90
|
+
msgstr "Импорт фактов"
|
89
91
|
|
90
92
|
msgid "Load Regions"
|
91
|
-
msgstr ""
|
93
|
+
msgstr "Загрузить регионы"
|
92
94
|
|
93
95
|
msgid "Marketplace Image URN"
|
94
96
|
msgstr ""
|
@@ -136,7 +138,7 @@ msgid "Reload Images, Sizes, vNets"
|
|
136
138
|
msgstr ""
|
137
139
|
|
138
140
|
msgid "Remote action:"
|
139
|
-
msgstr ""
|
141
|
+
msgstr "Удаленное действие:"
|
140
142
|
|
141
143
|
msgid "Resource Group"
|
142
144
|
msgstr ""
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aditi Puntambekar
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-03-
|
13
|
+
date: 2021-03-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: deface
|
@@ -32,70 +32,70 @@ dependencies:
|
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.17.
|
35
|
+
version: 0.17.9
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.17.
|
42
|
+
version: 0.17.9
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: azure_mgmt_network
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
49
|
+
version: 0.23.4
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.
|
56
|
+
version: 0.23.4
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: azure_mgmt_storage
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 0.
|
63
|
+
version: 0.21.1
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.
|
70
|
+
version: 0.21.1
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: azure_mgmt_compute
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.
|
77
|
+
version: 0.19.3
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0.
|
84
|
+
version: 0.19.3
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: azure_mgmt_subscriptions
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 0.18.
|
91
|
+
version: 0.18.4
|
92
92
|
type: :runtime
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - "~>"
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: 0.18.
|
98
|
+
version: 0.18.4
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: rubocop
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|