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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56702d3d39f9bc9753e04e4681b4607d073cc913c1625835dda252a8a575cb6a
4
- data.tar.gz: 59999cc6458945958f13933a0a9c1b08b63d8ddad0cb6ece337b86e367948190
3
+ metadata.gz: 416621db4c525470113b126a84a30a5701999e6bc442f6e18beb0bdd6b3379a3
4
+ data.tar.gz: 6ec1793bc3394b0a19f92f5ad98a33c005e30fce89bd549ebde954529ab7d895
5
5
  SHA512:
6
- metadata.gz: beb3b60d5c7790ff3063c67634d749fa5ca13148bde4197e40f0d5014ec3bdab94956688b5a6de21fa13ee40e0edf76bccd7ce2fa6e1ebcd6be7fafb9f79057a
7
- data.tar.gz: c4e0e9857dfe71bc31d09275c012ed263dde09e25d98ea5d32c75a8be812f8a325a0d5f2e9880f6a84109c9f8a6f2ff3ee5db0e1079b969c27102cd84fc2d54e
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
- ```bash
16
+ ```console
16
17
  $ gem 'foreman_azure_rm'
17
18
  ```
18
19
 
19
20
  Or simply:
20
21
 
21
- ```bash
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
- $ gem 'foreman_azure_rm', :path => 'path to foreman_azure_rm directory'
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/4ClZhTP.png)
80
+ ![](https://i.imgur.com/vsamP4G.png)
75
81
 
76
82
 
77
- ![](https://i.imgur.com/eFHucdb.png)
83
+ ![](https://i.imgur.com/Ag9tH55.png)
78
84
 
79
85
 
80
- ![](https://i.imgur.com/YjlRQIE.png)
86
+ ![](https://i.imgur.com/fNjlFci.png)
81
87
 
82
88
 
83
89
  ## Planned Features
84
- * Multiple NICs support
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, :secret_key, :region
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
- <table class="table table-bordered" data-table="inline">
2
- <thead>
3
- <tr>
4
- <th><%= _('Name') %></th>
5
- <th><%= _('Size') %></th>
6
- <th><%= _('Resource Group') %></th>
7
- <th><%= _('Region') %></th>
8
- <th><%= _('State') %></th>
9
- <th><%= _('Actions') %></th>
10
- </tr>
11
- </thead>
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
- </table>
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 the uuid with 'custom://' or 'gallery://'. For public image, 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?") %>
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 = 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
 
@@ -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
@@ -1,3 +1,3 @@
1
1
  module ForemanAzureRm
2
- VERSION = '2.1.3'.freeze
2
+ VERSION = '2.2.0'.freeze
3
3
  end
@@ -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.0.8\n"
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 ""
@@ -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.0.8\n"
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"
@@ -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.0.8\n"
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 ""
@@ -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.0.8\n"
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: Bruno Emanuel Silva <bemanuel.pe@gmail.com>, 2020\n"
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 ""
@@ -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.0.8\n"
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: Vladimir Pavlov <v.pavlov@i-teco.ru>, 2020\n"
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.1.3
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-10 00:00:00.000000000 Z
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.6
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.6
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.19.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.19.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.17.10
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.17.10
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.18.7
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.18.7
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.1
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.1
98
+ version: 0.18.4
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: rubocop
101
101
  requirement: !ruby/object:Gem::Requirement