foreman_ansible 7.1.4 → 7.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/lib/foreman_ansible/version.rb +1 -1
  3. data/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/AnsibleVariableOverridesTableHelper.js +6 -2
  4. metadata +25 -63
  5. data/lib/foreman_ansible/register.rb.orig +0 -257
  6. data/locale/ca/foreman_ansible.edit.po +0 -1162
  7. data/locale/ca/foreman_ansible.po.time_stamp +0 -0
  8. data/locale/cs_CZ/foreman_ansible.edit.po +0 -1207
  9. data/locale/cs_CZ/foreman_ansible.po.time_stamp +0 -0
  10. data/locale/de/foreman_ansible.edit.po +0 -1148
  11. data/locale/de/foreman_ansible.po.time_stamp +0 -0
  12. data/locale/en/foreman_ansible.edit.po +0 -1146
  13. data/locale/en/foreman_ansible.po.time_stamp +0 -0
  14. data/locale/en_GB/foreman_ansible.edit.po +0 -1155
  15. data/locale/en_GB/foreman_ansible.po.time_stamp +0 -0
  16. data/locale/es/foreman_ansible.edit.po +0 -1148
  17. data/locale/es/foreman_ansible.po.time_stamp +0 -0
  18. data/locale/fr/foreman_ansible.edit.po +0 -1148
  19. data/locale/fr/foreman_ansible.po.time_stamp +0 -0
  20. data/locale/gl/foreman_ansible.edit.po +0 -1156
  21. data/locale/gl/foreman_ansible.po.time_stamp +0 -0
  22. data/locale/it/foreman_ansible.edit.po +0 -1148
  23. data/locale/it/foreman_ansible.po.time_stamp +0 -0
  24. data/locale/ja/foreman_ansible.edit.po +0 -1148
  25. data/locale/ja/foreman_ansible.po.time_stamp +0 -0
  26. data/locale/ko/foreman_ansible.edit.po +0 -1148
  27. data/locale/ko/foreman_ansible.po.time_stamp +0 -0
  28. data/locale/nl_NL/foreman_ansible.edit.po +0 -1168
  29. data/locale/nl_NL/foreman_ansible.po.time_stamp +0 -0
  30. data/locale/pl/foreman_ansible.edit.po +0 -1180
  31. data/locale/pl/foreman_ansible.po.time_stamp +0 -0
  32. data/locale/pt_BR/foreman_ansible.edit.po +0 -1148
  33. data/locale/pt_BR/foreman_ansible.po.time_stamp +0 -0
  34. data/locale/ru/foreman_ansible.edit.po +0 -1149
  35. data/locale/ru/foreman_ansible.po.time_stamp +0 -0
  36. data/locale/sv_SE/foreman_ansible.edit.po +0 -1180
  37. data/locale/sv_SE/foreman_ansible.po.time_stamp +0 -0
  38. data/locale/zh_CN/foreman_ansible.edit.po +0 -1148
  39. data/locale/zh_CN/foreman_ansible.po.time_stamp +0 -0
  40. data/locale/zh_TW/foreman_ansible.edit.po +0 -1148
  41. data/locale/zh_TW/foreman_ansible.po.time_stamp +0 -0
  42. data/webpack/components/AnsibleHostDetail/components/JobsTab/PreviousJobsTable.js.orig +0 -151
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c2aa2f197db82b4761ba3383644509cd7d1adf1da8d25767020e4e22bd58a59
4
- data.tar.gz: 3818951fe2e8f8cbc4fd3c4cf4253e86199f4680f3ea6bbc14603403d9f81b18
3
+ metadata.gz: 6988da0b98785b524a517950e7af3143cb869a83a4880e07930c5db47a466d8c
4
+ data.tar.gz: 6cdfa6a0f7dce34cae4b4c39004d9dea499e3f70d9b0687784c3acc45e548bf1
5
5
  SHA512:
6
- metadata.gz: c29e747b40b8ec1bdf2056058639ebbe28fd566f474addc51ddd220e7f55f47c9db5ad0c3697f284e32eeb8efabd124bb58257e20c8ef50f7196a29da4ee845a
7
- data.tar.gz: ab30288f2eb2aed966b93eb6bb7b1cbbcf3f9564bff61d9f1bde0161834f5886adf9c7d2a084494021e4b867b886b3530c78bc069212cf893b49c4d887504dc8
6
+ metadata.gz: e56067be85f66f973b8f4ebc1244f17e052539977cb022df27e0206087844d6aef590c4a5ab7d4b69265d7e2b1a21285363f01676d5e563b03749208628a2173
7
+ data.tar.gz: a92d028988fd669b325492b8fb7c01dbf8b266bb1f9e53fb7a69d461133f5d8c93114da3606369f8ab36590d6ae6d1af2453a9416236465455c98ff342a15996
@@ -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 = '7.1.4'
7
+ VERSION = '7.1.5'
8
8
  end
@@ -85,12 +85,16 @@ const validateRegexp = (variable, value) => {
85
85
  };
86
86
 
87
87
  const validateList = (variable, value) => {
88
- if (variable.validatorRule.split(',').find(item => item.trim() === value)) {
88
+ let { validatorRule } = variable;
89
+ if (typeof validatorRule !== 'string') {
90
+ validatorRule = validatorRule.toString();
91
+ }
92
+ if (validatorRule.split(',').find(item => item.trim() === value)) {
89
93
  return validationSuccess;
90
94
  }
91
95
  return {
92
96
  key: 'error',
93
- msg: sprintf(__('Invalid, expected one of: %s'), variable.validatorRule),
97
+ msg: sprintf(__('Invalid, expected one of: %s'), validatorRule),
94
98
  };
95
99
  };
96
100
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_ansible
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.4
4
+ version: 7.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Lobato Garcia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-13 00:00:00.000000000 Z
11
+ date: 2023-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: acts_as_list
@@ -42,30 +42,30 @@ dependencies:
42
42
  name: foreman_remote_execution
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 4.4.0
47
+ version: 7.2.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 4.4.0
54
+ version: 7.2.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: foreman-tasks
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 5.2.0
61
+ version: 6.0.3
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 5.2.0
68
+ version: 6.0.3
69
69
  description: Ansible integration with Foreman
70
70
  email:
71
71
  - elobatocs@gmail.com
@@ -223,85 +223,48 @@ files:
223
223
  - lib/foreman_ansible.rb
224
224
  - lib/foreman_ansible/engine.rb
225
225
  - lib/foreman_ansible/register.rb
226
- - lib/foreman_ansible/register.rb.orig
227
226
  - lib/foreman_ansible/remote_execution.rb
228
227
  - lib/foreman_ansible/version.rb
229
228
  - locale/Makefile
230
229
  - locale/action_names.rb
231
230
  - locale/ca/LC_MESSAGES/foreman_ansible.mo
232
- - locale/ca/foreman_ansible.edit.po
233
231
  - locale/ca/foreman_ansible.po
234
- - locale/ca/foreman_ansible.po.time_stamp
235
232
  - locale/cs_CZ/LC_MESSAGES/foreman_ansible.mo
236
- - locale/cs_CZ/foreman_ansible.edit.po
237
233
  - locale/cs_CZ/foreman_ansible.po
238
- - locale/cs_CZ/foreman_ansible.po.time_stamp
239
234
  - locale/de/LC_MESSAGES/foreman_ansible.mo
240
- - locale/de/foreman_ansible.edit.po
241
235
  - locale/de/foreman_ansible.po
242
- - locale/de/foreman_ansible.po.time_stamp
243
236
  - locale/en/LC_MESSAGES/foreman_ansible.mo
244
- - locale/en/foreman_ansible.edit.po
245
237
  - locale/en/foreman_ansible.po
246
- - locale/en/foreman_ansible.po.time_stamp
247
238
  - locale/en_GB/LC_MESSAGES/foreman_ansible.mo
248
- - locale/en_GB/foreman_ansible.edit.po
249
239
  - locale/en_GB/foreman_ansible.po
250
- - locale/en_GB/foreman_ansible.po.time_stamp
251
240
  - locale/es/LC_MESSAGES/foreman_ansible.mo
252
- - locale/es/foreman_ansible.edit.po
253
241
  - locale/es/foreman_ansible.po
254
- - locale/es/foreman_ansible.po.time_stamp
255
242
  - locale/foreman_ansible.pot
256
243
  - locale/fr/LC_MESSAGES/foreman_ansible.mo
257
- - locale/fr/foreman_ansible.edit.po
258
244
  - locale/fr/foreman_ansible.po
259
- - locale/fr/foreman_ansible.po.time_stamp
260
245
  - locale/gemspec.rb
261
246
  - locale/gl/LC_MESSAGES/foreman_ansible.mo
262
- - locale/gl/foreman_ansible.edit.po
263
247
  - locale/gl/foreman_ansible.po
264
- - locale/gl/foreman_ansible.po.time_stamp
265
248
  - locale/it/LC_MESSAGES/foreman_ansible.mo
266
- - locale/it/foreman_ansible.edit.po
267
249
  - locale/it/foreman_ansible.po
268
- - locale/it/foreman_ansible.po.time_stamp
269
250
  - locale/ja/LC_MESSAGES/foreman_ansible.mo
270
- - locale/ja/foreman_ansible.edit.po
271
251
  - locale/ja/foreman_ansible.po
272
- - locale/ja/foreman_ansible.po.time_stamp
273
252
  - locale/ko/LC_MESSAGES/foreman_ansible.mo
274
- - locale/ko/foreman_ansible.edit.po
275
253
  - locale/ko/foreman_ansible.po
276
- - locale/ko/foreman_ansible.po.time_stamp
277
254
  - locale/nl_NL/LC_MESSAGES/foreman_ansible.mo
278
- - locale/nl_NL/foreman_ansible.edit.po
279
255
  - locale/nl_NL/foreman_ansible.po
280
- - locale/nl_NL/foreman_ansible.po.time_stamp
281
256
  - locale/pl/LC_MESSAGES/foreman_ansible.mo
282
- - locale/pl/foreman_ansible.edit.po
283
257
  - locale/pl/foreman_ansible.po
284
- - locale/pl/foreman_ansible.po.time_stamp
285
258
  - locale/pt_BR/LC_MESSAGES/foreman_ansible.mo
286
- - locale/pt_BR/foreman_ansible.edit.po
287
259
  - locale/pt_BR/foreman_ansible.po
288
- - locale/pt_BR/foreman_ansible.po.time_stamp
289
260
  - locale/ru/LC_MESSAGES/foreman_ansible.mo
290
- - locale/ru/foreman_ansible.edit.po
291
261
  - locale/ru/foreman_ansible.po
292
- - locale/ru/foreman_ansible.po.time_stamp
293
262
  - locale/sv_SE/LC_MESSAGES/foreman_ansible.mo
294
- - locale/sv_SE/foreman_ansible.edit.po
295
263
  - locale/sv_SE/foreman_ansible.po
296
- - locale/sv_SE/foreman_ansible.po.time_stamp
297
264
  - locale/zh_CN/LC_MESSAGES/foreman_ansible.mo
298
- - locale/zh_CN/foreman_ansible.edit.po
299
265
  - locale/zh_CN/foreman_ansible.po
300
- - locale/zh_CN/foreman_ansible.po.time_stamp
301
266
  - locale/zh_TW/LC_MESSAGES/foreman_ansible.mo
302
- - locale/zh_TW/foreman_ansible.edit.po
303
267
  - locale/zh_TW/foreman_ansible.po
304
- - locale/zh_TW/foreman_ansible.po.time_stamp
305
268
  - package.json
306
269
  - test/factories/ansible_proxy.rb
307
270
  - test/factories/ansible_roles.rb
@@ -375,7 +338,6 @@ files:
375
338
  - webpack/components/AnsibleHostDetail/components/JobsTab/NewRecurringJobModal.js
376
339
  - webpack/components/AnsibleHostDetail/components/JobsTab/NewRecurringJobModal.scss
377
340
  - webpack/components/AnsibleHostDetail/components/JobsTab/PreviousJobsTable.js
378
- - webpack/components/AnsibleHostDetail/components/JobsTab/PreviousJobsTable.js.orig
379
341
  - webpack/components/AnsibleHostDetail/components/JobsTab/RecurringJobsTable.js
380
342
  - webpack/components/AnsibleHostDetail/components/JobsTab/__test__/JobsTab.fixtures.js
381
343
  - webpack/components/AnsibleHostDetail/components/JobsTab/__test__/JobsTab.test.js
@@ -496,7 +458,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
496
458
  - !ruby/object:Gem::Version
497
459
  version: '0'
498
460
  requirements: []
499
- rubygems_version: 3.1.6
461
+ rubygems_version: 3.1.4
500
462
  signing_key:
501
463
  specification_version: 4
502
464
  summary: Ansible integration with Foreman (theforeman.org)
@@ -507,29 +469,35 @@ test_files:
507
469
  - test/factories/host_ansible_enhancements.rb
508
470
  - test/fixtures/insights_playbook.yaml
509
471
  - test/fixtures/playbooks_example_output.json
510
- - test/fixtures/report.json
511
472
  - test/fixtures/sample_facts.json
512
473
  - test/fixtures/sample_playbooks.json
474
+ - test/fixtures/report.json
513
475
  - test/foreman_ansible/helpers/ansible_roles_helper_test.rb
514
- - test/functional/api/v2/ansible_inventories_controller_test.rb
476
+ - test/functional/ansible_roles_controller_test.rb
477
+ - test/functional/ansible_variables_controller_test.rb
515
478
  - test/functional/api/v2/ansible_playbooks_controller_test.rb
516
479
  - test/functional/api/v2/ansible_roles_controller_test.rb
517
480
  - test/functional/api/v2/ansible_variables_controller_test.rb
481
+ - test/functional/api/v2/ansible_inventories_controller_test.rb
518
482
  - test/functional/api/v2/hostgroups_controller_test.rb
519
483
  - test/functional/api/v2/hosts_controller_test.rb
520
- - test/functional/ansible_roles_controller_test.rb
521
- - test/functional/ansible_variables_controller_test.rb
522
484
  - test/functional/hosts_controller_test.rb
523
485
  - test/functional/ui_ansible_roles_controller_test.rb
524
486
  - test/graphql/mutations/hosts/assign_ansible_roles_mutation_test.rb
525
487
  - test/graphql/queries/ansible_roles_query_test.rb
526
488
  - test/graphql/queries/host_ansible_roles_query_test.rb
527
- - test/unit/actions/run_ansible_job_test.rb
528
- - test/unit/actions/run_proxy_ansible_command_test.rb
489
+ - test/test_plugin_helper.rb
490
+ - test/unit/ansible_role_test.rb
491
+ - test/unit/ansible_variable_test.rb
529
492
  - test/unit/concerns/config_reports_extensions_test.rb
530
493
  - test/unit/concerns/host_managed_extensions_test.rb
531
494
  - test/unit/concerns/hostgroup_extensions_test.rb
532
495
  - test/unit/helpers/ansible_reports_helper_test.rb
496
+ - test/unit/host_ansible_role_test.rb
497
+ - test/unit/hostgroup_ansible_role_test.rb
498
+ - test/unit/ignore_roles_test.rb
499
+ - test/unit/import_playbooks_test.rb
500
+ - test/unit/import_roles_and_variables.rb
533
501
  - test/unit/lib/proxy_api/ansible_test.rb
534
502
  - test/unit/services/ansible_report_importer_test.rb
535
503
  - test/unit/services/ansible_variables_importer_test.rb
@@ -539,12 +507,6 @@ test_files:
539
507
  - test/unit/services/override_resolver_test.rb
540
508
  - test/unit/services/roles_importer_test.rb
541
509
  - test/unit/services/ui_roles_importer_test.rb
510
+ - test/unit/actions/run_ansible_job_test.rb
511
+ - test/unit/actions/run_proxy_ansible_command_test.rb
542
512
  - test/unit/ansible_provider_test.rb
543
- - test/unit/ansible_role_test.rb
544
- - test/unit/ansible_variable_test.rb
545
- - test/unit/host_ansible_role_test.rb
546
- - test/unit/hostgroup_ansible_role_test.rb
547
- - test/unit/ignore_roles_test.rb
548
- - test/unit/import_playbooks_test.rb
549
- - test/unit/import_roles_and_variables.rb
550
- - test/test_plugin_helper.rb
@@ -1,257 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Foreman::Plugin.register :foreman_ansible do
4
- requires_foreman '>= 3.3'
5
-
6
- settings do
7
- category :ansible, N_('Ansible') do
8
- setting 'ansible_ssh_private_key_file',
9
- type: :string,
10
- description: N_('Use this to supply a path to an SSH Private Key '\
11
- 'that Ansible will use in lieu of a password '\
12
- 'Override with "ansible_ssh_private_key_file" '\
13
- 'host parameter'),
14
- default: '',
15
- full_name: N_('Private Key Path')
16
- setting 'ansible_connection',
17
- type: :string,
18
- description: N_('Use this connection type by default when running '\
19
- 'Ansible playbooks. You can override this on hosts by '\
20
- 'adding a parameter "ansible_connection"'),
21
- default: 'ssh',
22
- full_name: N_('Connection type')
23
- setting 'ansible_winrm_server_cert_validation',
24
- type: :string,
25
- description: N_('Enable/disable WinRM server certificate '\
26
- 'validation when running Ansible playbooks. You can override '\
27
- 'this on hosts by adding a parameter '\
28
- '"ansible_winrm_server_cert_validation"'),
29
- default: 'validate',
30
- full_name: N_('WinRM cert Validation')
31
- setting 'ansible_verbosity',
32
- type: :integer,
33
- description: N_('Foreman will add this level of verbosity for '\
34
- 'additional debugging output when running Ansible playbooks.'),
35
- default: '0',
36
- full_name: N_('Default verbosity level'),
37
- value: nil,
38
- collection: proc {
39
- { '0' => N_('Disabled'),
40
- '1' => N_('Level 1 (-v)'),
41
- '2' => N_('Level 2 (-vv)'),
42
- '3' => N_('Level 3 (-vvv)'),
43
- '4' => N_('Level 4 (-vvvv)') }
44
- }
45
- setting 'ansible_post_provision_timeout',
46
- type: :integer,
47
- description: N_('Timeout (in seconds) to set when Foreman will trigger a '\
48
- 'play Ansible roles task after a host is fully provisioned. '\
49
- 'Set this to the maximum time you expect a host to take '\
50
- 'until it is ready after a reboot.'),
51
- default: '360',
52
- full_name: N_('Post-provision timeout')
53
- setting 'ansible_interval',
54
- type: :integer,
55
- description: N_('Timeout (in minutes) when hosts should have reported.'),
56
- default: '30',
57
- full_name: N_('Ansible report timeout')
58
- setting 'ansible_out_of_sync_disabled',
59
- type: :boolean,
60
- description: format(N_('Disable host configuration status turning to out of'\
61
- ' sync for %{cfgmgmt} after report does not arrive within'\
62
- ' configured interval'), :cfgmgmt => 'Ansible'),
63
- default: false,
64
- full_name: format(N_('%{cfgmgmt} out of sync disabled'), :cfgmgmt => 'Ansible')
65
- setting 'ansible_inventory_template',
66
- type: :string,
67
- description: N_('Foreman will use this template to schedule the report '\
68
- 'with Ansible inventory'),
69
- default: 'Ansible - Ansible Inventory',
70
- full_name: N_('Default Ansible inventory report template')
71
- setting 'ansible_roles_to_ignore',
72
- type: :array,
73
- description: N_('Those roles will be excluded when importing roles from smart proxy, '\
74
- 'The expected input is comma separated values and you can use * wildcard metacharacters'\
75
- 'For example: foo*, *b*,*bar'),
76
- default: [],
77
- full_name: N_('Ansible roles to ignore')
78
- setting 'foreman_ansible_proxy_batch_size',
79
- type: :integer,
80
- description: N_('Number of tasks which should be sent to the smart proxy in one request, '\
81
- 'if foreman_tasks_proxy_batch_trigger is enabled. '\
82
- 'If set, overrides foreman_tasks_proxy_batch_size setting for Ansible jobs.'),
83
- default: nil,
84
- full_name: N_('Proxy tasks batch size for Ansible')
85
- end
86
- end
87
-
88
- security_block :foreman_ansible do
89
- permission :play_roles_on_host,
90
- { :hosts => [:play_roles, :multiple_play_roles],
91
- :'api/v2/hosts' => [:play_roles,
92
- :multiple_play_roles] },
93
- :resource_type => 'Host'
94
- permission :play_roles_on_hostgroup,
95
- { :hostgroups => [:play_roles],
96
- :'api/v2/hostgroups' => [:play_roles,
97
- :multiple_play_roles] },
98
- :resource_type => 'Hostgroup'
99
- permission :view_ansible_roles,
100
- { :ansible_roles => [:index, :auto_complete_search],
101
- :'api/v2/ansible_roles' => [:index, :show, :fetch],
102
- :ui_ansible_roles => [:index] },
103
- :resource_type => 'AnsibleRole'
104
- permission :destroy_ansible_roles,
105
- { :ansible_roles => [:destroy],
106
- :'api/v2/ansible_roles' => [:destroy, :obsolete] },
107
- :resource_type => 'AnsibleRole'
108
- permission :import_ansible_roles,
109
- { :ansible_roles => [:import, :confirm_import],
110
- :'api/v2/ansible_roles' => [:import, :sync] },
111
- :resource_type => 'AnsibleRole'
112
- permission :view_ansible_variables,
113
- {
114
- :lookup_values => [:index],
115
- :ansible_variables => [:index, :auto_complete_search],
116
- :'api/v2/ansible_variables' => [:index, :show]
117
- },
118
- :resource_type => 'AnsibleVariable'
119
- permission :edit_ansible_variables,
120
- { :lookup_values => [:update],
121
- :ansible_variables => [:edit, :update],
122
- :'api/v2/ansible_variables' => [:update],
123
- :'api/v2/ansible_override_values' => [:create, :destroy] },
124
- :resource_type => 'AnsibleVariable'
125
- permission :destroy_ansible_variables,
126
- {
127
- :lookup_values => [:destroy],
128
- :ansible_variables => [:destroy],
129
- :'api/v2/ansible_variables' => [:destroy, :obsolete]
130
- },
131
- :resource_type => 'AnsibleVariable'
132
- permission :create_ansible_variables,
133
- {
134
- :lookup_values => [:create],
135
- :ansible_variables => [:new, :create],
136
- :'api/v2/ansible_variables' => [:create]
137
- },
138
- :resource_type => 'AnsibleVariable'
139
- permission :import_ansible_variables,
140
- {
141
- :ansible_variables => [:import, :confirm_import],
142
- :'api/v2/ansible_variables' => [:import]
143
- },
144
- :resource_type => 'AnsibleVariable'
145
- permission :view_hosts,
146
- { :'api/v2/hosts' => [:ansible_roles],
147
- :'api/v2/ansible_inventories' => [:hosts] },
148
- :resource_type => 'Host'
149
- permission :view_hostgroups,
150
- { :'api/v2/hostgroups' => [:ansible_roles],
151
- :'api/v2/ansible_inventories' => [:hostgroups] },
152
- :resource_type => 'Hostgroup'
153
- permission :edit_hosts,
154
- { :'api/v2/hosts' => [:assign_ansible_roles] },
155
- :resource_type => 'Host'
156
- permission :edit_hostgroups,
157
- { :'api/v2/hostgroups' => [:assign_ansible_roles] },
158
- :resource_type => 'Hostgroup'
159
- permission :generate_ansible_inventory,
160
- { :'api/v2/ansible_inventories' => [:schedule] }
161
- permission :import_ansible_playbooks,
162
- { :'api/v2/ansible_playbooks' => [:sync, :fetch] }
163
- end
164
-
165
- role 'Ansible Roles Manager',
166
- [:play_roles_on_host, :play_roles_on_hostgroup,
167
- :create_job_invocations, :view_job_templates, # to allow the play_roles
168
- :create_template_invocations, :view_smart_proxies, # ...
169
- :view_ansible_roles, :destroy_ansible_roles,
170
- :import_ansible_roles, :view_ansible_variables,
171
- :create_ansible_variables, :import_ansible_variables,
172
- :edit_ansible_variables, :destroy_ansible_variables, :import_ansible_playbooks]
173
-
174
- role 'Ansible Tower Inventory Reader',
175
- [:view_hosts, :view_hostgroups, :view_facts, :generate_report_templates, :generate_ansible_inventory,
176
- :view_report_templates],
177
- 'Permissions required for the user which is used by Ansible Tower Dynamic Inventory Item'
178
-
179
- add_all_permissions_to_default_roles
180
- extend_template_helpers ForemanAnsible::RendererMethods
181
- allowed_template_helpers :insights_remediation
182
-
183
- base_role_assignment_params = { :ansible_role_ids => [],
184
- :ansible_roles => [] }
185
- parameter_filter Host::Managed, base_role_assignment_params.merge(:host_ansible_roles_attributes => {})
186
- parameter_filter Hostgroup, base_role_assignment_params.merge(:hostgroup_ansible_roles_attributes => {})
187
-
188
- register_global_js_file 'global'
189
-
190
- extend_graphql_type :type => '::Types::Host' do
191
- field :all_ansible_roles, ::Types::InheritedAnsibleRole.connection_type, :null => true, :method => :present_all_ansible_roles
192
- field :own_ansible_roles, ::Types::AnsibleRole.connection_type, :null => true
193
- field :available_ansible_roles, ::Types::AnsibleRole.connection_type, :null => true
194
- field :ansible_variables_with_overrides, Types::OverridenAnsibleVariable.connection_type, :null => false
195
-
196
- def present_all_ansible_roles
197
- inherited_ansible_roles = object.inherited_ansible_roles.map { |role| ::Presenters::AnsibleRolePresenter.new(role, true) }
198
- ansible_roles = object.ansible_roles.map { |role| ::Presenters::AnsibleRolePresenter.new(role, false) }
199
- (inherited_ansible_roles + ansible_roles).uniq
200
- end
201
-
202
- def ansible_variables_with_overrides
203
- resolver = ::ForemanAnsible::OverrideResolver.new(object)
204
- AnsibleVariable.where(:ansible_role_id => object.all_ansible_roles.pluck(:id), :override => true).map { |variable| ::Presenters::OverridenAnsibleVariablePresenter.new variable, resolver }
205
- end
206
- end
207
-
208
- register_graphql_query_field :ansible_roles, '::Types::AnsibleRole', :collection_field
209
- register_graphql_mutation_field :assign_ansible_roles, '::Mutations::Hosts::AssignAnsibleRoles'
210
- register_graphql_mutation_field :delete_ansible_variable_override, ::Mutations::AnsibleVariableOverrides::Delete
211
- register_graphql_mutation_field :update_ansible_variable_override, ::Mutations::AnsibleVariableOverrides::Update
212
- register_graphql_mutation_field :create_ansible_variable_override, ::Mutations::AnsibleVariableOverrides::Create
213
-
214
- divider :top_menu, :caption => N_('Ansible'), :parent => :configure_menu
215
- menu :top_menu, :ansible_roles,
216
- :caption => N_('Roles'),
217
- :url_hash => { :controller => :ansible_roles, :action => :index },
218
- :parent => :configure_menu
219
- menu :top_menu, :ansible_variables,
220
- :caption => N_('Variables'),
221
- :url_hash => { :controller => :ansible_variables, :action => :index },
222
- :parent => :configure_menu
223
-
224
- apipie_documented_controllers [
225
- "#{ForemanAnsible::Engine.root}/app/controllers/api/v2/*.rb"
226
- ]
227
- ApipieDSL.configuration.dsl_classes_matchers += [
228
- "#{ForemanAnsible::Engine.root}/app/models/*.rb",
229
- "#{ForemanAnsible::Engine.root}/app/services/foreman_ansible/*.rb"
230
- ]
231
-
232
- register_info_provider ForemanAnsible::AnsibleInfo
233
-
234
- # For backwards compatiblity with 1.17
235
- if respond_to?(:register_report_scanner)
236
- register_report_scanner ForemanAnsible::AnsibleReportScanner
237
- register_report_origin 'Ansible', 'ConfigReport'
238
- end
239
-
240
- <<<<<<< HEAD
241
- describe_host do
242
- multiple_actions_provider :ansible_hosts_multiple_actions
243
- =======
244
- extend_page('smart_proxies/show') do |context|
245
- context.add_pagelet :smart_proxy_title_actions,
246
- :name => _('Update Smart Proxy'),
247
- :partial => 'foreman/smart_proxies/update_smart_proxy',
248
- :onlyif => ->(proxy, view) { view.can_update_proxy?(proxy) }
249
- end
250
- extend_page('smart_proxies/index') do |context|
251
- context.add_pagelet :smart_proxy_title_actions,
252
- :name => _('Update Smart Proxy'),
253
- :partial => 'foreman/smart_proxies/update_smart_proxy',
254
- :onlyif => ->(proxy, view) { view.can_update_proxy?(proxy) }
255
- >>>>>>> a707dab (Fixes #35143 - Add a smart proxy update button)
256
- end
257
- end