foreman_ansible 2.2.9 → 2.2.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/ansible_roles_controller.rb +23 -3
  3. data/app/controllers/foreman_ansible/api/v2/hostgroups_controller_extensions.rb +17 -4
  4. data/app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb +26 -5
  5. data/app/controllers/foreman_ansible/concerns/job_invocation_helper.rb +7 -4
  6. data/app/services/foreman_ansible/api_roles_importer.rb +10 -1
  7. data/app/services/foreman_ansible/roles_importer.rb +5 -0
  8. data/app/services/foreman_ansible/structured_fact_importer.rb +4 -0
  9. data/app/views/api/v2/hostgroups/ansible_roles.json.rabl +5 -0
  10. data/app/views/api/v2/hosts/ansible_roles.json.rabl +5 -0
  11. data/app/views/foreman_ansible/job_templates/module_action_-_ansible_default.erb +52 -0
  12. data/app/views/foreman_ansible/job_templates/power_action_-_ansible_default.erb +1 -0
  13. data/config/routes.rb +30 -20
  14. data/lib/foreman_ansible/register.rb +7 -1
  15. data/lib/foreman_ansible/version.rb +1 -1
  16. data/locale/action_names.rb +5 -0
  17. data/locale/de/LC_MESSAGES/foreman_ansible.mo +0 -0
  18. data/locale/de/foreman_ansible.edit.po +444 -0
  19. data/locale/de/foreman_ansible.po +338 -0
  20. data/locale/de/foreman_ansible.po.time_stamp +0 -0
  21. data/locale/en/LC_MESSAGES/foreman_ansible.mo +0 -0
  22. data/locale/en/foreman_ansible.edit.po +442 -0
  23. data/locale/en/foreman_ansible.po +62 -5
  24. data/locale/en/foreman_ansible.po.time_stamp +0 -0
  25. data/locale/es/LC_MESSAGES/foreman_ansible.mo +0 -0
  26. data/locale/es/foreman_ansible.edit.po +444 -0
  27. data/locale/es/foreman_ansible.po +338 -0
  28. data/locale/es/foreman_ansible.po.time_stamp +0 -0
  29. data/locale/foreman_ansible.pot +114 -31
  30. data/locale/fr/LC_MESSAGES/foreman_ansible.mo +0 -0
  31. data/locale/fr/foreman_ansible.edit.po +444 -0
  32. data/locale/fr/foreman_ansible.po +338 -0
  33. data/locale/fr/foreman_ansible.po.time_stamp +0 -0
  34. data/locale/it/LC_MESSAGES/foreman_ansible.mo +0 -0
  35. data/locale/it/foreman_ansible.edit.po +444 -0
  36. data/locale/it/foreman_ansible.po +338 -0
  37. data/locale/it/foreman_ansible.po.time_stamp +0 -0
  38. data/locale/ja/LC_MESSAGES/foreman_ansible.mo +0 -0
  39. data/locale/ja/foreman_ansible.edit.po +444 -0
  40. data/locale/ja/foreman_ansible.po +338 -0
  41. data/locale/ja/foreman_ansible.po.time_stamp +0 -0
  42. data/locale/ko/LC_MESSAGES/foreman_ansible.mo +0 -0
  43. data/locale/ko/foreman_ansible.edit.po +444 -0
  44. data/locale/ko/foreman_ansible.po +338 -0
  45. data/locale/ko/foreman_ansible.po.time_stamp +0 -0
  46. data/locale/pt_BR/LC_MESSAGES/foreman_ansible.mo +0 -0
  47. data/locale/pt_BR/foreman_ansible.edit.po +444 -0
  48. data/locale/pt_BR/foreman_ansible.po +338 -0
  49. data/locale/pt_BR/foreman_ansible.po.time_stamp +0 -0
  50. data/locale/ru/LC_MESSAGES/foreman_ansible.mo +0 -0
  51. data/locale/ru/foreman_ansible.edit.po +445 -0
  52. data/locale/ru/foreman_ansible.po +339 -0
  53. data/locale/ru/foreman_ansible.po.time_stamp +0 -0
  54. data/locale/zh_CN/LC_MESSAGES/foreman_ansible.mo +0 -0
  55. data/locale/zh_CN/foreman_ansible.edit.po +444 -0
  56. data/locale/zh_CN/foreman_ansible.po +338 -0
  57. data/locale/zh_CN/foreman_ansible.po.time_stamp +0 -0
  58. data/locale/zh_TW/LC_MESSAGES/foreman_ansible.mo +0 -0
  59. data/locale/zh_TW/foreman_ansible.edit.po +444 -0
  60. data/locale/zh_TW/foreman_ansible.po +338 -0
  61. data/locale/zh_TW/foreman_ansible.po.time_stamp +0 -0
  62. data/test/functional/api/v2/ansible_roles_controller_test.rb +7 -0
  63. data/test/functional/api/v2/hostgroups_controller_test.rb +9 -0
  64. data/test/functional/api/v2/hosts_controller_test.rb +9 -1
  65. metadata +68 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6907d2240ace96c12a0577d79529ffb2f29faa23
4
- data.tar.gz: e7112ea75dc14ccf063ad0541b8a029025868d08
3
+ metadata.gz: 7ddb2ddf543a46fd2c4faa52a8aeb82b57e2746c
4
+ data.tar.gz: 4bc819baf6df4842369a2dc261f56c4abfd5aff3
5
5
  SHA512:
6
- metadata.gz: 6dc319a927f8fc368090620ad12ce65424742c2ca91f93b58d6a7df4e9cd832d032404ebb97a0d94ca96f7b475d21e406ed18efa7280229978bf63e214b24602
7
- data.tar.gz: d47d5cd9481bcfb982d9e6de04d159bdcfaaa58b6fa3e73c620669785a3a395fd482c1f6d6419dce8f944aaf0feaf120201cabeb20fed754123a17b7976947e6
6
+ metadata.gz: e672157d3b14ff7799ed020f6012d1aebea3b20f4268e84f2b98649a2b0012524a7ae415d73261d7a1167e20e7bb95bac9e81c0188558778a4c7bb5bc6492096
7
+ data.tar.gz: b39df59c5b139be1c0cb7f854f360149946e7d857a0ff22e566468fd528d13425edea056211643981899fbe6227a69457a3ff46bba029c88deda2d367ba0f074
@@ -10,8 +10,8 @@ module Api
10
10
  end
11
11
 
12
12
  before_action :find_resource, :only => [:show, :destroy]
13
- before_action :find_proxy, :only => [:import, :obsolete]
14
- before_action :create_importer, :only => [:import, :obsolete]
13
+ before_action :find_proxy, :only => [:import, :obsolete, :fetch]
14
+ before_action :create_importer, :only => [:import, :obsolete, :fetch]
15
15
 
16
16
  api :GET, '/ansible_roles/:id', N_('Show role')
17
17
  param :id, :identifier, :required => true
@@ -31,8 +31,9 @@ module Api
31
31
 
32
32
  api :PUT, '/ansible_roles/import', N_('Import Ansible roles')
33
33
  param :proxy_id, :identifier, N_('Smart Proxy to import from')
34
+ param :role_names, Array, N_('Ansible role names to import')
34
35
  def import
35
- @imported = @importer.import!
36
+ @imported = @importer.import!(role_names)
36
37
  end
37
38
 
38
39
  api :PUT, '/ansible_roles/obsolete', N_('Obsolete Ansible roles')
@@ -41,8 +42,27 @@ module Api
41
42
  @obsoleted = @importer.obsolete!
42
43
  end
43
44
 
45
+ api :GET, '/ansible_roles/fetch',
46
+ N_('Fetch Ansible roles available to be imported')
47
+ param :proxy_id, :identifier, N_('Smart Proxy to fetch from')
48
+ def fetch
49
+ fetched = []
50
+ @importer.fetch!.each do |role_name|
51
+ fetched << { :name => role_name }
52
+ end
53
+ respond_to do |format|
54
+ format.json do
55
+ render :json => { :results => { :ansible_roles => fetched } }
56
+ end
57
+ end
58
+ end
59
+
44
60
  private
45
61
 
62
+ def role_names
63
+ params.fetch(:role_names, [])
64
+ end
65
+
46
66
  # rubocop:disable DotPosition
47
67
  def find_proxy
48
68
  return nil unless params[:proxy_id]
@@ -9,10 +9,11 @@ module ForemanAnsible
9
9
 
10
10
  # Included blocks shouldn't be bound by length, as otherwise concerns
11
11
  # cannot extend the method properly.
12
+ # rubocop:disable BlockLength
12
13
  included do
13
14
  api :POST, '/hostgroups/:id/play_roles',
14
15
  N_('Plays Ansible roles on a hostgroup')
15
- param :id, String, :required => true
16
+ param :id, :identifier, :required => true
16
17
 
17
18
  def play_roles
18
19
  find_resource
@@ -20,9 +21,10 @@ module ForemanAnsible
20
21
  process_response composer.trigger!, composer.job_invocation
21
22
  end
22
23
 
23
- api :POST, '/hostgroups/play_roles',
24
+ api :POST, '/hostgroups/multiple_play_roles',
24
25
  N_('Plays Ansible roles on hostgroups')
25
- param :id, Array, :required => true
26
+ param :hostgroup_ids, Array, N_('IDs of hostgroups to play roles on'),
27
+ :required => true
26
28
 
27
29
  def multiple_play_roles
28
30
  find_multiple
@@ -30,7 +32,18 @@ module ForemanAnsible
30
32
  @hostgroups.map(&:host_ids).flatten.uniq)
31
33
  process_response composer.trigger!, composer.job_invocation
32
34
  end
35
+
36
+ api :GET, '/hostgroups/:id/ansible_roles',
37
+ N_('List all Ansible roles for a hostgroup')
38
+ param :id, :identifier, :required => true
39
+
40
+ def ansible_roles
41
+ find_resource
42
+ return unless @hostgroup
43
+ @ansible_roles = @hostgroup.all_ansible_roles
44
+ end
33
45
  end
46
+ # rubocop:enable BlockLength
34
47
 
35
48
  private
36
49
 
@@ -49,7 +62,7 @@ module ForemanAnsible
49
62
 
50
63
  def action_permission
51
64
  case params[:action]
52
- when 'play_roles'
65
+ when 'play_roles', 'multiple_play_roles', 'ansible_roles'
53
66
  :view
54
67
  else
55
68
  super
@@ -7,30 +7,51 @@ module ForemanAnsible
7
7
  include ForemanTasks::Triggers
8
8
  include ::ForemanAnsible::Concerns::JobInvocationHelper
9
9
 
10
+ # Included blocks shouldn't be bound by length, as otherwise concerns
11
+ # cannot extend the method properly.
12
+ # rubocop:disable BlockLength
10
13
  included do
14
+ def find_resource
15
+ return true if params[:action] == 'multiple_play_roles'
16
+ super
17
+ end
18
+
11
19
  api :POST, '/hosts/:id/play_roles',
12
20
  N_('Plays Ansible roles on a host')
13
- param :id, String, :required => true
21
+ param :id, :identifier, :required => true
14
22
 
15
23
  def play_roles
16
24
  composer = job_composer(:ansible_run_host, @host)
17
25
  process_response composer.trigger!, composer.job_invocation
18
26
  end
19
27
 
20
- api :POST, '/hosts/play_roles', N_('Plays Ansible roles on hosts')
21
- param :id, Array, :required => true
28
+ api :POST, '/hosts/multiple_play_roles',
29
+ N_('Plays Ansible roles on hosts')
30
+ param :host_ids, Array, N_('IDs of hosts to play roles on'),
31
+ :required => true
22
32
 
23
33
  def multiple_play_roles
24
- composer = job_composer(:ansible_run_host, @host.pluck(:id))
34
+ host_ids = params.fetch(:host_ids, []).uniq
35
+ composer = job_composer(:ansible_run_host, host_ids)
25
36
  process_response composer.trigger!, composer.job_invocation
26
37
  end
38
+
39
+ api :GET, '/hosts/:id/ansible_roles',
40
+ N_('List all Ansible roles for a host')
41
+ param :id, :identifier, :required => true
42
+
43
+ def ansible_roles
44
+ return unless @host
45
+ @ansible_roles = @host.all_ansible_roles
46
+ end
27
47
  end
48
+ # rubocop:enable BlockLength
28
49
 
29
50
  private
30
51
 
31
52
  def action_permission
32
53
  case params[:action]
33
- when 'play_roles', 'multiple_play_roles'
54
+ when 'play_roles', 'multiple_play_roles', 'ansible_roles'
34
55
  :view
35
56
  else
36
57
  super
@@ -7,10 +7,13 @@ module ForemanAnsible
7
7
  def job_composer(feature_name, target)
8
8
  composer = ::JobInvocationComposer.for_feature(feature_name, target)
9
9
  return composer if composer.save
10
- raise ::Foreman::Exception.new(
11
- format(N_('Could not run Ansible roles for %{host}'),
12
- :host => target)
13
- )
10
+ msg = if target.blank?
11
+ N_('There are no Ansible roles to play')
12
+ else
13
+ format(N_('Could not run Ansible roles for %{host}'),
14
+ :host => target)
15
+ end
16
+ raise ::Foreman::Exception.new(msg)
14
17
  end
15
18
  end
16
19
  end
@@ -1,8 +1,13 @@
1
1
  module ForemanAnsible
2
2
  # imports Ansible roles through API
3
3
  class ApiRolesImporter < RolesImporter
4
- def import!
4
+ def import!(role_names = nil)
5
5
  new_roles = import_role_names[:new]
6
+ if role_names.present?
7
+ new_roles.select! do |role|
8
+ role_names.include?(role.name)
9
+ end
10
+ end
6
11
  new_roles.map(&:save)
7
12
  new_roles
8
13
  end
@@ -12,5 +17,9 @@ module ForemanAnsible
12
17
  obsolete_roles.map(&:destroy)
13
18
  obsolete_roles
14
19
  end
20
+
21
+ def fetch!
22
+ fetch_role_names
23
+ end
15
24
  end
16
25
  end
@@ -12,6 +12,11 @@ module ForemanAnsible
12
12
  import_roles local_roles
13
13
  end
14
14
 
15
+ def fetch_role_names
16
+ return remote_roles if ansible_proxy
17
+ local_roles
18
+ end
19
+
15
20
  def import_roles(roles)
16
21
  imported = roles.map do |role_name|
17
22
  ::AnsibleRole.find_or_initialize_by(:name => role_name)
@@ -6,6 +6,10 @@ module ForemanAnsible
6
6
  ForemanAnsible::FactName
7
7
  end
8
8
 
9
+ def self.authorized_smart_proxy_features
10
+ 'Ansible'
11
+ end
12
+
9
13
  def initialize(host, facts = {})
10
14
  # Try to assign these facts to the correct host as per the facts say
11
15
  # If that host isn't created yet, the host parameter will contain it
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ collection @ansible_roles
4
+
5
+ attributes :id, :name, :created_at, :updated_at
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ collection @ansible_roles
4
+
5
+ attributes :id, :name, :created_at, :updated_at
@@ -0,0 +1,52 @@
1
+ <%#
2
+ kind: job_template
3
+ name: Module Action - Ansible Default
4
+ model: JobTemplate
5
+ job_category: Ansible Modules
6
+ description_format: "Module %{action} %{module_spec}"
7
+ provider_type: Ansible
8
+ template_inputs:
9
+ - name: pre_script
10
+ description: A script to run prior to the module action
11
+ input_type: user
12
+ required: false
13
+ advanced: true
14
+ - name: action
15
+ description: 'The module action enable, install etc'
16
+ input_type: user
17
+ required: true
18
+ options: "\nlist\ninfo\nenable\ndisable\ninstall\nupdate\nremove\nprovides\nreset"
19
+ - name: module_spec
20
+ description: The module specification. module:stream/profile
21
+ input_type: user
22
+ required: false
23
+ - name: options
24
+ description: Other optional flags for the action
25
+ input_type: user
26
+ required: false
27
+ - name: post_script
28
+ description: A script to run after the module action
29
+ input_type: user
30
+ required: false
31
+ advanced: true
32
+ %>
33
+
34
+ <% command = "dnf -y module #{input(:action)} #{input(:module_spec)} #{input(:options)}" %>
35
+
36
+ ---
37
+ - hosts: all
38
+ <%- if input('pre_script').present? -%>
39
+ pre_tasks:
40
+ - shell: "<%= input('pre_script') %>"
41
+ <%- end -%>
42
+ tasks:
43
+ - shell: |
44
+ <%= indent(8) { command } %>
45
+ register: out
46
+ args:
47
+ warn: false
48
+ - debug: var=out
49
+ <%- if input('post_script').present? -%>
50
+ post_tasks:
51
+ - shell: "<%= input('post_script') %>"
52
+ <%- end -%>
@@ -19,6 +19,7 @@ model: JobTemplate
19
19
  - hosts: all
20
20
  tasks:
21
21
  - command: |
22
+ echo <%= input('action') %> host && sleep 3
22
23
  <%= case input('action')
23
24
  when 'restart'
24
25
  'shutdown -r +1'
data/config/routes.rb CHANGED
@@ -1,5 +1,34 @@
1
1
  # rubocop:disable BlockLength
2
2
  Rails.application.routes.draw do
3
+ namespace :api do
4
+ scope '(:apiv)',
5
+ :module => :v2,
6
+ :defaults => { :apiv => 'v2' },
7
+ :apiv => /v1|v2/,
8
+ :constraints => ApiConstraints.new(:version => 2) do
9
+
10
+ constraints(:id => %r{[^\/]+}) do
11
+ resources :hosts, :only => [] do
12
+ member do
13
+ post :play_roles
14
+ get :ansible_roles
15
+ end
16
+ collection do
17
+ post :multiple_play_roles
18
+ end
19
+ end
20
+ resources :hostgroups, :only => [] do
21
+ member do
22
+ post :play_roles
23
+ get :ansible_roles
24
+ end
25
+ collection do
26
+ post :multiple_play_roles
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
3
32
  scope '/ansible' do
4
33
  constraints(:id => %r{[^\/]+}) do
5
34
  resources :hosts, :only => [] do
@@ -31,30 +60,11 @@ Rails.application.routes.draw do
31
60
  :apiv => /v1|v2/,
32
61
  :constraints => ApiConstraints.new(:version => 2) do
33
62
 
34
- constraints(:id => %r{[^\/]+}) do
35
- resources :hosts, :only => [] do
36
- member do
37
- post :play_roles
38
- end
39
- collection do
40
- post :multiple_play_roles
41
- end
42
- end
43
-
44
- resources :hostgroups, :only => [] do
45
- member do
46
- post :play_roles
47
- end
48
- collection do
49
- post :multiple_play_roles
50
- end
51
- end
52
- end
53
-
54
63
  resources :ansible_roles, :only => [:show, :index, :destroy] do
55
64
  collection do
56
65
  put :import
57
66
  put :obsolete
67
+ get :fetch
58
68
  end
59
69
  end
60
70
  end
@@ -15,7 +15,7 @@ Foreman::Plugin.register :foreman_ansible do
15
15
  :resource_type => 'Hostgroup'
16
16
  permission :view_ansible_roles,
17
17
  { :ansible_roles => [:index],
18
- :'api/v2/ansible_roles' => [:index, :show] },
18
+ :'api/v2/ansible_roles' => [:index, :show, :fetch] },
19
19
  :resource_type => 'AnsibleRole'
20
20
  permission :destroy_ansible_roles,
21
21
  { :ansible_roles => [:destroy],
@@ -25,6 +25,12 @@ Foreman::Plugin.register :foreman_ansible do
25
25
  { :ansible_roles => [:import, :confirm_import],
26
26
  :'api/v2/ansible_roles' => [:import] },
27
27
  :resource_type => 'AnsibleRole'
28
+ permission :view_hosts,
29
+ { :'api/v2/hosts' => [:ansible_roles] },
30
+ :resource_type => 'Host'
31
+ permission :view_hostgroups,
32
+ { :'api/v2/hostgroups' => [:ansible_roles] },
33
+ :resource_type => 'Hostgroup'
28
34
  end
29
35
 
30
36
  role 'Ansible Roles Manager',
@@ -2,5 +2,5 @@
2
2
  # This way other parts of Foreman can just call ForemanAnsible::VERSION
3
3
  # and detect what version the plugin is running.
4
4
  module ForemanAnsible
5
- VERSION = '2.2.9'.freeze
5
+ VERSION = '2.2.10'.freeze
6
6
  end
@@ -0,0 +1,5 @@
1
+ # Autogenerated!
2
+ _("Action with sub plans")
3
+ _("Import facts")
4
+ _("Import Puppet classes")
5
+ _("Remote action:")
@@ -0,0 +1,444 @@
1
+ # German translations for foreman_ansible package.
2
+ # Copyright (C) 2018 THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the foreman_ansible package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2018.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: foreman_ansible 2.2.9\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "PO-Revision-Date: 2018-03-12 12:24-0400\n"
11
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12
+ "Language-Team: German\n"
13
+ "Language: de\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
18
+ "\n"
19
+
20
+ #: ../app/controllers/ansible_roles_controller.rb:37
21
+ msgid "Import of roles successfully finished."
22
+ msgstr ""
23
+
24
+ #: ../app/controllers/ansible_roles_controller.rb:57
25
+ msgid "No changes in roles detected."
26
+ msgstr ""
27
+
28
+ #: ../app/controllers/ansible_roles_controller.rb:58
29
+ msgid "No changes in roles detected on %s."
30
+ msgstr ""
31
+
32
+ #: ../app/controllers/api/v2/ansible_roles_controller.rb:16
33
+ msgid "Show role"
34
+ msgstr ""
35
+
36
+ #: ../app/controllers/api/v2/ansible_roles_controller.rb:20
37
+ msgid "List Ansible roles"
38
+ msgstr ""
39
+
40
+ #: ../app/controllers/api/v2/ansible_roles_controller.rb:26
41
+ msgid "Deletes Ansible role"
42
+ msgstr ""
43
+
44
+ #: ../app/controllers/api/v2/ansible_roles_controller.rb:32
45
+ msgid "Import Ansible roles"
46
+ msgstr ""
47
+
48
+ #: ../app/controllers/api/v2/ansible_roles_controller.rb:33 ../app/controllers/api/v2/ansible_roles_controller.rb:40
49
+ msgid "Smart Proxy to import from"
50
+ msgstr ""
51
+
52
+ #: ../app/controllers/api/v2/ansible_roles_controller.rb:34
53
+ msgid "Ansible role names to import"
54
+ msgstr ""
55
+
56
+ #: ../app/controllers/api/v2/ansible_roles_controller.rb:39
57
+ msgid "Obsolete Ansible roles"
58
+ msgstr ""
59
+
60
+ #: ../app/controllers/api/v2/ansible_roles_controller.rb:46
61
+ msgid "Fetch Ansible roles available to be imported"
62
+ msgstr ""
63
+
64
+ #: ../app/controllers/api/v2/ansible_roles_controller.rb:47
65
+ msgid "Smart Proxy to fetch from"
66
+ msgstr ""
67
+
68
+ #: ../app/controllers/foreman_ansible/api/v2/hostgroups_controller_extensions.rb:15
69
+ msgid "Plays Ansible roles on a hostgroup"
70
+ msgstr ""
71
+
72
+ #: ../app/controllers/foreman_ansible/api/v2/hostgroups_controller_extensions.rb:25
73
+ msgid "Plays Ansible roles on hostgroups"
74
+ msgstr ""
75
+
76
+ #: ../app/controllers/foreman_ansible/api/v2/hostgroups_controller_extensions.rb:26
77
+ msgid "IDs of hostgroups to play roles on"
78
+ msgstr ""
79
+
80
+ #: ../app/controllers/foreman_ansible/api/v2/hostgroups_controller_extensions.rb:37
81
+ msgid "List all Ansible roles for a hostgroup"
82
+ msgstr ""
83
+
84
+ #: ../app/controllers/foreman_ansible/api/v2/hostgroups_param_group_extensions.rb:11 ../app/controllers/foreman_ansible/api/v2/hosts_param_group_extensions.rb:11
85
+ msgid "IDs of associated ansible roles"
86
+ msgstr ""
87
+
88
+ #: ../app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb:20
89
+ msgid "Plays Ansible roles on a host"
90
+ msgstr ""
91
+
92
+ #: ../app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb:29
93
+ msgid "Plays Ansible roles on hosts"
94
+ msgstr ""
95
+
96
+ #: ../app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb:30
97
+ msgid "IDs of hosts to play roles on"
98
+ msgstr ""
99
+
100
+ #: ../app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb:40
101
+ msgid "List all Ansible roles for a host"
102
+ msgstr ""
103
+
104
+ #: ../app/controllers/foreman_ansible/concerns/hostgroups_controller_extensions.rb:25
105
+ msgid "Host group has no associated hosts"
106
+ msgstr ""
107
+
108
+ #: ../app/controllers/foreman_ansible/concerns/job_invocation_helper.rb:11
109
+ msgid "There are no Ansible roles to play"
110
+ msgstr ""
111
+
112
+ #: ../app/controllers/foreman_ansible/concerns/job_invocation_helper.rb:13
113
+ msgid "Could not run Ansible roles for %{host}"
114
+ msgstr ""
115
+
116
+ #: ../app/helpers/foreman_ansible/ansible_roles_helper.rb:6
117
+ msgid "From %s"
118
+ msgstr ""
119
+
120
+ #: ../app/helpers/foreman_ansible/ansible_roles_helper.rb:13
121
+ msgid "Import"
122
+ msgstr ""
123
+
124
+ #: ../app/helpers/foreman_ansible/ansible_roles_helper.rb:19
125
+ msgid "%s ago"
126
+ msgstr ""
127
+
128
+ #: ../app/helpers/foreman_ansible/hosts_helper_extensions.rb:21 ../app/lib/actions/foreman_ansible/helpers/host_common.rb:16
129
+ msgid "Play Ansible roles"
130
+ msgstr ""
131
+
132
+ #: ../app/helpers/foreman_ansible/hosts_helper_extensions.rb:40
133
+ msgid "Run Ansible roles"
134
+ msgstr ""
135
+
136
+ #: ../app/lib/actions/foreman_ansible/helpers/host_common.rb:8
137
+ msgid "Playbook execution failed"
138
+ msgstr ""
139
+
140
+ #: ../app/lib/actions/foreman_ansible/helpers/host_common.rb:28 ../lib/foreman_ansible_core/remote_execution_core/ansible_runner.rb:31
141
+ msgid "Error loading data from proxy"
142
+ msgstr ""
143
+
144
+ #: ../app/lib/actions/foreman_ansible/helpers/play_roles_description.rb:11
145
+ msgid "Foreman"
146
+ msgstr ""
147
+
148
+ #: ../app/lib/proxy_api/ansible.rb:25
149
+ msgid "Unable to get roles from Ansible"
150
+ msgstr ""
151
+
152
+ #: ../app/models/setting/ansible.rb:18
153
+ msgid "Use this to supply a path to an SSH Private Key that Ansible will use in lieu of a password Override with \"ansible_ssh_private_key_file\" host parameter"
154
+ msgstr ""
155
+
156
+ #: ../app/models/setting/ansible.rb:23
157
+ msgid "Private Key Path"
158
+ msgstr ""
159
+
160
+ #: ../app/models/setting/ansible.rb:27
161
+ msgid "Use this connection type by default when running Ansible playbooks. You can override this on hosts by adding a parameter \"ansible_connection\""
162
+ msgstr ""
163
+
164
+ #: ../app/models/setting/ansible.rb:31
165
+ msgid "Connection type"
166
+ msgstr ""
167
+
168
+ #: ../app/models/setting/ansible.rb:35
169
+ msgid "Enable/disable WinRM server certificate validation when running Ansible playbooks. You can override this on hosts by adding a parameter \"ansible_winrm_server_cert_validation\""
170
+ msgstr ""
171
+
172
+ #: ../app/models/setting/ansible.rb:40
173
+ msgid "WinRM cert Validation"
174
+ msgstr ""
175
+
176
+ #: ../app/models/setting/ansible.rb:44
177
+ msgid "Foreman will add the this level of verbosity for additional debugging output when running Ansible playbooks."
178
+ msgstr ""
179
+
180
+ #: ../app/models/setting/ansible.rb:47
181
+ msgid "Default verbosity level"
182
+ msgstr ""
183
+
184
+ #: ../app/models/setting/ansible.rb:50
185
+ msgid "Disabled"
186
+ msgstr ""
187
+
188
+ #: ../app/models/setting/ansible.rb:51
189
+ msgid "Level 1 (-v)"
190
+ msgstr ""
191
+
192
+ #: ../app/models/setting/ansible.rb:52
193
+ msgid "Level 2 (-vv)"
194
+ msgstr ""
195
+
196
+ #: ../app/models/setting/ansible.rb:53
197
+ msgid "Level 3 (-vvv)"
198
+ msgstr ""
199
+
200
+ #: ../app/models/setting/ansible.rb:54
201
+ msgid "Level 4 (-vvvv)"
202
+ msgstr ""
203
+
204
+ #: ../app/models/setting/ansible.rb:60
205
+ msgid "Timeout (in seconds) to set when Foreman will trigger a play Ansible roles task after a host is fully provisioned. Set this to the maximum time you expect a host to take until it is ready after a reboot."
206
+ msgstr ""
207
+
208
+ #: ../app/models/setting/ansible.rb:65
209
+ msgid "Post-provision timeout"
210
+ msgstr ""
211
+
212
+ #: ../app/models/setting/ansible.rb:69
213
+ msgid "Whether to put Ansible parameters in the \"hostvars\" top-level key of the inventory. By default it is true, so that Host Parameters can be used directly in the playbooks.When false, Host Parameters can only be accessed throughforeman_params[\"host_parameter\"] in the playbooks."
214
+ msgstr ""
215
+
216
+ #: ../app/models/setting/ansible.rb:75
217
+ msgid "Top level Ansible variables"
218
+ msgstr ""
219
+
220
+ #: ../app/models/setting/ansible.rb:79
221
+ msgid "Timeout (in minutes) when hosts should have reported."
222
+ msgstr ""
223
+
224
+ #: ../app/models/setting/ansible.rb:81
225
+ msgid "Ansible report timeout"
226
+ msgstr ""
227
+
228
+ #: ../app/models/setting/ansible.rb:85
229
+ msgid "Disable host configuration status turning to out of sync for %{cfgmgmt} after report does not arrive within configured interval"
230
+ msgstr ""
231
+
232
+ #: ../app/models/setting/ansible.rb:89
233
+ msgid "%{cfgmgmt} out of sync disabled"
234
+ msgstr ""
235
+
236
+ #: ../app/models/setting/ansible.rb:102 ../lib/foreman_ansible/register.rb:50
237
+ msgid "Ansible"
238
+ msgstr ""
239
+
240
+ #: ../app/services/foreman_ansible/insights_notification_builder.rb:49
241
+ msgid "Remediation Plan"
242
+ msgstr ""
243
+
244
+ #: ../app/services/foreman_ansible/insights_notification_builder.rb:59 ../db/seeds.d/90_notification_blueprints.rb:11
245
+ msgid "Job Details"
246
+ msgstr ""
247
+
248
+ #: ../app/services/foreman_ansible/roles_importer.rb:37
249
+ msgid "Proxy not found"
250
+ msgstr ""
251
+
252
+ #: ../app/views/ansible_roles/import.html.erb:1
253
+ msgid "Changed Ansible roles"
254
+ msgstr ""
255
+
256
+ #: ../app/views/ansible_roles/import.html.erb:3
257
+ msgid "Select the changes you want to realize in Foreman"
258
+ msgstr ""
259
+
260
+ #: ../app/views/ansible_roles/import.html.erb:5
261
+ msgid "Toggle"
262
+ msgstr ""
263
+
264
+ #: ../app/views/ansible_roles/import.html.erb:6
265
+ msgid "New"
266
+ msgstr ""
267
+
268
+ #: ../app/views/ansible_roles/import.html.erb:8
269
+ msgid "Check/Uncheck new"
270
+ msgstr ""
271
+
272
+ #: ../app/views/ansible_roles/import.html.erb:9
273
+ msgid "Obsolete"
274
+ msgstr ""
275
+
276
+ #: ../app/views/ansible_roles/import.html.erb:11
277
+ msgid "Check/Uncheck obsolete"
278
+ msgstr ""
279
+
280
+ #: ../app/views/ansible_roles/import.html.erb:19
281
+ msgid "Check/Uncheck all"
282
+ msgstr ""
283
+
284
+ #: ../app/views/ansible_roles/import.html.erb:21
285
+ msgid "Name"
286
+ msgstr ""
287
+
288
+ #: ../app/views/ansible_roles/import.html.erb:22
289
+ msgid "Hosts count"
290
+ msgstr ""
291
+
292
+ #: ../app/views/ansible_roles/import.html.erb:23
293
+ msgid "Hostgroups count"
294
+ msgstr ""
295
+
296
+ #: ../app/views/ansible_roles/import.html.erb:24
297
+ msgid "Operation"
298
+ msgstr ""
299
+
300
+ #: ../app/views/ansible_roles/import.html.erb:35
301
+ msgid "Check/Uncheck all %s changes"
302
+ msgstr ""
303
+
304
+ #: ../app/views/ansible_roles/import.html.erb:40
305
+ msgid "Add"
306
+ msgstr ""
307
+
308
+ #: ../app/views/ansible_roles/import.html.erb:40
309
+ msgid "Remove"
310
+ msgstr ""
311
+
312
+ #: ../app/views/ansible_roles/import.html.erb:48
313
+ msgid "Cancel"
314
+ msgstr ""
315
+
316
+ #: ../app/views/ansible_roles/import.html.erb:49
317
+ msgid "Update"
318
+ msgstr ""
319
+
320
+ #: ../app/views/ansible_roles/index.html.erb:1 ../app/views/ansible_roles/welcome.html.erb:1 ../app/views/ansible_roles/welcome.html.erb:6 ../app/views/foreman_ansible/ansible_roles/_select_tab_title.html.erb:1
321
+ msgid "Ansible Roles"
322
+ msgstr ""
323
+
324
+ #: ../app/views/ansible_roles/index.html.erb:9
325
+ msgid "Role|Name"
326
+ msgstr ""
327
+
328
+ #: ../app/views/ansible_roles/index.html.erb:10
329
+ msgid "Hostgroups"
330
+ msgstr ""
331
+
332
+ #: ../app/views/ansible_roles/index.html.erb:11
333
+ msgid "Hosts"
334
+ msgstr ""
335
+
336
+ #: ../app/views/ansible_roles/index.html.erb:12
337
+ msgid "Imported at"
338
+ msgstr ""
339
+
340
+ #: ../app/views/ansible_roles/index.html.erb:13
341
+ msgid "Actions"
342
+ msgstr ""
343
+
344
+ #: ../app/views/ansible_roles/index.html.erb:26
345
+ msgid "Delete %s?"
346
+ msgstr ""
347
+
348
+ #: ../app/views/ansible_roles/welcome.html.erb:7
349
+ msgid ""
350
+ "No ansible roles were found in Foreman. If you want to assign roles to your hosts,\n"
351
+ " you have to import them first."
352
+ msgstr ""
353
+
354
+ #: ../app/views/ansible_roles/welcome.html.erb:10
355
+ msgid "Learn more about this in the documentation."
356
+ msgstr ""
357
+
358
+ #: ../app/views/foreman_ansible/ansible_roles/_hostgroup_ansible_roles_button.erb:5
359
+ msgid "Play Roles"
360
+ msgstr ""
361
+
362
+ #: ../app/views/foreman_ansible/ansible_roles/_hostgroup_ansible_roles_button.erb:9
363
+ msgid "Nest"
364
+ msgstr ""
365
+
366
+ #: ../app/views/foreman_ansible/ansible_roles/_hostgroup_ansible_roles_button.erb:10
367
+ msgid "Clone"
368
+ msgstr ""
369
+
370
+ #: ../app/views/foreman_ansible/ansible_roles/_select_tab_content.html.erb:9
371
+ msgid "Available roles"
372
+ msgstr ""
373
+
374
+ #: ../app/views/foreman_ansible/ansible_roles/_select_tab_content.html.erb:10
375
+ msgid "This list of roles will be applied when the host finishes<br/> provisioning. Users can also play these roles through the API<br/>or by clicking on the Play Roles button on the Host page "
376
+ msgstr ""
377
+
378
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:7
379
+ msgid "Level"
380
+ msgstr ""
381
+
382
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:8
383
+ msgid "Module"
384
+ msgstr ""
385
+
386
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:9
387
+ msgid "Arguments"
388
+ msgstr ""
389
+
390
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:10
391
+ msgid "Message"
392
+ msgstr ""
393
+
394
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:23
395
+ msgid "Nothing to show"
396
+ msgstr ""
397
+
398
+ #: ../db/seeds.d/90_notification_blueprints.rb:3
399
+ msgid "Jobs"
400
+ msgstr ""
401
+
402
+ #: ../db/seeds.d/90_notification_blueprints.rb:5
403
+ msgid "Insights remediation on %{hosts_count} host(s) has finished successfully"
404
+ msgstr ""
405
+
406
+ #: ../lib/foreman_ansible/register.rb:52
407
+ msgid "Roles"
408
+ msgstr ""
409
+
410
+ #: ../lib/foreman_ansible/remote_execution.rb:18
411
+ msgid "Ansible: Run host roles"
412
+ msgstr ""
413
+
414
+ #: ../lib/foreman_ansible/remote_execution.rb:19
415
+ msgid "Runs an Ansible playbook which contains all the roles defined for a host"
416
+ msgstr ""
417
+
418
+ #: ../lib/foreman_ansible/remote_execution.rb:24
419
+ msgid "Ansible: Run Insights maintenance plan"
420
+ msgstr ""
421
+
422
+ #: ../lib/foreman_ansible/remote_execution.rb:25
423
+ msgid "Runs a given maintenance plan from Red Hat Access Insights given an ID."
424
+ msgstr ""
425
+
426
+ #: action_names.rb:2
427
+ msgid "Action with sub plans"
428
+ msgstr ""
429
+
430
+ #: action_names.rb:3
431
+ msgid "Import facts"
432
+ msgstr ""
433
+
434
+ #: action_names.rb:4
435
+ msgid "Import Puppet classes"
436
+ msgstr ""
437
+
438
+ #: action_names.rb:5
439
+ msgid "Remote action:"
440
+ msgstr ""
441
+
442
+ #: gemspec.rb:2
443
+ msgid "Ansible support in Foreman"
444
+ msgstr ""