foreman_ansible 4.0.5 → 5.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/ansible_inventories_controller.rb +9 -4
  3. data/app/models/foreman_ansible/ansible_provider.rb +8 -0
  4. data/app/models/setting/ansible.rb +1 -1
  5. data/app/services/foreman_ansible/ansible_info.rb +1 -1
  6. data/app/services/foreman_ansible/operating_system_parser.rb +1 -1
  7. data/app/services/foreman_ansible/variables_importer.rb +8 -9
  8. data/app/views/ansible_variables/_fields.erb +1 -1
  9. data/app/views/foreman_ansible/job_templates/capsule_upgrade_-_ansible_default.erb +74 -0
  10. data/app/views/foreman_ansible/job_templates/configure_cloud_connector_-_ansible_default.erb +36 -0
  11. data/app/views/foreman_ansible/job_templates/power_action_-_ansible_default.erb +1 -1
  12. data/app/views/foreman_ansible/job_templates/puppet_run_once_-_ansible_default.erb +5 -1
  13. data/config/routes.rb +1 -1
  14. data/db/migrate/20200421201839_update_ansible_inv_template_name.rb +9 -0
  15. data/db/seeds.d/75_job_templates.rb +1 -1
  16. data/lib/foreman_ansible/engine.rb +22 -25
  17. data/lib/foreman_ansible/register.rb +1 -1
  18. data/lib/foreman_ansible/remote_execution.rb +11 -0
  19. data/lib/foreman_ansible/version.rb +1 -1
  20. data/locale/action_names.rb +3 -3
  21. data/locale/ca/LC_MESSAGES/foreman_ansible.mo +0 -0
  22. data/locale/ca/foreman_ansible.po +556 -0
  23. data/locale/cs_CZ/LC_MESSAGES/foreman_ansible.mo +0 -0
  24. data/locale/cs_CZ/foreman_ansible.po +556 -0
  25. data/locale/de/LC_MESSAGES/foreman_ansible.mo +0 -0
  26. data/locale/de/foreman_ansible.po +38 -33
  27. data/locale/en/LC_MESSAGES/foreman_ansible.mo +0 -0
  28. data/locale/en/foreman_ansible.po +38 -33
  29. data/locale/en_GB/LC_MESSAGES/foreman_ansible.mo +0 -0
  30. data/locale/en_GB/foreman_ansible.po +555 -0
  31. data/locale/es/LC_MESSAGES/foreman_ansible.mo +0 -0
  32. data/locale/es/foreman_ansible.po +38 -33
  33. data/locale/foreman_ansible.pot +96 -88
  34. data/locale/fr/LC_MESSAGES/foreman_ansible.mo +0 -0
  35. data/locale/fr/foreman_ansible.po +38 -33
  36. data/locale/gl/LC_MESSAGES/foreman_ansible.mo +0 -0
  37. data/locale/gl/foreman_ansible.po +553 -0
  38. data/locale/it/LC_MESSAGES/foreman_ansible.mo +0 -0
  39. data/locale/it/foreman_ansible.po +38 -33
  40. data/locale/ja/LC_MESSAGES/foreman_ansible.mo +0 -0
  41. data/locale/ja/foreman_ansible.po +38 -33
  42. data/locale/ko/LC_MESSAGES/foreman_ansible.mo +0 -0
  43. data/locale/ko/foreman_ansible.po +38 -33
  44. data/locale/nl_NL/LC_MESSAGES/foreman_ansible.mo +0 -0
  45. data/locale/nl_NL/foreman_ansible.po +559 -0
  46. data/locale/pl/LC_MESSAGES/foreman_ansible.mo +0 -0
  47. data/locale/pl/foreman_ansible.po +556 -0
  48. data/locale/pt_BR/LC_MESSAGES/foreman_ansible.mo +0 -0
  49. data/locale/pt_BR/foreman_ansible.po +38 -33
  50. data/locale/ru/LC_MESSAGES/foreman_ansible.mo +0 -0
  51. data/locale/ru/foreman_ansible.po +38 -33
  52. data/locale/sv_SE/LC_MESSAGES/foreman_ansible.mo +0 -0
  53. data/locale/sv_SE/foreman_ansible.po +556 -0
  54. data/locale/zh_CN/LC_MESSAGES/foreman_ansible.mo +0 -0
  55. data/locale/zh_CN/foreman_ansible.po +38 -33
  56. data/locale/zh_TW/LC_MESSAGES/foreman_ansible.mo +0 -0
  57. data/locale/zh_TW/foreman_ansible.po +38 -33
  58. data/package.json +14 -16
  59. data/test/factories/ansible_variables.rb +5 -0
  60. data/test/unit/services/ansible_variables_importer_test.rb +68 -43
  61. data/test/unit/services/inventory_creator_test.rb +0 -2
  62. data/webpack/test_setup.js +2 -1
  63. metadata +54 -59
  64. data/locale/de/foreman_ansible.edit.po +0 -825
  65. data/locale/de/foreman_ansible.po.time_stamp +0 -0
  66. data/locale/en/foreman_ansible.edit.po +0 -714
  67. data/locale/en/foreman_ansible.po.time_stamp +0 -0
  68. data/locale/es/foreman_ansible.edit.po +0 -845
  69. data/locale/es/foreman_ansible.po.time_stamp +0 -0
  70. data/locale/fr/foreman_ansible.edit.po +0 -847
  71. data/locale/fr/foreman_ansible.po.time_stamp +0 -0
  72. data/locale/it/foreman_ansible.edit.po +0 -818
  73. data/locale/it/foreman_ansible.po.time_stamp +0 -0
  74. data/locale/ja/foreman_ansible.edit.po +0 -818
  75. data/locale/ja/foreman_ansible.po.time_stamp +0 -0
  76. data/locale/ko/foreman_ansible.edit.po +0 -804
  77. data/locale/ko/foreman_ansible.po.time_stamp +0 -0
  78. data/locale/pt_BR/foreman_ansible.edit.po +0 -845
  79. data/locale/pt_BR/foreman_ansible.po.time_stamp +0 -0
  80. data/locale/ru/foreman_ansible.edit.po +0 -819
  81. data/locale/ru/foreman_ansible.po.time_stamp +0 -0
  82. data/locale/zh_CN/foreman_ansible.edit.po +0 -813
  83. data/locale/zh_CN/foreman_ansible.po.time_stamp +0 -0
  84. data/locale/zh_TW/foreman_ansible.edit.po +0 -804
  85. data/locale/zh_TW/foreman_ansible.po.time_stamp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 445fecb1019a8e43c003746eb46cfd194086e8650b12e9c2c04af45460991fa9
4
- data.tar.gz: 0b5e0f87db28b99b6c06344e1bc883cc1f5d3ae2f47cd1f715b0d07eb01c6311
3
+ metadata.gz: 8744b23301ac870332d48495360cc3a927b04e4ff5e6b6afff18d53fc62c4a8a
4
+ data.tar.gz: 699440047b4d1855fa0ff0a02e8e2224865090abb23f0e2c3bcf18bec2c90c36
5
5
  SHA512:
6
- metadata.gz: 29ef68e024d2f4bc44b7324e723a0c9eaccaf937faa5ed084f9fe30dbbfa424f33ff5e5b539568fbf7ab50738aedb5b0c9e2c760926d3ad190b08d8bec900041
7
- data.tar.gz: fa7d3a60256d005e535ca80f7809df46e58d4a3c93e13fcde853808b07faf3c35f8f684c4517e100ae1e4ca1622e9c7da49ab7efc8bde887b8b5f38ec904dfb6
6
+ metadata.gz: a4c23524c3b3db583c1651c7e5f801893b3ea837924a61768310c3662fe128dda33f5cca7bc449c83a9a981ffdf18a9ece59a79279e50e9fabcd8f2b34efb78a
7
+ data.tar.gz: 027e5fb0a021095f67f7d1acd428f115fdf0bdf0490f4163f17e28a2dd54b8e3ee5c8d950e67af867b8172c805716cc3fbe1752181432da51b2af94e9a30e858
@@ -3,6 +3,11 @@ module Api
3
3
  class AnsibleInventoriesController < ::Api::V2::BaseController
4
4
  include ::Api::Version2
5
5
 
6
+ resource_description do
7
+ api_version 'v2'
8
+ api_base_url '/ansible/api'
9
+ end
10
+
6
11
  api :POST, '/ansible_inventories/hosts',
7
12
  N_('Show Ansible inventory for hosts')
8
13
  param :host_ids, Array, N_('IDs of hosts included in inventory'),
@@ -13,6 +18,10 @@ module Api
13
18
  param :host_ids, Array, N_('IDs of hosts included in inventory'),
14
19
  :required => true
15
20
 
21
+ def hosts
22
+ show_inventory :host_ids, :id
23
+ end
24
+
16
25
  api :POST, '/ansible_inventories/hostgroups',
17
26
  N_('Show Ansible inventory for hostgroups')
18
27
  param :hostgroup_ids, Array, N_('IDs of hostgroups included in inventory'),
@@ -23,10 +32,6 @@ module Api
23
32
  param :hostgroup_ids, Array, N_('IDs of hostgroups included in inventory'),
24
33
  :required => true
25
34
 
26
- def hosts
27
- show_inventory :host_ids, :id
28
- end
29
-
30
35
  def hostgroups
31
36
  show_inventory :hostgroup_ids, :hostgroup_id
32
37
  end
@@ -62,6 +62,14 @@ if defined? ForemanRemoteExecution
62
62
  'ansible-runner'
63
63
  end
64
64
 
65
+ def required_proxy_selector_for(template)
66
+ if template.remote_execution_features.where(:label => 'ansible_run_capsule_upgrade').any?
67
+ ::DefaultProxyProxySelector.new
68
+ else
69
+ super
70
+ end
71
+ end
72
+
65
73
  private
66
74
 
67
75
  def ansible_command?(template)
@@ -78,7 +78,7 @@ class Setting
78
78
  'ansible_inventory_template',
79
79
  N_('Foreman will use this template to schedule the report '\
80
80
  'with Ansible inventory'),
81
- 'Ansible Inventory',
81
+ 'Ansible - Ansible Inventory',
82
82
  N_('Default Ansible inventory report template')
83
83
  )
84
84
  ]
@@ -10,7 +10,7 @@ module ForemanAnsible
10
10
 
11
11
  variables.each_with_object({}) do |var, memo|
12
12
  value = values[var]
13
- memo[var.key] = value if value
13
+ memo[var.key] = value unless value.nil?
14
14
  memo
15
15
  end
16
16
  end
@@ -62,7 +62,7 @@ module ForemanAnsible
62
62
  end
63
63
 
64
64
  def os_minor
65
- _, minor = (os_release&.split('.', 2)) ||
65
+ _, minor = os_release&.split('.', 2) ||
66
66
  (facts[:version].split('R') if os_name == 'junos')
67
67
  # Until Foreman supports os.minor as something that's not a number,
68
68
  # we should remove the extra dots in the version. E.g:
@@ -48,22 +48,21 @@ module ForemanAnsible
48
48
  def initialize_variables(variables, role)
49
49
  variables.map do |variable_name, variable_default|
50
50
  variable = AnsibleVariable.find_or_initialize_by(
51
- :key => variable_name
51
+ :key => variable_name,
52
+ :ansible_role_id => role.id
52
53
  )
53
- if variable.new_record?
54
- variable.assign_attributes(:default_value => variable_default,
55
- :key_type => infer_key_type(variable_default),
56
- :imported => true)
57
- end
58
- variable.ansible_role = role
54
+ variable.assign_attributes(:default_value => variable_default,
55
+ :key_type => infer_key_type(variable_default))
56
+ variable.imported = true if variable.new_record?
59
57
  variable.valid? ? variable : nil
60
58
  end
61
59
  end
62
60
 
63
61
  def detect_changes(imported)
64
62
  changes = {}.with_indifferent_access
65
- persisted, changes[:new] = imported.partition { |role| role.id.present? }
66
- changes[:update], _old = persisted.partition(&:changed?)
63
+ persisted, changes[:new] = imported.partition { |var| var.id.present? }
64
+ changed, _old = persisted.partition(&:changed?)
65
+ _overriden, changes[:update] = changed.partition(&:override?)
67
66
  changes[:obsolete] = AnsibleVariable.where.not(:id => persisted.pluck(:id), :imported => false)
68
67
  changes
69
68
  end
@@ -15,7 +15,7 @@
15
15
  ) %>
16
16
 
17
17
  <% version = Foreman::Version.new %>
18
- <% if version.major.to_i >= 1 && version.minor.to_i >= 22 %>
18
+ <% if version.major.to_i > 1 || version.minor.to_i >= 22 %>
19
19
  <%= param_type_selector(f, false, :onchange => 'keyTypeChange(this)', :disabled => !f.object.override) %>
20
20
  <% else %>
21
21
  <%= param_type_selector(f, :onchange => 'keyTypeChange(this)', :disabled => !f.object.override) %>
@@ -0,0 +1,74 @@
1
+ <%#
2
+ name: Capsule Upgrade Playbook
3
+ snippet: false
4
+ template_inputs:
5
+ - name: target_version
6
+ required: true
7
+ input_type: user
8
+ advanced: false
9
+ value_type: plain
10
+ hidden_value: false
11
+ - name: whitelist_options
12
+ required: false
13
+ input_type: user
14
+ advanced: false
15
+ value_type: plain
16
+ hidden_value: false
17
+ model: JobTemplate
18
+ job_category: Ansible Playbook
19
+ description_format: "%{template_name}"
20
+ provider_type: Ansible
21
+ kind: job_template
22
+ feature: ansible_run_capsule_upgrade
23
+ %>
24
+
25
+ ---
26
+ - hosts: all
27
+ tasks:
28
+ - name: Gather the rpm package facts
29
+ package_facts:
30
+ manager: auto
31
+
32
+ - name: Fail if the target server is a Satellite server
33
+ fail:
34
+ msg: "This playbook cannot be executed on a Satellite server. Use only on a Capsule server."
35
+ when: "'satellite' in ansible_facts.packages"
36
+
37
+ - name: Install satellite-maintain if not present
38
+ package:
39
+ name: rubygem-foreman_maintain
40
+ state: present
41
+ when: "'rubygem-foreman_maintain' not in ansible_facts.packages"
42
+
43
+ - block:
44
+ <%- whitelist_option = if input('whitelist_options').present?
45
+ "--whitelist=#{input('whitelist_options')}"
46
+ end -%>
47
+ - name: Upgrade Capsule server using satellite-maintain
48
+ shell: satellite-maintain upgrade run --assumeyes --target-version=<%= input('target_version') %> <%= whitelist_option %>
49
+ register: result
50
+
51
+ - name: Re-Gather the rpm package facts after the upgrade
52
+ package_facts:
53
+ manager: auto
54
+
55
+ - name: satellite-maintain upgrade return code is zero
56
+ debug:
57
+ msg: "Success! Capsule server upgrade completed. Current version of Capsule server server is {{ ansible_facts.packages['satellite-capsule'][0]['version'] }}."
58
+
59
+ rescue:
60
+ - name: Print satellite-maintain output
61
+ debug:
62
+ var: result
63
+
64
+ - name: Grep top 10 Error messages from /var/log/foreman-installer/capsule.log
65
+ shell: grep '^\[ERROR' /var/log/foreman-installer/capsule.log | head -n10
66
+ register: output_grep
67
+
68
+ - name: Print grepped Error messages
69
+ debug:
70
+ var: output_grep.stdout_lines
71
+
72
+ - name: satellite-maintain upgrade return code is non-zero
73
+ fail:
74
+ msg: "Failed! Capsule server upgrade failed. See /var/log/foreman-installer/capsule.log in the Capsule server for more information"
@@ -0,0 +1,36 @@
1
+ <%#
2
+ name: Configure Cloud Connector
3
+ snippet: false
4
+ template_inputs:
5
+ - name: satellite_user
6
+ required: true
7
+ input_type: user
8
+ advanced: false
9
+ value_type: plain
10
+ hidden_value: false
11
+ - name: satellite_password
12
+ required: true
13
+ input_type: user
14
+ advanced: false
15
+ value_type: plain
16
+ hidden_value: true
17
+ - name: http_proxy
18
+ required: false
19
+ input_type: user
20
+ advanced: true
21
+ value_type: plain
22
+ hidden_value: false
23
+ description: You can specify a HTTP proxy address that should be used for Cloud Connector connection to the cloud.redhat.com. Note that it must be HTTP proxy, not HTTPS. The tunelling of SSL (secured web socket connection) in SSL (HTTPS proxy) is currently unsupported.
24
+ model: JobTemplate
25
+ job_category: Ansible Playbook
26
+ description_format: "%{template_name}"
27
+ provider_type: Ansible
28
+ kind: job_template
29
+ %>
30
+
31
+ ---
32
+ - hosts: all
33
+ vars:
34
+ satellite_url: "<%= foreman_server_url %>"
35
+ roles:
36
+ - project-receptor.satellite_receptor_installer
@@ -18,7 +18,7 @@ model: JobTemplate
18
18
  ---
19
19
  - hosts: all
20
20
  tasks:
21
- - command: |
21
+ - shell: |
22
22
  echo <%= input('action') %> host && sleep 3
23
23
  <%= case input('action')
24
24
  when 'restart'
@@ -18,4 +18,8 @@ model: JobTemplate
18
18
  - hosts: all
19
19
  tasks:
20
20
  - command: |
21
- puppet agent --onetime --no-usecacheonfailure --no-daemonize <%= input("puppet_options") %>
21
+ puppet agent --onetime --no-usecacheonfailure --no-daemonize <%= input("puppet_options") -%>
22
+ <% if @host.operatingsystem.family == 'Debian' -%>
23
+ environment:
24
+ PATH: "/opt/puppetlabs/bin:{{ (ansible_env|default({})).PATH|default('') }}"
25
+ <% end -%>
@@ -72,7 +72,7 @@ Rails.application.routes.draw do
72
72
  :module => :v2,
73
73
  :defaults => { :apiv => 'v2' },
74
74
  :apiv => /v1|v2/,
75
- :constraints => ApiConstraints.new(:version => 2) do
75
+ :constraints => ApiConstraints.new(:version => 2, :default => true) do
76
76
  resources :ansible_roles, :only => [:show, :index, :destroy] do
77
77
  collection do
78
78
  put :import
@@ -0,0 +1,9 @@
1
+ class UpdateAnsibleInvTemplateName < ActiveRecord::Migration[5.2]
2
+ def up
3
+ Setting.where(:name => 'ansible_inventory_template').update_all(:default => 'Ansible - Ansible Inventory')
4
+ end
5
+
6
+ def down
7
+ Setting.where(:name => 'ansible_inventory_template').update_all(:default => 'Ansible Inventory')
8
+ end
9
+ end
@@ -18,7 +18,7 @@ User.as_anonymous_admin do
18
18
  sync = !Rails.env.test? && Setting[:remote_execution_sync_templates]
19
19
  template = JobTemplate.import_raw!(File.read(template),
20
20
  :default => true,
21
- :locked => true,
21
+ :lock => true,
22
22
  :update => sync)
23
23
  template.organizations = organizations if template.present?
24
24
  template.locations = locations if template.present?
@@ -71,32 +71,29 @@ module ForemanAnsible
71
71
  end
72
72
 
73
73
  config.to_prepare do
74
- begin
75
- foreman_version = ::Foreman::Version.new
76
- if Rails.env.test? ||
77
- foreman_version.major.to_i == 1 && foreman_version.minor.to_i < 13
78
- ::FactImporter.register_fact_importer(:ansible,
79
- ForemanAnsible::FactImporter)
80
- else
81
- ::FactImporter.register_fact_importer(
82
- :ansible,
83
- ForemanAnsible::StructuredFactImporter
84
- )
85
- end
86
- ::FactParser.register_fact_parser(:ansible, ForemanAnsible::FactParser)
87
- ::Host::Managed.prepend ForemanAnsible::HostManagedExtensions
88
- ::Hostgroup.include ForemanAnsible::HostgroupExtensions
89
- ::HostsHelper.include ForemanAnsible::HostsHelperExtensions
90
- ::HostsController.include ForemanAnsible::Concerns::HostsControllerExtensions
91
- ::Api::V2::HostsController.include ForemanAnsible::Api::V2::HostsControllerExtensions
92
- ::Api::V2::HostsController.include ForemanAnsible::Api::V2::HostsParamGroupExtensions
93
- ::HostgroupsController.include ForemanAnsible::Concerns::HostgroupsControllerExtensions
94
- ::Api::V2::HostgroupsController.include ForemanAnsible::Api::V2::HostgroupsControllerExtensions
95
- ::Api::V2::HostgroupsController.include ForemanAnsible::Api::V2::HostgroupsParamGroupExtensions
96
- ::ConfigReportImporter.include ForemanAnsible::AnsibleReportImporter
97
- rescue StandardError => e
98
- Rails.logger.warn "Foreman Ansible: skipping engine hook (#{e})"
74
+ foreman_version = ::Foreman::Version.new
75
+ if Rails.env.test? ||
76
+ foreman_version.major.to_i == 1 && foreman_version.minor.to_i < 13
77
+ ::Foreman::Plugin.fact_importer_registry.register(:ansible, ForemanAnsible::FactImporter)
78
+ else
79
+ ::Foreman::Plugin.fact_importer_registry.register(
80
+ :ansible,
81
+ ForemanAnsible::StructuredFactImporter
82
+ )
99
83
  end
84
+ ::FactParser.register_fact_parser(:ansible, ForemanAnsible::FactParser)
85
+ ::Host::Managed.prepend ForemanAnsible::HostManagedExtensions
86
+ ::Hostgroup.include ForemanAnsible::HostgroupExtensions
87
+ ::HostsHelper.include ForemanAnsible::HostsHelperExtensions
88
+ ::HostsController.include ForemanAnsible::Concerns::HostsControllerExtensions
89
+ ::Api::V2::HostsController.include ForemanAnsible::Api::V2::HostsControllerExtensions
90
+ ::Api::V2::HostsController.include ForemanAnsible::Api::V2::HostsParamGroupExtensions
91
+ ::HostgroupsController.include ForemanAnsible::Concerns::HostgroupsControllerExtensions
92
+ ::Api::V2::HostgroupsController.include ForemanAnsible::Api::V2::HostgroupsControllerExtensions
93
+ ::Api::V2::HostgroupsController.include ForemanAnsible::Api::V2::HostgroupsParamGroupExtensions
94
+ ::ConfigReportImporter.include ForemanAnsible::AnsibleReportImporter
95
+ rescue StandardError => e
96
+ Rails.logger.warn "Foreman Ansible: skipping engine hook (#{e})"
100
97
  end
101
98
 
102
99
  rake_tasks do
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Foreman::Plugin.register :foreman_ansible do
4
- requires_foreman '>= 1.24'
4
+ requires_foreman '>= 2.0'
5
5
 
6
6
  security_block :foreman_ansible do
7
7
  permission :play_roles_on_host,
@@ -36,6 +36,17 @@ module ForemanAnsible
36
36
  :description => N_('Run an Ansible playbook against given hosts'),
37
37
  :provided_inputs => %w[playbook]
38
38
  )
39
+ RemoteExecutionFeature.register(
40
+ :ansible_enable_web_console,
41
+ N_('Enable web console'),
42
+ :description => N_('Run an Ansible playbook to enable web console on given hosts'),
43
+ :host_action_button => true
44
+ )
45
+ RemoteExecutionFeature.register(
46
+ :ansible_run_capsule_upgrade,
47
+ N_('Upgrade Capsules on given hosts'),
48
+ :description => N_('Upgrade Capsules on given Capsule server hosts')
49
+ )
39
50
  end
40
51
  end
41
52
  end
@@ -4,5 +4,5 @@
4
4
  # This way other parts of Foreman can just call ForemanAnsible::VERSION
5
5
  # and detect what version the plugin is running.
6
6
  module ForemanAnsible
7
- VERSION = '4.0.5'
7
+ VERSION = '5.1.2'
8
8
  end
@@ -1,5 +1,5 @@
1
1
  # Autogenerated!
2
- _("Remote action:")
3
- _("Import Puppet classes")
2
+ _("Action with sub plans")
4
3
  _("Import facts")
5
- _("Action with sub plans")
4
+ _("Import Puppet classes")
5
+ _("Remote action:")
@@ -0,0 +1,556 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the foreman_ansible package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ # Translators:
7
+ # Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2019
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: foreman_ansible 5.0.1\n"
12
+ "Report-Msgid-Bugs-To: \n"
13
+ "PO-Revision-Date: 2018-11-14 21:36+0000\n"
14
+ "Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2019\n"
15
+ "Language-Team: Catalan (https://www.transifex.com/foreman/teams/114/ca/)\n"
16
+ "MIME-Version: 1.0\n"
17
+ "Content-Type: text/plain; charset=UTF-8\n"
18
+ "Content-Transfer-Encoding: 8bit\n"
19
+ "Language: ca\n"
20
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
+
22
+ msgid "%s ago"
23
+ msgstr "fa %s"
24
+
25
+ msgid "%{cfgmgmt} out of sync disabled"
26
+ msgstr ""
27
+
28
+ msgid "Action with sub plans"
29
+ msgstr ""
30
+
31
+ msgid "Actions"
32
+ msgstr "Accions"
33
+
34
+ msgid "Add"
35
+ msgstr "Afegeix"
36
+
37
+ msgid "Ansible"
38
+ msgstr ""
39
+
40
+ msgid "Ansible Role"
41
+ msgstr ""
42
+
43
+ msgid "Ansible Roles"
44
+ msgstr ""
45
+
46
+ msgid "Ansible Variable Details"
47
+ msgstr ""
48
+
49
+ msgid "Ansible Variable Details (Imported)"
50
+ msgstr ""
51
+
52
+ msgid "Ansible Variables"
53
+ msgstr ""
54
+
55
+ msgid "Ansible report timeout"
56
+ msgstr ""
57
+
58
+ msgid "Ansible role"
59
+ msgstr ""
60
+
61
+ msgid "Ansible role names to import"
62
+ msgstr ""
63
+
64
+ msgid "Ansible roles to assign to a host"
65
+ msgstr ""
66
+
67
+ msgid "Ansible roles to assign to a hostgroup"
68
+ msgstr ""
69
+
70
+ msgid "Ansible support in Foreman"
71
+ msgstr ""
72
+
73
+ msgid "Ansible: Run Insights maintenance plan"
74
+ msgstr ""
75
+
76
+ msgid "Arguments"
77
+ msgstr ""
78
+
79
+ msgid "Assigns Ansible roles to a host"
80
+ msgstr ""
81
+
82
+ msgid "Assigns Ansible roles to a hostgroup"
83
+ msgstr ""
84
+
85
+ msgid "Avoid duplicate values when merging them (only array type)?"
86
+ msgstr ""
87
+
88
+ msgid "Before including these variables on your playbooks, Foreman will validate that your variables comply with the validation."
89
+ msgstr ""
90
+
91
+ msgid "Cancel"
92
+ msgstr "Cancel·la"
93
+
94
+ msgid "Changed Ansible roles"
95
+ msgstr ""
96
+
97
+ msgid "Changed Ansible variables"
98
+ msgstr ""
99
+
100
+ msgid "Check/Uncheck all"
101
+ msgstr ""
102
+
103
+ msgid "Check/Uncheck all %s changes"
104
+ msgstr ""
105
+
106
+ msgid "Check/Uncheck new"
107
+ msgstr ""
108
+
109
+ msgid "Check/Uncheck obsolete"
110
+ msgstr ""
111
+
112
+ msgid "Check/Uncheck update"
113
+ msgstr ""
114
+
115
+ msgid "Clone"
116
+ msgstr "Clona"
117
+
118
+ msgid "Connection type"
119
+ msgstr ""
120
+
121
+ msgid "Continue to look for matches after first find (only array/hash type)? Note: merging overrides ignores all matchers that are omitted."
122
+ msgstr ""
123
+
124
+ msgid "Could not run Ansible roles for %{host}"
125
+ msgstr ""
126
+
127
+ msgid "Create Ansible Variable"
128
+ msgstr ""
129
+
130
+ msgid "Create Ansible variable"
131
+ msgstr ""
132
+
133
+ msgid "Create an override value for a specific ansible variable"
134
+ msgstr ""
135
+
136
+ msgid "Default Ansible inventory report template"
137
+ msgstr ""
138
+
139
+ msgid "Default Behavior"
140
+ msgstr ""
141
+
142
+ msgid "Default value of variable"
143
+ msgstr "Valor per defecte de la variable"
144
+
145
+ msgid "Default verbosity level"
146
+ msgstr ""
147
+
148
+ msgid "Delete %s?"
149
+ msgstr "Voleu suprimir %s?"
150
+
151
+ msgid "Deletes Ansible role"
152
+ msgstr ""
153
+
154
+ msgid "Deletes Ansible variable"
155
+ msgstr ""
156
+
157
+ msgid "Description of variable"
158
+ msgstr "Descripció de la variable"
159
+
160
+ msgid "Destroy an override value"
161
+ msgstr ""
162
+
163
+ msgid "Disable host configuration status turning to out of sync for %{cfgmgmt} after report does not arrive within configured interval"
164
+ msgstr ""
165
+
166
+ msgid "Disabled"
167
+ msgstr "Inhabilitada"
168
+
169
+ msgid "Edit %s"
170
+ msgstr "Edita %s"
171
+
172
+ msgid "Edit Ansible Variable"
173
+ msgstr ""
174
+
175
+ 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\""
176
+ msgstr ""
177
+
178
+ msgid "Error loading data from proxy"
179
+ msgstr ""
180
+
181
+ msgid "Fetch Ansible roles available to be imported"
182
+ msgstr ""
183
+
184
+ msgid "Foreman"
185
+ msgstr ""
186
+
187
+ msgid "Foreman will add this level of verbosity for additional debugging output when running Ansible playbooks."
188
+ msgstr ""
189
+
190
+ msgid "Foreman will use this template to schedule the report with Ansible inventory"
191
+ msgstr ""
192
+
193
+ msgid "Hash of input values of type input=>value"
194
+ msgstr ""
195
+
196
+ msgid "Hidden Value"
197
+ msgstr ""
198
+
199
+ msgid "Hide all values for this parameter."
200
+ msgstr ""
201
+
202
+ msgid "Host group has no associated hosts"
203
+ msgstr ""
204
+
205
+ msgid "Hostgroups"
206
+ msgstr "Grups d'amfitrions"
207
+
208
+ msgid "Hostgroups count"
209
+ msgstr ""
210
+
211
+ msgid "Hosts"
212
+ msgstr "Amfitrions"
213
+
214
+ msgid "Hosts count"
215
+ msgstr ""
216
+
217
+ msgid "IDs of associated ansible roles"
218
+ msgstr ""
219
+
220
+ msgid "IDs of hostgroups included in inventory"
221
+ msgstr ""
222
+
223
+ msgid "IDs of hostgroups to play roles on"
224
+ msgstr ""
225
+
226
+ msgid "IDs of hosts included in inventory"
227
+ msgstr ""
228
+
229
+ msgid "IDs of hosts to play roles on"
230
+ msgstr ""
231
+
232
+ msgid "If checked, will raise an error if there is no default value and no matcher provide a value."
233
+ msgstr "En cas que estigui marcat, es produirà un error si no hi ha cap valor per defecte i no hi ha cap classificador que proporcioni un valor."
234
+
235
+ msgid "Import"
236
+ msgstr "Importa"
237
+
238
+ msgid "Import Ansible roles"
239
+ msgstr ""
240
+
241
+ msgid "Import Ansible variables. This will only import variables for already existing roles, it will not import any new roles"
242
+ msgstr ""
243
+
244
+ msgid "Import Puppet classes"
245
+ msgstr ""
246
+
247
+ msgid "Import facts"
248
+ msgstr ""
249
+
250
+ msgid "Import from %s"
251
+ msgstr "Importa de %s"
252
+
253
+ msgid "Import of roles successfully finished."
254
+ msgstr ""
255
+
256
+ msgid "Imported at"
257
+ msgstr ""
258
+
259
+ msgid "Imported?"
260
+ msgstr ""
261
+
262
+ msgid "Include default value when merging all matching values"
263
+ msgstr ""
264
+
265
+ msgid "Include default value when merging all matching values."
266
+ msgstr ""
267
+
268
+ msgid "Insights remediation on %{hosts_count} host(s) has finished successfully"
269
+ msgstr ""
270
+
271
+ msgid "Job Details"
272
+ msgstr ""
273
+
274
+ msgid "Jobs"
275
+ msgstr "Treballs"
276
+
277
+ msgid "Learn more about this in the documentation."
278
+ msgstr "Obteniu més informació sobre això a la documentació."
279
+
280
+ msgid "Level"
281
+ msgstr "Nivell"
282
+
283
+ msgid "Level 1 (-v)"
284
+ msgstr ""
285
+
286
+ msgid "Level 2 (-vv)"
287
+ msgstr ""
288
+
289
+ msgid "Level 3 (-vvv)"
290
+ msgstr ""
291
+
292
+ msgid "Level 4 (-vvvv)"
293
+ msgstr ""
294
+
295
+ msgid "List Ansible roles"
296
+ msgstr ""
297
+
298
+ msgid "List Ansible variables"
299
+ msgstr ""
300
+
301
+ msgid "List all Ansible roles for a host"
302
+ msgstr ""
303
+
304
+ msgid "List all Ansible roles for a hostgroup"
305
+ msgstr ""
306
+
307
+ msgid "Mark the variable to be managed by Foreman. When the Ansible role of this variable is assigned to a host, the default value will be added to Ansible inventory as a host variable. Specify matchers to set a different value for such variable."
308
+ msgstr ""
309
+
310
+ msgid "Merge all matching values (only array/hash type)"
311
+ msgstr ""
312
+
313
+ msgid "Message"
314
+ msgstr "Missatge"
315
+
316
+ msgid "Module"
317
+ msgstr ""
318
+
319
+ msgid "Name"
320
+ msgstr "Nom"
321
+
322
+ msgid "Name of variable"
323
+ msgstr "Nom de la variable"
324
+
325
+ msgid "Nest"
326
+ msgstr ""
327
+
328
+ msgid "New"
329
+ msgstr "Nou"
330
+
331
+ msgid "New Ansible Variable"
332
+ msgstr ""
333
+
334
+ msgid ""
335
+ "No ansible roles were found in Foreman. If you want to assign roles to your hosts,\n"
336
+ " you have to import them first."
337
+ msgstr ""
338
+
339
+ msgid "No changes in roles detected on %s."
340
+ msgstr ""
341
+
342
+ msgid "No changes in roles detected."
343
+ msgstr ""
344
+
345
+ msgid "No changes in variables detected on %s."
346
+ msgstr ""
347
+
348
+ msgid "No proxy found to import variables from, ensure that the smart proxy has the Ansible feature enabled."
349
+ msgstr ""
350
+
351
+ msgid "Nothing to show"
352
+ msgstr "Res a mostrar"
353
+
354
+ msgid "Obsolete"
355
+ msgstr "En desús"
356
+
357
+ msgid "Obsolete Ansible roles"
358
+ msgstr ""
359
+
360
+ msgid "Obsolete Ansible variables. This will only obsolete variables for already existing roles, it will not delete any old roles"
361
+ msgstr ""
362
+
363
+ msgid "Operation"
364
+ msgstr "Operació"
365
+
366
+ msgid "Optional Input Validator"
367
+ msgstr ""
368
+
369
+ msgid "Order"
370
+ msgstr "Ordre"
371
+
372
+ msgid "Override match"
373
+ msgstr "Redefineix la coincidència"
374
+
375
+ msgid "Override the default value of the Ansible variable."
376
+ msgstr ""
377
+
378
+ msgid "Override value, required if omit is false"
379
+ msgstr ""
380
+
381
+ msgid "Overriden"
382
+ msgstr ""
383
+
384
+ msgid "Post-provision timeout"
385
+ msgstr ""
386
+
387
+ msgid "Prioritize Attribute Order"
388
+ msgstr ""
389
+
390
+ msgid "Private Key Path"
391
+ msgstr ""
392
+
393
+ msgid "Proxy not found"
394
+ msgstr ""
395
+
396
+ msgid "Remediation Plan"
397
+ msgstr ""
398
+
399
+ msgid "Remote action:"
400
+ msgstr ""
401
+
402
+ msgid "Remove"
403
+ msgstr "Suprimeix"
404
+
405
+ msgid "Remove duplicate values (only array type)"
406
+ msgstr ""
407
+
408
+ msgid "Report format, defaults to '%s'"
409
+ msgstr ""
410
+
411
+ msgid "Role ID"
412
+ msgstr ""
413
+
414
+ msgid "Roles"
415
+ msgstr "Rols"
416
+
417
+ msgid "Role|Name"
418
+ msgstr "Nom"
419
+
420
+ msgid "Run Ansible roles"
421
+ msgstr ""
422
+
423
+ msgid "Run all Ansible roles"
424
+ msgstr ""
425
+
426
+ msgid "Run all Ansible roles on hosts belonging to this host group"
427
+ msgstr ""
428
+
429
+ msgid "Run an Ansible playbook against given hosts"
430
+ msgstr ""
431
+
432
+ msgid "Run playbook"
433
+ msgstr ""
434
+
435
+ msgid "Runs a given maintenance plan from Red Hat Access Insights given an ID."
436
+ msgstr ""
437
+
438
+ msgid "Runs all Ansible roles on a host"
439
+ msgstr ""
440
+
441
+ msgid "Runs all Ansible roles on a hostgroup"
442
+ msgstr ""
443
+
444
+ msgid "Runs all Ansible roles on hostgroups"
445
+ msgstr ""
446
+
447
+ msgid "Runs all Ansible roles on hosts"
448
+ msgstr ""
449
+
450
+ msgid "Runs an Ansible playbook which contains all the roles defined for a host"
451
+ msgstr ""
452
+
453
+ msgid "Schedule generating of Ansible Inventory report"
454
+ msgstr ""
455
+
456
+ msgid "Select the changes you want to realize in Foreman"
457
+ msgstr ""
458
+
459
+ msgid "Set the order in which values are resolved."
460
+ msgstr ""
461
+
462
+ msgid "Show Ansible inventory for hostgroups"
463
+ msgstr ""
464
+
465
+ msgid "Show Ansible inventory for hosts"
466
+ msgstr ""
467
+
468
+ msgid "Show role"
469
+ msgstr ""
470
+
471
+ msgid "Show variable"
472
+ msgstr ""
473
+
474
+ msgid "Smart Proxy to fetch from"
475
+ msgstr ""
476
+
477
+ msgid "Smart Proxy to import from"
478
+ msgstr ""
479
+
480
+ msgid "Smart proxy id is required"
481
+ msgstr ""
482
+
483
+ msgid "Specify Matchers"
484
+ msgstr ""
485
+
486
+ msgid "The order in which matchers keys are processed, first match wins.<br> You may use multiple attributes as a matcher key, for example, an order of <code>host group, environment</code> would expect a matcher such as <code>hostgroup = \"web servers\", environment = production</code>"
487
+ msgstr ""
488
+ "L'ordre en el qual es processen les claus del classificador, la primera coincidència guanya.<br> Podeu utilitzar diversos atributs com a part d'una clau del classificador, per exemple, amb un ordre de\n"
489
+ " <code>grup d'amfitrions, entorn</code> esperaria\n"
490
+ " un classificador similar a <code>hostgroup = \"web servers\", environment = production</code>"
491
+
492
+ msgid "The order in which values are resolved"
493
+ msgstr "L'ordre en què es resolen els valors"
494
+
495
+ msgid "There are no Ansible roles to play"
496
+ msgstr ""
497
+
498
+ msgid "Timeout (in minutes) when hosts should have reported."
499
+ msgstr ""
500
+
501
+ 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."
502
+ msgstr ""
503
+
504
+ msgid "Toggle"
505
+ msgstr ""
506
+
507
+ msgid "Type"
508
+ msgstr "Tipus"
509
+
510
+ msgid "Types of validation values"
511
+ msgstr "Tipus de valors de validació"
512
+
513
+ msgid "Types of variable values"
514
+ msgstr "Tipus de valors de la variable"
515
+
516
+ msgid "Unable to get roles from Ansible"
517
+ msgstr ""
518
+
519
+ msgid "Unable to get roles/variables from Ansible"
520
+ msgstr ""
521
+
522
+ msgid "Update"
523
+ msgstr "Actualitza"
524
+
525
+ msgid "Updates Ansible variable"
526
+ msgstr ""
527
+
528
+ msgid "Use this connection type by default when running Ansible playbooks. You can override this on hosts by adding a parameter \"ansible_connection\""
529
+ msgstr ""
530
+
531
+ 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"
532
+ msgstr ""
533
+
534
+ msgid "Used to enforce certain values for the parameter values"
535
+ msgstr ""
536
+
537
+ msgid "Value to use when there is no match."
538
+ msgstr ""
539
+
540
+ msgid "Variables"
541
+ msgstr "Variables"
542
+
543
+ msgid "Variable|Name"
544
+ msgstr ""
545
+
546
+ msgid "Variable|Role"
547
+ msgstr ""
548
+
549
+ msgid "When enabled the parameter is hidden in the UI"
550
+ msgstr ""
551
+
552
+ msgid "Whether to override variable or not"
553
+ msgstr ""
554
+
555
+ msgid "WinRM cert Validation"
556
+ msgstr ""