foreman_remote_execution 16.7.0 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/job_invocations_controller.rb +24 -2
  3. data/app/controllers/job_invocations_controller.rb +1 -28
  4. data/app/views/api/v2/job_invocations/hosts.json.rabl +8 -0
  5. data/app/views/api/v2/job_invocations/main.json.rabl +1 -0
  6. data/app/views/job_templates/_alerts.html.erb +4 -0
  7. data/config/routes.rb +0 -1
  8. data/lib/foreman_remote_execution/plugin.rb +3 -3
  9. data/lib/foreman_remote_execution/version.rb +1 -1
  10. data/test/functional/api/v2/job_invocations_controller_test.rb +46 -7
  11. data/webpack/JobInvocationDetail/JobInvocationActions.js +86 -91
  12. data/webpack/JobInvocationDetail/JobInvocationConstants.js +6 -4
  13. data/webpack/JobInvocationDetail/JobInvocationDetail.scss +5 -3
  14. data/webpack/JobInvocationDetail/JobInvocationHostTable.js +92 -46
  15. data/webpack/JobInvocationDetail/JobInvocationSelectors.js +1 -9
  16. data/webpack/JobInvocationDetail/JobInvocationSystemStatusChart.js +5 -2
  17. data/webpack/JobInvocationDetail/JobInvocationToolbarButtons.js +10 -12
  18. data/webpack/JobInvocationDetail/TemplateInvocation.js +38 -26
  19. data/webpack/JobInvocationDetail/TemplateInvocationComponents/OutputCodeBlock.js +2 -1
  20. data/webpack/JobInvocationDetail/TemplateInvocationComponents/TemplateActionButtons.js +17 -6
  21. data/webpack/JobInvocationDetail/TemplateInvocationComponents/index.scss +0 -1
  22. data/webpack/JobInvocationDetail/__tests__/JobInvocationHostTablePolling.test.js +369 -0
  23. data/webpack/JobInvocationDetail/__tests__/JobInvocationPolling.test.js +228 -0
  24. data/webpack/JobInvocationDetail/__tests__/MainInformation.test.js +205 -154
  25. data/webpack/JobInvocationDetail/__tests__/TemplateInvocationPolling.test.js +254 -0
  26. data/webpack/JobInvocationDetail/__tests__/fixtures.js +2 -0
  27. data/webpack/JobInvocationDetail/index.js +25 -25
  28. data/webpack/JobWizard/JobWizard.js +5 -1
  29. data/webpack/JobWizard/JobWizard.scss +21 -0
  30. data/webpack/JobWizard/JobWizardConstants.js +10 -1
  31. data/webpack/JobWizard/steps/Schedule/RepeatHour.js +4 -2
  32. data/webpack/JobWizard/steps/Schedule/RepeatWeek.js +4 -2
  33. data/webpack/JobWizard/steps/Schedule/ScheduleRecurring.js +2 -1
  34. data/webpack/JobWizard/steps/Schedule/ScheduleType.js +4 -1
  35. data/webpack/JobWizard/steps/form/DateTimePicker.js +12 -6
  36. data/webpack/JobWizard/steps/form/FormHelpers.js +5 -4
  37. data/webpack/react_app/components/FeaturesDropdown/index.scss +2 -0
  38. data/webpack/react_app/components/TargetingHosts/TargetingHostsLabelsRow.scss +6 -2
  39. data/webpack/react_app/components/TargetingHosts/__tests__/__snapshots__/TargetingHostsPage.test.js.snap +1 -1
  40. data/webpack/react_app/components/TargetingHosts/index.js +2 -1
  41. data/webpack/react_app/redux/actions/jobInvocations/index.js +3 -2
  42. data/webpack/test_setup.js +1 -13
  43. metadata +7 -4
  44. data/webpack/__mocks__/foremanReact/constants.js +0 -25
@@ -1,7 +1,9 @@
1
1
  #schedule-a-job-dropdown ul.pf-v5-c-dropdown__menu {
2
2
  padding-left: 0;
3
+
3
4
  li {
4
5
  display: unset;
6
+
5
7
  a {
6
8
  font-size: 16px;
7
9
  color: var(--pf-v5-cdropdown__menu-item--Color);
@@ -3,24 +3,28 @@
3
3
  .tasks-labels-row {
4
4
  margin: 0;
5
5
  padding: 10px;
6
+
6
7
  .title {
7
8
  font-weight: 600;
8
9
  font-size: 13px;
9
10
  }
11
+
10
12
  .label {
11
13
  font-size: 100%;
12
-
13
14
  margin-left: 5px;
14
15
  margin-right: 5px;
16
+
15
17
  a {
16
18
  padding-left: 10px;
17
19
  }
18
20
  }
21
+
19
22
  .pficon-close {
20
23
  color: $color-pf-white;
21
24
  }
25
+
22
26
  .compound-label-pf {
23
- margin-left: 0;
24
27
  margin: 10px;
28
+ margin-left: 0;
25
29
  }
26
30
  }
@@ -25,7 +25,7 @@ exports[`TargetingHostsPage renders 1`] = `
25
25
  },
26
26
  "bookmarks": Object {
27
27
  "canCreate": true,
28
- "documentationUrl": "4.1.5Searching",
28
+ "documentationUrl": "/links/manual/4.1.5Searching",
29
29
  "id": "targeting_hosts_search",
30
30
  "url": "/api/bookmarks",
31
31
  },
@@ -7,6 +7,7 @@ import {
7
7
  withInterval,
8
8
  stopInterval,
9
9
  } from 'foremanReact/redux/middlewares/IntervalMiddleware';
10
+ import { MS_PER_SECOND } from 'foremanReact/constants';
10
11
 
11
12
  import {
12
13
  selectItems,
@@ -100,7 +101,7 @@ const WrappedTargetingHosts = () => {
100
101
  dispatch(stopInterval(TARGETING_HOSTS));
101
102
  },
102
103
  }),
103
- 1000
104
+ MS_PER_SECOND
104
105
  ),
105
106
  [dispatch]
106
107
  );
@@ -1,5 +1,6 @@
1
1
  // eslint-disable-next-line import/no-extraneous-dependencies
2
2
  import API from 'foremanReact/API';
3
+ import { HTTP_STATUS_CODES, MS_PER_SECOND } from 'foremanReact/constants';
3
4
 
4
5
  import {
5
6
  JOB_INVOCATIONS_GET_JOB_INVOCATIONS,
@@ -7,7 +8,7 @@ import {
7
8
  JOB_INVOCATIONS_JOB_FINISHED,
8
9
  } from '../../consts';
9
10
 
10
- const defaultJobInvocationsPollingInterval = 1000;
11
+ const defaultJobInvocationsPollingInterval = MS_PER_SECOND;
11
12
  const jobInvocationsInterval =
12
13
  process.env.JOB_INVOCATIONS_POLLING || defaultJobInvocationsPollingInterval;
13
14
 
@@ -32,7 +33,7 @@ const getJobInvocations = url => async (dispatch, getState) => {
32
33
  }
33
34
 
34
35
  function onGetJobInvocationsFailed(error) {
35
- if (error.response.status === 401) {
36
+ if (error.response.status === HTTP_STATUS_CODES.UNAUTHORIZED) {
36
37
  window.location.replace('/users/login');
37
38
  }
38
39
  }
@@ -1,13 +1 @@
1
- import 'core-js/shim';
2
- import 'regenerator-runtime/runtime';
3
-
4
- import { configure } from '@theforeman/test';
5
- // eslint-disable-next-line import/no-extraneous-dependencies
6
- import Adapter from 'enzyme-adapter-react-16';
7
-
8
- configure({ adapter: new Adapter() });
9
-
10
- // Mocking translation function
11
- global.__ = str => str;
12
- global.n__ = str => str;
13
- global.Jed = { sprintf: str => str };
1
+ import 'foremanJSTestSetup';
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_remote_execution
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.7.0
4
+ version: 17.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Foreman Remote Execution team
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-07-13 00:00:00.000000000 Z
10
+ date: 2026-08-17 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: deface
@@ -202,6 +202,7 @@ files:
202
202
  - app/views/job_invocations/show.js.erb
203
203
  - app/views/job_invocations/show.json.erb
204
204
  - app/views/job_invocations/welcome.html.erb
205
+ - app/views/job_templates/_alerts.html.erb
205
206
  - app/views/job_templates/_custom_tab_headers.html.erb
206
207
  - app/views/job_templates/_custom_tabs.html.erb
207
208
  - app/views/job_templates/_import_job_template_modal.html.erb
@@ -397,10 +398,13 @@ files:
397
398
  - webpack/JobInvocationDetail/TemplateInvocationComponents/index.scss
398
399
  - webpack/JobInvocationDetail/TemplateInvocationPage.js
399
400
  - webpack/JobInvocationDetail/__tests__/JobInvocationDetailEmptyState.test.js
401
+ - webpack/JobInvocationDetail/__tests__/JobInvocationHostTablePolling.test.js
402
+ - webpack/JobInvocationDetail/__tests__/JobInvocationPolling.test.js
400
403
  - webpack/JobInvocationDetail/__tests__/MainInformation.test.js
401
404
  - webpack/JobInvocationDetail/__tests__/OutputCodeBlock.test.js
402
405
  - webpack/JobInvocationDetail/__tests__/TableToolbarActions.test.js
403
406
  - webpack/JobInvocationDetail/__tests__/TemplateInvocation.test.js
407
+ - webpack/JobInvocationDetail/__tests__/TemplateInvocationPolling.test.js
404
408
  - webpack/JobInvocationDetail/__tests__/fixtures.js
405
409
  - webpack/JobInvocationDetail/__tests__/foremanTestHelpers.js
406
410
  - webpack/JobInvocationDetail/index.js
@@ -481,7 +485,6 @@ files:
481
485
  - webpack/__mocks__/foremanReact/components/Pagination.js
482
486
  - webpack/__mocks__/foremanReact/components/ToastsList/index.js
483
487
  - webpack/__mocks__/foremanReact/components/common/ActionButtons/ActionButtons.js
484
- - webpack/__mocks__/foremanReact/constants.js
485
488
  - webpack/__mocks__/foremanReact/history.js
486
489
  - webpack/__mocks__/foremanReact/redux/API/APIActions.js
487
490
  - webpack/__mocks__/foremanReact/redux/API/APIConstants.js
@@ -564,7 +567,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
564
567
  - !ruby/object:Gem::Version
565
568
  version: '0'
566
569
  requirements: []
567
- rubygems_version: 4.0.10
570
+ rubygems_version: 4.0.16
568
571
  specification_version: 4
569
572
  summary: A plugin bringing remote execution to the Foreman, completing the config
570
573
  management functionality with remote management functionality.
@@ -1,25 +0,0 @@
1
- export const STATUS = {
2
- PENDING: 'PENDING',
3
- RESOLVED: 'RESOLVED',
4
- ERROR: 'ERROR',
5
- };
6
-
7
- export const getControllerSearchProps = (
8
- controller,
9
- id = 'searchBar',
10
- canCreate = true
11
- ) => ({
12
- controller,
13
- autocomplete: {
14
- id,
15
- searchQuery: '',
16
- url: `${controller}/auto_complete_search`,
17
- useKeyShortcuts: true,
18
- },
19
- bookmarks: {
20
- id,
21
- url: '/api/bookmarks',
22
- canCreate,
23
- documentationUrl: `4.1.5Searching`,
24
- },
25
- });