foreman_remote_execution 10.0.3 → 10.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.eslintrc +4 -1
- data/.github/workflows/js_ci.yml +3 -0
- data/app/controllers/ui_job_wizard_controller.rb +1 -1
- data/app/views/job_invocations/_card_schedule.html.erb +4 -0
- data/app/views/job_templates/_custom_tabs.html.erb +1 -1
- data/lib/foreman_remote_execution/engine.rb +1 -1
- data/lib/foreman_remote_execution/version.rb +1 -1
- data/package.json +2 -0
- data/webpack/JobWizard/steps/AdvancedFields/Fields.js +1 -1
- data/webpack/JobWizard/steps/ReviewDetails/helpers.js +2 -3
- data/webpack/JobWizard/steps/ReviewDetails/index.js +7 -4
- data/webpack/JobWizard/steps/Schedule/RepeatCron.js +17 -9
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: afb55ca9ac902c2d13fa825bb4bf6b2a31cd3729f9f073b98f1add34001fdfa2
|
4
|
+
data.tar.gz: a3155cf9f3c74f9d7588984015dc47ba6b7a81d4bea04bcb3b870c4ad6306405
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9e34ed092397296e54f100d3a5697ef18ee86e79f5a293e01c0fcf19b33c195d7cfdd1a8046079ab70fce503e2760b93ca616346ab3cd7a21c4df9ef2c10983
|
7
|
+
data.tar.gz: 54cb3b829257039f3f3568544ec3f944e247a966ffd8e06f6f9a4ef1d71c7a3aaf4d0b2b3f5cea78cec32fa0eaa7e67d818e264db5bcf8b63eb0ab0d7b4f1bff
|
data/.eslintrc
CHANGED
data/.github/workflows/js_ci.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
class UiJobWizardController < ApplicationController
|
2
2
|
include FiltersHelper
|
3
3
|
def categories
|
4
|
-
job_categories = resource_scope
|
4
|
+
job_categories = resource_scope(permission: action_permission)
|
5
5
|
.search_for("job_category ~ \"#{params[:search]}\"")
|
6
6
|
.where(:snippet => false)
|
7
7
|
.select(:job_category).distinct
|
@@ -24,6 +24,10 @@
|
|
24
24
|
<% end %>
|
25
25
|
<% if job_invocation.execution_timeout_interval.present? %>
|
26
26
|
<li><b><%= _("Timeout to kill after") %></b>: <%= job_invocation.execution_timeout_interval %> <%= _('seconds') %><br></li>
|
27
|
+
<% end %>
|
28
|
+
<% if job_invocation.time_to_pickup.present? %>
|
29
|
+
<li><b><%= _("Time to pickup") %></b>: <%= job_invocation.time_to_pickup %> <%= _('seconds') %><br>
|
30
|
+
</li>
|
27
31
|
<% end %>
|
28
32
|
</ul>
|
29
33
|
</p>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="tab-pane" id="template_job">
|
2
2
|
|
3
3
|
<%= autocomplete_f(f, :job_category,
|
4
|
-
:search_query =>
|
4
|
+
:search_query => @template.job_category,
|
5
5
|
:placeholder => _("Job category") + ' ...',
|
6
6
|
:disabled => @template.locked?) %>
|
7
7
|
<%= text_f f, :description_format,
|
@@ -158,7 +158,7 @@ module ForemanRemoteExecution
|
|
158
158
|
collection: proc { ForemanRemoteExecution.job_invocation_report_templates_select }
|
159
159
|
setting 'remote_execution_time_to_pickup',
|
160
160
|
type: :integer,
|
161
|
-
description: N_('Time in seconds within which the host has to pick up a job. If the job is not picked up within this limit, the job will be cancelled. Defaults to 1 day.'),
|
161
|
+
description: N_('Time in seconds within which the host has to pick up a job. If the job is not picked up within this limit, the job will be cancelled. Defaults to 1 day. Applies only to pull-mqtt based jobs.'),
|
162
162
|
default: 24 * 60 * 60,
|
163
163
|
full_name: N_('Time to pickup')
|
164
164
|
end
|
data/package.json
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
"license": "GPL-3.0",
|
5
5
|
"scripts": {
|
6
6
|
"lint": "tfm-lint --plugin -d /webpack",
|
7
|
+
"lint:custom": "eslint ./webpack",
|
7
8
|
"test": "tfm-test --plugin",
|
8
9
|
"test:watch": "tfm-test --plugin --watchAll",
|
9
10
|
"test:current": "tfm-test --plugin --watch",
|
@@ -23,6 +24,7 @@
|
|
23
24
|
"@babel/core": "^7.7.0",
|
24
25
|
"@theforeman/builder": "^12.0.1",
|
25
26
|
"@theforeman/eslint-plugin-foreman": "^12.0.1",
|
27
|
+
"@theforeman/eslint-plugin-rules": "^12.0.2",
|
26
28
|
"@theforeman/test": "^12.0.1",
|
27
29
|
"@theforeman/vendor-dev": "^12.0.1",
|
28
30
|
"babel-eslint": "^10.0.0",
|
@@ -59,7 +59,7 @@ export const TimeToPickupField = ({ value, setValue }) => (
|
|
59
59
|
label: __('Time to pickup'),
|
60
60
|
labelIcon: helpLabel(
|
61
61
|
__(
|
62
|
-
'Interval in seconds, if the job is not picked up by a client within this interval it will be cancelled.'
|
62
|
+
'Interval in seconds, if the job is not picked up by a client within this interval it will be cancelled. Applies only to pull-mqtt based jobs'
|
63
63
|
),
|
64
64
|
'time-to-pickup'
|
65
65
|
),
|
@@ -23,9 +23,8 @@ export const parseRepeat = (repeatType, repeatData) => {
|
|
23
23
|
const daysKeys = Object.keys(repeatData.daysOfWeek).filter(
|
24
24
|
k => repeatData.daysOfWeek[k]
|
25
25
|
);
|
26
|
-
const
|
27
|
-
|
28
|
-
.join(', ');
|
26
|
+
const dayNames = getWeekDays();
|
27
|
+
const days = daysKeys.map(day => dayNames[day]).join(', ');
|
29
28
|
return sprintf(__('Every week on %s at %s'), days, repeatData.at);
|
30
29
|
}
|
31
30
|
case repeatTypes.monthly:
|
@@ -30,6 +30,9 @@ import { WizardTitle } from '../form/WizardTitle';
|
|
30
30
|
import { parseEnd, parseRepeat } from './helpers';
|
31
31
|
import { HostPreviewModal } from '../HostsAndInputs/HostPreviewModal';
|
32
32
|
|
33
|
+
const maskValue = (isHidden, value) =>
|
34
|
+
isHidden ? '*'.repeat(value.length) : value;
|
35
|
+
|
33
36
|
const ReviewDetails = ({
|
34
37
|
jobCategory,
|
35
38
|
jobTemplateID,
|
@@ -122,11 +125,11 @@ const ReviewDetails = ({
|
|
122
125
|
),
|
123
126
|
value: stringHosts(),
|
124
127
|
},
|
125
|
-
...templateInputs.map(({ name }) => ({
|
128
|
+
...templateInputs.map(({ name, hidden_value: isHidden }) => ({
|
126
129
|
label: (
|
127
130
|
<StepButton stepName={WIZARD_TITLES.hostsAndInputs}>{name}</StepButton>
|
128
131
|
),
|
129
|
-
value: templateValues[name],
|
132
|
+
value: maskValue(isHidden, templateValues[name]),
|
130
133
|
})),
|
131
134
|
{
|
132
135
|
label: (
|
@@ -272,9 +275,9 @@ const ReviewDetails = ({
|
|
272
275
|
? __('Randomized')
|
273
276
|
: __('Alphabetical'),
|
274
277
|
},
|
275
|
-
...advancedTemplateInputs.map(({ name }) => ({
|
278
|
+
...advancedTemplateInputs.map(({ name, hidden_value: isHidden }) => ({
|
276
279
|
label: name,
|
277
|
-
value: advancedValues.templateValues[name],
|
280
|
+
value: maskValue(isHidden, advancedValues.templateValues[name]),
|
278
281
|
})),
|
279
282
|
];
|
280
283
|
|
@@ -1,6 +1,14 @@
|
|
1
1
|
import React, { useEffect } from 'react';
|
2
2
|
import PropTypes from 'prop-types';
|
3
|
-
import {
|
3
|
+
import {
|
4
|
+
List,
|
5
|
+
ListItem,
|
6
|
+
ListComponent,
|
7
|
+
OrderType,
|
8
|
+
TextInput,
|
9
|
+
FormGroup,
|
10
|
+
ValidatedOptions,
|
11
|
+
} from '@patternfly/react-core';
|
4
12
|
import { translate as __ } from 'foremanReact/common/I18n';
|
5
13
|
import { helpLabel } from '../form/FormHelpers';
|
6
14
|
|
@@ -19,15 +27,15 @@ export const RepeatCron = ({ repeatData, setRepeatData, setValid }) => {
|
|
19
27
|
label={__('Cron line')}
|
20
28
|
labelIcon={helpLabel(
|
21
29
|
<div>
|
22
|
-
{__("Cron line format '
|
30
|
+
{__("Cron line format '1 2 3 4 5', where:")}
|
23
31
|
<br />
|
24
|
-
<ol>
|
25
|
-
<
|
26
|
-
<
|
27
|
-
<
|
28
|
-
<
|
29
|
-
<
|
30
|
-
</
|
32
|
+
<List component={ListComponent.ol} type={OrderType.number}>
|
33
|
+
<ListItem>{__('is minute (range: 0-59)')}</ListItem>
|
34
|
+
<ListItem>{__('is hour (range: 0-23)')}</ListItem>
|
35
|
+
<ListItem>{__('is day of month (range: 1-31)')}</ListItem>
|
36
|
+
<ListItem>{__('is month (range: 1-12)')}</ListItem>
|
37
|
+
<ListItem>{__('is day of week (range: 0-6)')}</ListItem>
|
38
|
+
</List>
|
31
39
|
</div>
|
32
40
|
)}
|
33
41
|
isRequired
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_remote_execution
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.0.
|
4
|
+
version: 10.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Foreman Remote Execution team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: deface
|
@@ -576,7 +576,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
576
576
|
- !ruby/object:Gem::Version
|
577
577
|
version: '0'
|
578
578
|
requirements: []
|
579
|
-
rubygems_version: 3.4.
|
579
|
+
rubygems_version: 3.4.16
|
580
580
|
signing_key:
|
581
581
|
specification_version: 4
|
582
582
|
summary: A plugin bringing remote execution to the Foreman, completing the config
|