foreman_ansible 10.0.0 → 10.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/app/graphql/types/ansible_variable_override.rb +1 -1
  3. data/lib/foreman_ansible/register.rb +1 -1
  4. data/lib/foreman_ansible/version.rb +1 -1
  5. data/locale/ca/foreman_ansible.edit.po +1162 -0
  6. data/locale/ca/foreman_ansible.po.time_stamp +0 -0
  7. data/locale/cs_CZ/foreman_ansible.edit.po +1207 -0
  8. data/locale/cs_CZ/foreman_ansible.po.time_stamp +0 -0
  9. data/locale/de/foreman_ansible.edit.po +1148 -0
  10. data/locale/de/foreman_ansible.po.time_stamp +0 -0
  11. data/locale/en/foreman_ansible.edit.po +1146 -0
  12. data/locale/en/foreman_ansible.po.time_stamp +0 -0
  13. data/locale/en_GB/foreman_ansible.edit.po +1155 -0
  14. data/locale/en_GB/foreman_ansible.po.time_stamp +0 -0
  15. data/locale/es/foreman_ansible.edit.po +1148 -0
  16. data/locale/es/foreman_ansible.po.time_stamp +0 -0
  17. data/locale/fr/foreman_ansible.edit.po +1148 -0
  18. data/locale/fr/foreman_ansible.po.time_stamp +0 -0
  19. data/locale/gl/foreman_ansible.edit.po +1156 -0
  20. data/locale/gl/foreman_ansible.po.time_stamp +0 -0
  21. data/locale/it/foreman_ansible.edit.po +1148 -0
  22. data/locale/it/foreman_ansible.po.time_stamp +0 -0
  23. data/locale/ja/foreman_ansible.edit.po +1148 -0
  24. data/locale/ja/foreman_ansible.po.time_stamp +0 -0
  25. data/locale/ko/foreman_ansible.edit.po +1148 -0
  26. data/locale/ko/foreman_ansible.po.time_stamp +0 -0
  27. data/locale/nl_NL/foreman_ansible.edit.po +1168 -0
  28. data/locale/nl_NL/foreman_ansible.po.time_stamp +0 -0
  29. data/locale/pl/foreman_ansible.edit.po +1180 -0
  30. data/locale/pl/foreman_ansible.po.time_stamp +0 -0
  31. data/locale/pt_BR/foreman_ansible.edit.po +1148 -0
  32. data/locale/pt_BR/foreman_ansible.po.time_stamp +0 -0
  33. data/locale/ru/foreman_ansible.edit.po +1149 -0
  34. data/locale/ru/foreman_ansible.po.time_stamp +0 -0
  35. data/locale/sv_SE/foreman_ansible.edit.po +1180 -0
  36. data/locale/sv_SE/foreman_ansible.po.time_stamp +0 -0
  37. data/locale/zh_CN/foreman_ansible.edit.po +1148 -0
  38. data/locale/zh_CN/foreman_ansible.po.time_stamp +0 -0
  39. data/locale/zh_TW/foreman_ansible.edit.po +1148 -0
  40. data/locale/zh_TW/foreman_ansible.po.time_stamp +0 -0
  41. data/test/graphql/mutations/hosts/assign_ansible_roles_mutation_test.rb +7 -7
  42. data/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/AnsibleVariableOverridesTableHelper.js +1 -0
  43. data/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js +4 -2
  44. data/webpack/components/AnsibleHostDetail/components/JobsTab/PreviousJobsTable.js.orig +151 -0
  45. metadata +51 -14
File without changes
@@ -3,15 +3,15 @@ require 'test_plugin_helper'
3
3
  module Mutations
4
4
  module Hosts
5
5
  class CreateMutationTest < GraphQLQueryTestCase
6
- let(:tax_location) { FactoryBot.create(:location) }
6
+ let(:tax_location) { as_admin { FactoryBot.create(:location) } }
7
7
  let(:location_id) { Foreman::GlobalId.for(tax_location) }
8
- let(:organization) { FactoryBot.create(:organization) }
8
+ let(:organization) { as_admin { FactoryBot.create(:organization) } }
9
9
  let(:organization_id) { Foreman::GlobalId.for(organization) }
10
10
 
11
- let(:role1) { FactoryBot.create(:ansible_role) }
12
- let(:role2) { FactoryBot.create(:ansible_role) }
13
- let(:role3) { FactoryBot.create(:ansible_role) }
14
- let(:host) { FactoryBot.create(:host, :ansible_roles => [role1, role2, role3], :organization => organization, :location => tax_location) }
11
+ let(:role1) { as_admin { FactoryBot.create(:ansible_role) } }
12
+ let(:role2) { as_admin { FactoryBot.create(:ansible_role) } }
13
+ let(:role3) { as_admin { FactoryBot.create(:ansible_role) } }
14
+ let(:host) { as_admin { FactoryBot.create(:host, :ansible_roles => [role1, role2, role3], :organization => organization, :location => tax_location) } }
15
15
 
16
16
  let(:variables) { { id: Foreman::GlobalId.for(host), ansibleRoleIds: [role3.id, role2.id, role1.id] } }
17
17
  let(:query) do
@@ -37,7 +37,7 @@ module Mutations
37
37
  end
38
38
 
39
39
  context 'with admin permissions' do
40
- let(:context_user) { FactoryBot.create(:user, :admin) }
40
+ let(:context_user) { as_admin { FactoryBot.create(:user, :admin) } }
41
41
  let(:data) { result['data']['assignAnsibleRoles']['host'] }
42
42
 
43
43
  it 'reorderes ansible roles' do
@@ -23,6 +23,7 @@ export const formatValue = variable => {
23
23
  case 'yaml':
24
24
  case 'hash':
25
25
  case 'array':
26
+ case 'json':
26
27
  return JSON.stringify(value);
27
28
  default:
28
29
  return value;
@@ -17,11 +17,12 @@ const EditableValue = props => {
17
17
 
18
18
  const type = props.variable.parameterType;
19
19
 
20
- if (type === 'array' || type === 'hash') {
20
+ if (['json', 'yaml', 'array', 'hash'].includes(type)) {
21
21
  return (
22
22
  <TextAreaField
23
+ aria-label="Edit override field"
23
24
  onChange={props.onChange}
24
- value={props.value}
25
+ value={JSON.stringify(props.value)}
25
26
  validation={props.validation}
26
27
  isDisabled={props.working}
27
28
  />
@@ -31,6 +32,7 @@ const EditableValue = props => {
31
32
  if (type === 'boolean') {
32
33
  return (
33
34
  <SelectField
35
+ aria-label="Edit override field"
34
36
  selectItems={[
35
37
  { id: 'trueSelectOpt', value: true, name: __('true') },
36
38
  { id: 'falseSelectOpt', value: false, name: __('false') },
@@ -0,0 +1,151 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { translate as __ } from 'foremanReact/common/I18n';
4
+ import { usePaginationOptions } from 'foremanReact/components/Pagination/PaginationHooks';
5
+
6
+ import RelativeDateTime from 'foremanReact/components/common/dates/RelativeDateTime';
7
+
8
+ import {
9
+ TableComposable,
10
+ Thead,
11
+ Tbody,
12
+ Tr,
13
+ Th,
14
+ Td,
15
+ } from '@patternfly/react-table';
16
+ import { Flex, FlexItem, Pagination } from '@patternfly/react-core';
17
+
18
+ import { decodeId } from '../../../../globalIdHelper';
19
+ import withLoading from '../../../withLoading';
20
+ <<<<<<< HEAD
21
+ import { readableCron } from './JobsTabHelper';
22
+ import {
23
+ preparePerPageOptions,
24
+ refreshPage,
25
+ } from '../../../../helpers/paginationHelper';
26
+ =======
27
+ import { readableCron, readablePurpose } from './JobsTabHelper';
28
+ >>>>>>> 5b01704 (Fixes #34458 - Show Hostgroup jobs on the Host Detail page)
29
+
30
+ const PreviousJobsTable = ({ history, totalCount, jobs, pagination }) => {
31
+ const columns = [
32
+ __('Description'),
33
+ __('Result'),
34
+ __('State'),
35
+ __('Executed at'),
36
+ __('Schedule'),
37
+ ];
38
+
39
+ const handlePerPageSelected = (event, perPage) => {
40
+ refreshPage(history, { page: 1, perPage });
41
+ };
42
+
43
+ const handlePageSelected = (event, page) => {
44
+ refreshPage(history, { ...pagination, page });
45
+ };
46
+
47
+ const perPageOptions = preparePerPageOptions(usePaginationOptions());
48
+
49
+ return (
50
+ <React.Fragment>
51
+ <h3>{__('Previously executed jobs')}</h3>
52
+ <<<<<<< HEAD
53
+ <Flex className="pf-u-pt-md">
54
+ =======
55
+ <Flex direction={{ default: 'column' }} className="pf-u-pt-md">
56
+ <FlexItem align={{ default: 'alignRight' }}>
57
+ <Pagination updateParamsByUrl itemCount={totalCount} variant="top" />
58
+ </FlexItem>
59
+ <FlexItem>
60
+ <TableComposable variant="compact">
61
+ <Thead>
62
+ <Tr>
63
+ {columns.map(col => (
64
+ <Th key={col}>{col}</Th>
65
+ ))}
66
+ </Tr>
67
+ </Thead>
68
+ <Tbody>
69
+ {jobs.map(job => (
70
+ <Tr key={job.id}>
71
+ <Td>
72
+ <a
73
+ onClick={() =>
74
+ window.tfm.nav.pushUrl(
75
+ `/job_invocations/${decodeId(job.id)}`
76
+ )
77
+ }
78
+ >
79
+ {job.description}
80
+ </a>
81
+ &nbsp;
82
+ {readablePurpose(job.recurringLogic.purpose)}
83
+ </Td>
84
+ <Td>{job.task.result}</Td>
85
+ <Td>{job.task.state}</Td>
86
+ <Td>
87
+ <RelativeDateTime date={job.startAt} />
88
+ </Td>
89
+ <Td>{readableCron(job.recurringLogic.cronLine)}</Td>
90
+ </Tr>
91
+ ))}
92
+ </Tbody>
93
+ </TableComposable>
94
+ </FlexItem>
95
+ >>>>>>> 5b01704 (Fixes #34458 - Show Hostgroup jobs on the Host Detail page)
96
+ <FlexItem align={{ default: 'alignRight' }}>
97
+ <Pagination
98
+ itemCount={totalCount}
99
+ page={pagination.page}
100
+ perPage={pagination.perPage}
101
+ onSetPage={handlePageSelected}
102
+ onPerPageSelect={handlePerPageSelected}
103
+ perPageOptions={perPageOptions}
104
+ variant="top"
105
+ />
106
+ </FlexItem>
107
+ </Flex>
108
+ <TableComposable variant="compact">
109
+ <Thead>
110
+ <Tr>
111
+ {columns.map(col => (
112
+ <Th key={col}>{col}</Th>
113
+ ))}
114
+ </Tr>
115
+ </Thead>
116
+ <Tbody>
117
+ {jobs.map(job => (
118
+ <Tr key={job.id}>
119
+ <Td>
120
+ <a
121
+ onClick={() =>
122
+ window.tfm.nav.pushUrl(
123
+ `/job_invocations/${decodeId(job.id)}`
124
+ )
125
+ }
126
+ >
127
+ {job.description}
128
+ </a>
129
+ </Td>
130
+ <Td>{job.task.result}</Td>
131
+ <Td>{job.task.state}</Td>
132
+ <Td>
133
+ <RelativeDateTime date={job.startAt} />
134
+ </Td>
135
+ <Td>{readableCron(job.recurringLogic.cronLine)}</Td>
136
+ </Tr>
137
+ ))}
138
+ </Tbody>
139
+ </TableComposable>
140
+ </React.Fragment>
141
+ );
142
+ };
143
+
144
+ PreviousJobsTable.propTypes = {
145
+ jobs: PropTypes.array.isRequired,
146
+ history: PropTypes.object.isRequired,
147
+ totalCount: PropTypes.number.isRequired,
148
+ pagination: PropTypes.object.isRequired,
149
+ };
150
+
151
+ export default withLoading(PreviousJobsTable);
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: 10.0.0
4
+ version: 10.0.1
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-19 00:00:00.000000000 Z
11
+ date: 2022-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: acts_as_list
@@ -227,43 +227,79 @@ files:
227
227
  - locale/Makefile
228
228
  - locale/action_names.rb
229
229
  - locale/ca/LC_MESSAGES/foreman_ansible.mo
230
+ - locale/ca/foreman_ansible.edit.po
230
231
  - locale/ca/foreman_ansible.po
232
+ - locale/ca/foreman_ansible.po.time_stamp
231
233
  - locale/cs_CZ/LC_MESSAGES/foreman_ansible.mo
234
+ - locale/cs_CZ/foreman_ansible.edit.po
232
235
  - locale/cs_CZ/foreman_ansible.po
236
+ - locale/cs_CZ/foreman_ansible.po.time_stamp
233
237
  - locale/de/LC_MESSAGES/foreman_ansible.mo
238
+ - locale/de/foreman_ansible.edit.po
234
239
  - locale/de/foreman_ansible.po
240
+ - locale/de/foreman_ansible.po.time_stamp
235
241
  - locale/en/LC_MESSAGES/foreman_ansible.mo
242
+ - locale/en/foreman_ansible.edit.po
236
243
  - locale/en/foreman_ansible.po
244
+ - locale/en/foreman_ansible.po.time_stamp
237
245
  - locale/en_GB/LC_MESSAGES/foreman_ansible.mo
246
+ - locale/en_GB/foreman_ansible.edit.po
238
247
  - locale/en_GB/foreman_ansible.po
248
+ - locale/en_GB/foreman_ansible.po.time_stamp
239
249
  - locale/es/LC_MESSAGES/foreman_ansible.mo
250
+ - locale/es/foreman_ansible.edit.po
240
251
  - locale/es/foreman_ansible.po
252
+ - locale/es/foreman_ansible.po.time_stamp
241
253
  - locale/foreman_ansible.pot
242
254
  - locale/fr/LC_MESSAGES/foreman_ansible.mo
255
+ - locale/fr/foreman_ansible.edit.po
243
256
  - locale/fr/foreman_ansible.po
257
+ - locale/fr/foreman_ansible.po.time_stamp
244
258
  - locale/gemspec.rb
245
259
  - locale/gl/LC_MESSAGES/foreman_ansible.mo
260
+ - locale/gl/foreman_ansible.edit.po
246
261
  - locale/gl/foreman_ansible.po
262
+ - locale/gl/foreman_ansible.po.time_stamp
247
263
  - locale/it/LC_MESSAGES/foreman_ansible.mo
264
+ - locale/it/foreman_ansible.edit.po
248
265
  - locale/it/foreman_ansible.po
266
+ - locale/it/foreman_ansible.po.time_stamp
249
267
  - locale/ja/LC_MESSAGES/foreman_ansible.mo
268
+ - locale/ja/foreman_ansible.edit.po
250
269
  - locale/ja/foreman_ansible.po
270
+ - locale/ja/foreman_ansible.po.time_stamp
251
271
  - locale/ko/LC_MESSAGES/foreman_ansible.mo
272
+ - locale/ko/foreman_ansible.edit.po
252
273
  - locale/ko/foreman_ansible.po
274
+ - locale/ko/foreman_ansible.po.time_stamp
253
275
  - locale/nl_NL/LC_MESSAGES/foreman_ansible.mo
276
+ - locale/nl_NL/foreman_ansible.edit.po
254
277
  - locale/nl_NL/foreman_ansible.po
278
+ - locale/nl_NL/foreman_ansible.po.time_stamp
255
279
  - locale/pl/LC_MESSAGES/foreman_ansible.mo
280
+ - locale/pl/foreman_ansible.edit.po
256
281
  - locale/pl/foreman_ansible.po
282
+ - locale/pl/foreman_ansible.po.time_stamp
257
283
  - locale/pt_BR/LC_MESSAGES/foreman_ansible.mo
284
+ - locale/pt_BR/foreman_ansible.edit.po
258
285
  - locale/pt_BR/foreman_ansible.po
286
+ - locale/pt_BR/foreman_ansible.po.time_stamp
259
287
  - locale/ru/LC_MESSAGES/foreman_ansible.mo
288
+ - locale/ru/foreman_ansible.edit.po
260
289
  - locale/ru/foreman_ansible.po
290
+ - locale/ru/foreman_ansible.po.time_stamp
261
291
  - locale/sv_SE/LC_MESSAGES/foreman_ansible.mo
292
+ - locale/sv_SE/foreman_ansible.edit.po
262
293
  - locale/sv_SE/foreman_ansible.po
294
+ - locale/sv_SE/foreman_ansible.po.time_stamp
263
295
  - locale/zh_CN/LC_MESSAGES/foreman_ansible.mo
296
+ - locale/zh_CN/foreman_ansible.edit.po
264
297
  - locale/zh_CN/foreman_ansible.po
298
+ - locale/zh_CN/foreman_ansible.po.time_stamp
265
299
  - locale/zh_TW/LC_MESSAGES/foreman_ansible.mo
300
+ - locale/zh_TW/foreman_ansible.edit.po
266
301
  - locale/zh_TW/foreman_ansible.po
302
+ - locale/zh_TW/foreman_ansible.po.time_stamp
267
303
  - package.json
268
304
  - test/factories/ansible_proxy.rb
269
305
  - test/factories/ansible_roles.rb
@@ -338,6 +374,7 @@ files:
338
374
  - webpack/components/AnsibleHostDetail/components/JobsTab/NewRecurringJobModal.js
339
375
  - webpack/components/AnsibleHostDetail/components/JobsTab/NewRecurringJobModal.scss
340
376
  - webpack/components/AnsibleHostDetail/components/JobsTab/PreviousJobsTable.js
377
+ - webpack/components/AnsibleHostDetail/components/JobsTab/PreviousJobsTable.js.orig
341
378
  - webpack/components/AnsibleHostDetail/components/JobsTab/RecurringJobsTable.js
342
379
  - webpack/components/AnsibleHostDetail/components/JobsTab/__test__/JobsTab.fixtures.js
343
380
  - webpack/components/AnsibleHostDetail/components/JobsTab/__test__/JobsTab.test.js
@@ -458,7 +495,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
458
495
  - !ruby/object:Gem::Version
459
496
  version: '0'
460
497
  requirements: []
461
- rubygems_version: 3.1.4
498
+ rubygems_version: 3.1.6
462
499
  signing_key:
463
500
  specification_version: 4
464
501
  summary: Ansible integration with Foreman (theforeman.org)
@@ -473,34 +510,25 @@ test_files:
473
510
  - test/fixtures/sample_facts.json
474
511
  - test/fixtures/sample_playbooks.json
475
512
  - test/foreman_ansible/helpers/ansible_roles_helper_test.rb
476
- - test/functional/ansible_roles_controller_test.rb
477
- - test/functional/ansible_variables_controller_test.rb
478
513
  - test/functional/api/v2/ansible_inventories_controller_test.rb
479
514
  - test/functional/api/v2/ansible_playbooks_controller_test.rb
480
515
  - test/functional/api/v2/ansible_roles_controller_test.rb
481
516
  - test/functional/api/v2/ansible_variables_controller_test.rb
482
517
  - test/functional/api/v2/hostgroups_controller_test.rb
483
518
  - test/functional/api/v2/hosts_controller_test.rb
519
+ - test/functional/ansible_roles_controller_test.rb
520
+ - test/functional/ansible_variables_controller_test.rb
484
521
  - test/functional/hosts_controller_test.rb
485
522
  - test/functional/ui_ansible_roles_controller_test.rb
486
523
  - test/graphql/mutations/hosts/assign_ansible_roles_mutation_test.rb
487
524
  - test/graphql/queries/ansible_roles_query_test.rb
488
525
  - test/graphql/queries/host_ansible_roles_query_test.rb
489
- - test/test_plugin_helper.rb
490
526
  - test/unit/actions/run_ansible_job_test.rb
491
527
  - test/unit/actions/run_proxy_ansible_command_test.rb
492
- - test/unit/ansible_provider_test.rb
493
- - test/unit/ansible_role_test.rb
494
- - test/unit/ansible_variable_test.rb
495
528
  - test/unit/concerns/config_reports_extensions_test.rb
496
529
  - test/unit/concerns/host_managed_extensions_test.rb
497
530
  - test/unit/concerns/hostgroup_extensions_test.rb
498
531
  - test/unit/helpers/ansible_reports_helper_test.rb
499
- - test/unit/host_ansible_role_test.rb
500
- - test/unit/hostgroup_ansible_role_test.rb
501
- - test/unit/ignore_roles_test.rb
502
- - test/unit/import_playbooks_test.rb
503
- - test/unit/import_roles_and_variables.rb
504
532
  - test/unit/lib/proxy_api/ansible_test.rb
505
533
  - test/unit/services/ansible_report_importer_test.rb
506
534
  - test/unit/services/ansible_variables_importer_test.rb
@@ -510,4 +538,13 @@ test_files:
510
538
  - test/unit/services/override_resolver_test.rb
511
539
  - test/unit/services/roles_importer_test.rb
512
540
  - test/unit/services/ui_roles_importer_test.rb
541
+ - test/unit/ansible_provider_test.rb
542
+ - test/unit/ansible_role_test.rb
543
+ - test/unit/ansible_variable_test.rb
544
+ - test/unit/host_ansible_role_test.rb
545
+ - test/unit/hostgroup_ansible_role_test.rb
546
+ - test/unit/ignore_roles_test.rb
547
+ - test/unit/import_playbooks_test.rb
548
+ - test/unit/import_roles_and_variables.rb
549
+ - test/test_plugin_helper.rb
513
550
  - test/integration/hostgroup_js_test.rb