foreman_ansible 6.0.1 → 6.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/ansible_roles_controller.rb +12 -8
- data/app/controllers/ansible_variables_controller.rb +4 -0
- data/app/controllers/api/v2/ansible_inventories_controller.rb +2 -2
- data/app/controllers/api/v2/ansible_roles_controller.rb +32 -11
- data/app/controllers/api/v2/ansible_variables_controller.rb +6 -4
- data/app/controllers/foreman_ansible/concerns/import_controller_helper.rb +3 -3
- data/app/helpers/foreman_ansible/ansible_reports_helper.rb +10 -5
- data/app/helpers/foreman_ansible/ansible_roles_data_preparations.rb +95 -0
- data/app/helpers/foreman_ansible/ansible_roles_helper.rb +20 -1
- data/app/jobs/sync_roles_and_variables.rb +20 -0
- data/app/models/concerns/foreman_ansible/host_managed_extensions.rb +10 -7
- data/app/models/concerns/foreman_ansible/hostgroup_extensions.rb +19 -4
- data/app/models/foreman_ansible/ansible_provider.rb +3 -2
- data/app/models/host_ansible_role.rb +1 -0
- data/app/models/hostgroup_ansible_role.rb +1 -0
- data/app/models/setting/ansible.rb +9 -0
- data/app/services/foreman_ansible/ansible_report_importer.rb +4 -0
- data/app/services/foreman_ansible/ansible_report_scanner.rb +15 -1
- data/app/services/foreman_ansible/api_roles_importer.rb +23 -11
- data/app/services/foreman_ansible/fact_parser.rb +21 -1
- data/app/services/foreman_ansible/import_roles_and_variables_error_notification.rb +31 -0
- data/app/services/foreman_ansible/import_roles_and_variables_success_notification.rb +26 -0
- data/app/services/foreman_ansible/inventory_creator.rb +3 -7
- data/app/services/foreman_ansible/operating_system_parser.rb +8 -2
- data/app/services/foreman_ansible/roles_importer.rb +3 -2
- data/app/services/foreman_ansible/ui_roles_importer.rb +2 -2
- data/app/services/foreman_ansible/variables_importer.rb +36 -1
- data/app/views/ansible_roles/import.html.erb +10 -50
- data/app/views/ansible_variables/index.html.erb +1 -2
- data/app/views/api/v2/ansible_roles/sync.json.rabl +5 -0
- data/app/views/foreman_ansible/ansible_roles/_select_tab_content.html.erb +8 -17
- data/app/views/foreman_ansible/config_reports/_ansible.html.erb +13 -6
- data/app/views/foreman_ansible/job_templates/ansible_collections_-_install_from_galaxy.erb +28 -0
- data/app/views/foreman_ansible/job_templates/ansible_roles_-_install_from_galaxy.erb +1 -1
- data/app/views/foreman_ansible/job_templates/capsule_upgrade_-_ansible_default.erb +2 -3
- data/app/views/foreman_ansible/job_templates/convert_to_rhel.erb +44 -0
- data/config/routes.rb +5 -4
- data/db/migrate/20210120150019_add_position_to_ansible_role.rb +27 -0
- data/db/seeds.d/100_common_parameters.rb +7 -0
- data/db/seeds.d/90_notification_blueprints.rb +19 -1
- data/lib/foreman_ansible/engine.rb +1 -0
- data/lib/foreman_ansible/register.rb +5 -5
- data/lib/foreman_ansible/version.rb +1 -1
- data/locale/ca/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/ca/foreman_ansible.po +1 -1
- data/locale/cs_CZ/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/cs_CZ/foreman_ansible.po +1 -1
- data/locale/de/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/de/foreman_ansible.po +1 -1
- data/locale/en/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/en/foreman_ansible.po +1 -1
- data/locale/en_GB/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/en_GB/foreman_ansible.po +1 -1
- data/locale/es/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/es/foreman_ansible.po +1 -1
- data/locale/fr/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/fr/foreman_ansible.po +1 -1
- data/locale/gl/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/gl/foreman_ansible.po +1 -1
- data/locale/it/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/it/foreman_ansible.po +1 -1
- data/locale/ja/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/ja/foreman_ansible.po +1 -1
- data/locale/ko/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/ko/foreman_ansible.po +1 -1
- data/locale/nl_NL/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/nl_NL/foreman_ansible.po +1 -1
- data/locale/pl/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/pl/foreman_ansible.po +1 -1
- data/locale/pt_BR/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/pt_BR/foreman_ansible.po +1 -1
- data/locale/ru/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/ru/foreman_ansible.po +1 -1
- data/locale/sv_SE/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/sv_SE/foreman_ansible.po +1 -1
- data/locale/zh_CN/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/zh_CN/foreman_ansible.po +1 -1
- data/locale/zh_TW/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/zh_TW/foreman_ansible.po +1 -1
- data/package.json +11 -42
- data/test/factories/ansible_roles.rb +12 -0
- data/test/factories/host_ansible_enhancements.rb +23 -0
- data/test/foreman_ansible/helpers/ansible_roles_helper_test.rb +45 -0
- data/test/functional/ansible_variables_controller_test.rb +0 -15
- data/test/functional/api/v2/ansible_roles_controller_test.rb +23 -0
- data/test/functional/api/v2/hostgroups_controller_test.rb +5 -4
- data/test/functional/api/v2/hosts_controller_test.rb +9 -8
- data/test/functional/hosts_controller_test.rb +10 -6
- data/test/unit/ansible_provider_test.rb +1 -1
- data/test/unit/concerns/host_managed_extensions_test.rb +17 -3
- data/test/unit/concerns/hostgroup_extensions_test.rb +13 -7
- data/test/unit/host_ansible_role_test.rb +2 -1
- data/test/unit/hostgroup_ansible_role_test.rb +2 -1
- data/test/unit/ignore_roles_test.rb +43 -0
- data/test/unit/import_roles_and_variables.rb +60 -0
- data/test/unit/lib/foreman_ansible_core/ansible_runner_test.rb +3 -3
- data/test/unit/lib/foreman_ansible_core/playbook_runner_test.rb +3 -3
- data/test/unit/services/ansible_variables_importer_test.rb +13 -0
- data/test/unit/services/api_roles_importer_test.rb +22 -5
- data/test/unit/services/fact_parser_test.rb +16 -0
- data/test/unit/services/inventory_creator_test.rb +16 -8
- data/test/unit/services/ui_roles_importer_test.rb +2 -2
- data/webpack/__mocks__/foremanReact/common/helpers.js +13 -0
- data/webpack/__mocks__/foremanReact/components/common/forms/OrderableSelect/helpers.js +5 -0
- data/webpack/__mocks__/foremanReact/redux/API.js +7 -0
- data/webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariables.js +178 -0
- data/webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariables.scss +9 -0
- data/webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesActions.js +39 -0
- data/webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesConstants.js +4 -0
- data/webpack/components/AnsibleRolesAndVariables/AnsibleRolesAndVariablesHelpers.js +11 -0
- data/webpack/components/AnsibleRolesAndVariables/__test__/AnsibleRolesAndVariablesHelpers.test.js +50 -0
- data/webpack/components/AnsibleRolesAndVariables/__test__/AnsibleRolesAndVariablesImport.test.js +39 -0
- data/webpack/components/AnsibleRolesAndVariables/__test__/__snapshots__/AnsibleRolesAndVariablesImport.test.js.snap +177 -0
- data/webpack/components/AnsibleRolesAndVariables/index.js +31 -0
- data/webpack/components/AnsibleRolesSwitcher/AnsibleRolesSwitcher.js +25 -27
- data/webpack/components/AnsibleRolesSwitcher/AnsibleRolesSwitcher.scss +1 -1
- data/webpack/components/AnsibleRolesSwitcher/AnsibleRolesSwitcherActions.js +20 -14
- data/webpack/components/AnsibleRolesSwitcher/AnsibleRolesSwitcherConstants.js +1 -2
- data/webpack/components/AnsibleRolesSwitcher/AnsibleRolesSwitcherReducer.js +13 -8
- data/webpack/components/AnsibleRolesSwitcher/AnsibleRolesSwitcherSelectors.js +8 -28
- data/webpack/components/AnsibleRolesSwitcher/__fixtures__/ansibleRolesSwitcherReducer.fixtures.js +1 -0
- data/webpack/components/AnsibleRolesSwitcher/__tests__/AnsibleRolesSwitcher.test.js +6 -4
- data/webpack/components/AnsibleRolesSwitcher/__tests__/AnsibleRolesSwitcherReducer.test.js +1 -9
- data/webpack/components/AnsibleRolesSwitcher/__tests__/AnsibleRolesSwitcherSelectors.test.js +3 -16
- data/webpack/components/AnsibleRolesSwitcher/__tests__/__snapshots__/AnsibleRolesSwitcher.test.js.snap +4 -8
- data/webpack/components/AnsibleRolesSwitcher/__tests__/__snapshots__/AnsibleRolesSwitcherReducer.test.js.snap +8 -97
- data/webpack/components/AnsibleRolesSwitcher/__tests__/__snapshots__/AnsibleRolesSwitcherSelectors.test.js.snap +5 -30
- data/webpack/components/AnsibleRolesSwitcher/components/AnsiblePermissionDenied.test.js +1 -1
- data/webpack/components/AnsibleRolesSwitcher/components/AnsibleRole.js +5 -2
- data/webpack/components/AnsibleRolesSwitcher/components/AnsibleRole.test.js +1 -1
- data/webpack/components/AnsibleRolesSwitcher/components/AnsibleRoleInputs.js +43 -0
- data/webpack/components/AnsibleRolesSwitcher/components/AnsibleRoleInputs.test.js +19 -0
- data/webpack/components/AnsibleRolesSwitcher/components/AssignedRolesList.js +63 -51
- data/webpack/components/AnsibleRolesSwitcher/components/AssignedRolesList.test.js +4 -1
- data/webpack/components/AnsibleRolesSwitcher/components/AvailableRolesList.test.js +1 -1
- data/webpack/components/AnsibleRolesSwitcher/components/OrderedRolesTooltip.js +23 -0
- data/webpack/components/AnsibleRolesSwitcher/components/__snapshots__/AnsibleRoleInputs.test.js.snap +51 -0
- data/webpack/components/AnsibleRolesSwitcher/components/__snapshots__/AssignedRolesList.test.js.snap +28 -28
- data/webpack/components/AnsibleRolesSwitcher/index.js +4 -8
- data/webpack/index.js +6 -13
- metadata +60 -15
- data/app/views/ansible_variables/import.html.erb +0 -56
- data/webpack/test_setup.js +0 -12
@@ -1,8 +1,7 @@
|
|
1
1
|
<% title _("Ansible Variables") %>
|
2
2
|
<%= stylesheet 'foreman_ansible/foreman-ansible' %>
|
3
3
|
|
4
|
-
<%= title_actions
|
5
|
-
display_link_if_authorized(_('New Ansible Variable'), hash_for_new_ansible_variable_path, :class => "btn btn-default no-float"),
|
4
|
+
<%= title_actions display_link_if_authorized(_('New Ansible Variable'), hash_for_new_ansible_variable_path, :class => "btn btn-default no-float"),
|
6
5
|
documentation_button('#4.3Variables', :root_url => ansible_doc_url)
|
7
6
|
%>
|
8
7
|
|
@@ -2,22 +2,13 @@
|
|
2
2
|
<%= webpacked_plugins_css_for :foreman_ansible %>
|
3
3
|
|
4
4
|
<div class='tab-pane' id='ansible_roles'>
|
5
|
-
<% roles = f.object.is_a?(Hostgroup) ? roles_attrs(f.object.inherited_and_own_ansible_roles) : roles_attrs(f.object.all_ansible_roles) %>
|
6
5
|
<% class_name = f.object.is_a?(Hostgroup) ? 'Hostgroup' : 'Host' %>
|
7
|
-
<%=
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
:canView => User.current.can?(:view_ansible_roles)
|
16
|
-
}.to_json
|
17
|
-
) %>
|
18
|
-
<% unless request.xhr? %>
|
19
|
-
<script type="text/javascript">
|
20
|
-
tfm.initAnsibleRoleSwitcher();
|
21
|
-
</script>
|
22
|
-
<% end %>
|
6
|
+
<%= react_component('AnsibleRolesSwitcher', {
|
7
|
+
:initialAssignedRoles => role_attributes_for_roles_switcher(f.object),
|
8
|
+
:inheritedRoleIds => f.object.inherited_ansible_roles.map(&:id),
|
9
|
+
:availableRolesUrl => ui_ansible_roles_path,
|
10
|
+
:resourceId => f.object.id,
|
11
|
+
:resourceName => class_name,
|
12
|
+
:canView => User.current.can?(:view_ansible_roles)
|
13
|
+
}) %>
|
23
14
|
</div>
|
@@ -1,6 +1,11 @@
|
|
1
1
|
<%= webpacked_plugins_js_for :foreman_ansible %>
|
2
2
|
<%= stylesheet 'foreman_ansible/foreman-ansible' %>
|
3
|
+
<% if ansible_run_in_check_mode?(logs.first) %>
|
4
|
+
<%= alert :class => 'alert-info',
|
5
|
+
:header => _('Ansible check mode'),
|
6
|
+
:text => _('Notice that ansible roles run in check mode.')%>
|
3
7
|
|
8
|
+
<% end %>
|
4
9
|
<table id='report_log' class="<%= table_css_classes %>">
|
5
10
|
<thead>
|
6
11
|
<tr>
|
@@ -12,12 +17,14 @@
|
|
12
17
|
</thead>
|
13
18
|
<tbody>
|
14
19
|
<% logs.each do |log| %>
|
15
|
-
|
16
|
-
<
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
<% unless check_mode_log?(log) %>
|
21
|
+
<tr>
|
22
|
+
<td><span <%= report_tag log.level %>><%= h log.level %></span></td>
|
23
|
+
<td><%= ansible_module_name(log) %></td>
|
24
|
+
<td><%= ansible_module_args(log) %></td>
|
25
|
+
<td><%= ansible_module_message(log) %></td>
|
26
|
+
</tr>
|
27
|
+
<% end %>
|
21
28
|
<% end %>
|
22
29
|
<tr id='ntsh' <%= "style='display: none;'".html_safe if logs.size > 0%>><td colspan="3">
|
23
30
|
<%= _("Nothing to show") %>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<%#
|
2
|
+
name: Ansible Collection - Install from Galaxy
|
3
|
+
job_category: Ansible Galaxy
|
4
|
+
description_format: Install collections '%{ansible_collections_list}' from Galaxy
|
5
|
+
snippet: false
|
6
|
+
template_inputs:
|
7
|
+
- name: ansible_collections_list
|
8
|
+
required: true
|
9
|
+
input_type: user
|
10
|
+
description: "List of collections in Ansible Galaxy to install, separated by commas, e.g:
|
11
|
+
mysql,nginx\r\n\r\nThe default collections_paths is configured in /etc/ansible/ansible.cfg,
|
12
|
+
you may override it by filling the 'collections_path' input.
|
13
|
+
Click on \"Advanced\" to see it."
|
14
|
+
advanced: false
|
15
|
+
- name: collections_path
|
16
|
+
required: false
|
17
|
+
input_type: user
|
18
|
+
description: A particular directory where you want the downloaded collections to be placed.
|
19
|
+
advanced: true
|
20
|
+
provider_type: Ansible
|
21
|
+
kind: job_template
|
22
|
+
model: JobTemplate
|
23
|
+
%>
|
24
|
+
|
25
|
+
---
|
26
|
+
- hosts: all
|
27
|
+
tasks:
|
28
|
+
- command: ansible-galaxy collection install <%= input('ansible_collections_list').split(",").join(' ') %> -p <%= input('collections_path').present? ? input('collections_path') : '/etc/ansible/collections' %>
|
@@ -25,7 +25,7 @@ model: JobTemplate
|
|
25
25
|
---
|
26
26
|
- hosts: all
|
27
27
|
tasks:
|
28
|
-
- command: ansible-galaxy install {{ item }}
|
28
|
+
- command: ansible-galaxy install {{ item }} -p <%= input('location').present? ? input('location') : '/etc/ansible/roles' %>
|
29
29
|
register: out
|
30
30
|
with_items:
|
31
31
|
- <%= input('ansible_roles_list') %>
|
@@ -34,11 +34,10 @@ feature: ansible_run_capsule_upgrade
|
|
34
34
|
msg: "This playbook cannot be executed on a Satellite server. Use only on a Capsule server."
|
35
35
|
when: "'satellite' in ansible_facts.packages"
|
36
36
|
|
37
|
-
- name: Install satellite-maintain if not present
|
37
|
+
- name: Install|Update satellite-maintain if not present
|
38
38
|
package:
|
39
39
|
name: rubygem-foreman_maintain
|
40
|
-
state:
|
41
|
-
when: "'rubygem-foreman_maintain' not in ansible_facts.packages"
|
40
|
+
state: latest
|
42
41
|
|
43
42
|
- block:
|
44
43
|
<%- whitelist_option = if input('whitelist_options').present?
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<%#
|
2
|
+
name: Convert to RHEL
|
3
|
+
snippet: false
|
4
|
+
template_inputs:
|
5
|
+
- name: Activation Key
|
6
|
+
required: true
|
7
|
+
input_type: user
|
8
|
+
advanced: false
|
9
|
+
value_type: plain
|
10
|
+
resource_type: Katello::ActivationKey
|
11
|
+
hidden_value: false
|
12
|
+
- name: Restart
|
13
|
+
required: true
|
14
|
+
input_type: user
|
15
|
+
options: "yes\r\nno"
|
16
|
+
advanced: false
|
17
|
+
value_type: plain
|
18
|
+
resource_type: Katello::ActivationKey
|
19
|
+
hidden_value: false
|
20
|
+
model: JobTemplate
|
21
|
+
job_category: Convert 2 RHEL
|
22
|
+
provider_type: Ansible
|
23
|
+
kind: job_template
|
24
|
+
%>
|
25
|
+
---
|
26
|
+
- hosts: all
|
27
|
+
tasks:
|
28
|
+
- name: Install convert2rhel
|
29
|
+
ansible.builtin.package:
|
30
|
+
name: convert2rhel
|
31
|
+
state: present
|
32
|
+
- name: Prepopulate katello-ca-consumer
|
33
|
+
get_url:
|
34
|
+
url: <%= subscription_manager_configuration_url(@host) %>
|
35
|
+
dest: /usr/share/convert2rhel/subscription-manager/katello-ca-consumer-latest.noarch.rpm
|
36
|
+
- name: Start convert2rhel
|
37
|
+
command: convert2rhel -y --activationkey "<%= input('Activation Key') %>" --org "<%= @host.organization.label %>" > /root/convert2rhel.log
|
38
|
+
<%- if input('Restart') == "yes" -%>
|
39
|
+
- name: Reboot the machine
|
40
|
+
reboot:
|
41
|
+
reboot_timeout: 1800
|
42
|
+
<%- end -%>
|
43
|
+
- name: Update system facts
|
44
|
+
command: subscription-manager facts --update
|
data/config/routes.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
Rails.application.routes.draw do
|
4
|
-
namespace :api do
|
4
|
+
namespace :api, defaults: { format: 'json' } do
|
5
5
|
scope '(:apiv)',
|
6
6
|
:module => :v2,
|
7
|
-
:defaults => { :
|
8
|
-
:apiv => /
|
9
|
-
:constraints => ApiConstraints.new(:
|
7
|
+
:defaults => { apiv: 'v2' },
|
8
|
+
:apiv => /v2/,
|
9
|
+
:constraints => ApiConstraints.new(version: 2, default: true) do
|
10
10
|
constraints(:id => %r{[^\/]+}) do
|
11
11
|
resources :hosts, :only => [] do
|
12
12
|
member do
|
@@ -76,6 +76,7 @@ Rails.application.routes.draw do
|
|
76
76
|
resources :ansible_roles, :only => [:show, :index, :destroy] do
|
77
77
|
collection do
|
78
78
|
put :import
|
79
|
+
put :sync
|
79
80
|
put :obsolete
|
80
81
|
get :fetch
|
81
82
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class AddPositionToAnsibleRole < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
add_column :host_ansible_roles, :position, :integer
|
4
|
+
add_column :hostgroup_ansible_roles, :position, :integer
|
5
|
+
|
6
|
+
update_hostgroup_ansible_roles
|
7
|
+
update_host_ansible_roles
|
8
|
+
change_column_null :host_ansible_roles, :position, false
|
9
|
+
change_column_null :hostgroup_ansible_roles, :position, false
|
10
|
+
end
|
11
|
+
|
12
|
+
def update_host_ansible_roles
|
13
|
+
HostAnsibleRole.all.pluck(:host_id, :id).group_by(&:first).each do |_host_id, role_ids|
|
14
|
+
role_ids.each_with_index do |(_host_id, host_role_id), idx|
|
15
|
+
HostAnsibleRole.find(host_role_id).update(position: idx + 1)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def update_hostgroup_ansible_roles
|
21
|
+
HostgroupAnsibleRole.all.pluck(:hostgroup_id, :id).group_by(&:first).each do |_hostgroup_id, role_ids|
|
22
|
+
role_ids.each_with_index do |(_hostgroup_id, hostgroup_role_id), idx|
|
23
|
+
HostgroupAnsibleRole.find(hostgroup_role_id).update(position: idx + 1)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -13,7 +13,25 @@ blueprints = [
|
|
13
13
|
:title => N_('Job Details')
|
14
14
|
]
|
15
15
|
}
|
16
|
+
},
|
17
|
+
{
|
18
|
+
:group => N_('Roles'),
|
19
|
+
:name => 'Sync_roles_and_variables_successfully',
|
20
|
+
:message => N_('Import roles and variables has finished successfully'),
|
21
|
+
:level => 'success',
|
22
|
+
:actions => {
|
23
|
+
:links => [
|
24
|
+
:path_method => :ansible_roles_path,
|
25
|
+
:title => N_('Roles')
|
26
|
+
]
|
27
|
+
}
|
28
|
+
},
|
29
|
+
{
|
30
|
+
:group => N_('Roles'),
|
31
|
+
:name => 'Sync_roles_and_variables_failed',
|
32
|
+
:message => 'DYNAMIC',
|
33
|
+
:level => 'error'
|
16
34
|
}
|
17
|
-
]
|
18
35
|
|
36
|
+
]
|
19
37
|
blueprints.each { |blueprint| UINotifications::Seed.new(blueprint).configure }
|
@@ -25,7 +25,7 @@ Foreman::Plugin.register :foreman_ansible do
|
|
25
25
|
:resource_type => 'AnsibleRole'
|
26
26
|
permission :import_ansible_roles,
|
27
27
|
{ :ansible_roles => [:import, :confirm_import],
|
28
|
-
:'api/v2/ansible_roles' => [:import] },
|
28
|
+
:'api/v2/ansible_roles' => [:import, :sync] },
|
29
29
|
:resource_type => 'AnsibleRole'
|
30
30
|
permission :view_ansible_variables,
|
31
31
|
{
|
@@ -91,10 +91,10 @@ Foreman::Plugin.register :foreman_ansible do
|
|
91
91
|
extend_template_helpers ForemanAnsible::RendererMethods
|
92
92
|
allowed_template_helpers :insights_remediation
|
93
93
|
|
94
|
-
|
95
|
-
|
96
|
-
parameter_filter Host::Managed,
|
97
|
-
parameter_filter Hostgroup,
|
94
|
+
base_role_assignment_params = { :ansible_role_ids => [],
|
95
|
+
:ansible_roles => [] }
|
96
|
+
parameter_filter Host::Managed, base_role_assignment_params.merge(:host_ansible_roles_attributes => {})
|
97
|
+
parameter_filter Hostgroup, base_role_assignment_params.merge(:hostgroup_ansible_roles_attributes => {})
|
98
98
|
|
99
99
|
divider :top_menu, :caption => N_('Ansible'), :parent => :configure_menu
|
100
100
|
menu :top_menu, :ansible_roles,
|
Binary file
|
@@ -8,7 +8,7 @@
|
|
8
8
|
#
|
9
9
|
msgid ""
|
10
10
|
msgstr ""
|
11
|
-
"Project-Id-Version: foreman_ansible
|
11
|
+
"Project-Id-Version: foreman_ansible 3.0.2\n"
|
12
12
|
"Report-Msgid-Bugs-To: \n"
|
13
13
|
"PO-Revision-Date: 2018-11-14 21:36+0000\n"
|
14
14
|
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2019\n"
|
Binary file
|
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
msgid ""
|
11
11
|
msgstr ""
|
12
|
-
"Project-Id-Version: foreman_ansible
|
12
|
+
"Project-Id-Version: foreman_ansible 3.0.2\n"
|
13
13
|
"Report-Msgid-Bugs-To: \n"
|
14
14
|
"PO-Revision-Date: 2018-11-14 21:36+0000\n"
|
15
15
|
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2020\n"
|
Binary file
|
Binary file
|
Binary file
|
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
msgid ""
|
11
11
|
msgstr ""
|
12
|
-
"Project-Id-Version: foreman_ansible
|
12
|
+
"Project-Id-Version: foreman_ansible 3.0.2\n"
|
13
13
|
"Report-Msgid-Bugs-To: \n"
|
14
14
|
"PO-Revision-Date: 2018-11-14 21:36+0000\n"
|
15
15
|
"Last-Translator: Andi Chandler <andi@gowling.com>, 2019\n"
|
Binary file
|
Binary file
|
Binary file
|
@@ -8,7 +8,7 @@
|
|
8
8
|
#
|
9
9
|
msgid ""
|
10
10
|
msgstr ""
|
11
|
-
"Project-Id-Version: foreman_ansible
|
11
|
+
"Project-Id-Version: foreman_ansible 3.0.2\n"
|
12
12
|
"Report-Msgid-Bugs-To: \n"
|
13
13
|
"PO-Revision-Date: 2018-11-14 21:36+0000\n"
|
14
14
|
"Last-Translator: Carmela Rubiños <carmela.rubinos@gmail.com>, 2019\n"
|
Binary file
|
Binary file
|
Binary file
|