foreman_remote_execution 16.5.3 → 16.6.3
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.
- checksums.yaml +4 -4
- data/Rakefile +0 -15
- data/lib/foreman_remote_execution/version.rb +1 -1
- data/webpack/JobInvocationDetail/JobInvocationHostTable.js +5 -2
- data/webpack/JobInvocationDetail/TemplateInvocationComponents/OutputCodeBlock.js +6 -3
- data/webpack/JobInvocationDetail/__tests__/OutputCodeBlock.test.js +1 -0
- data/webpack/JobInvocationDetail/__tests__/fixtures.js +9 -0
- data/webpack/JobWizard/PermissionDenied.js +5 -2
- data/webpack/react_app/components/RegistrationExtension/RexPull.js +8 -5
- metadata +3 -31
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2fd2360fc3d4b48170494112c77f2d07079e94e52c8c6c9b5fcbe2402a690a49
|
|
4
|
+
data.tar.gz: ef36ba8ac16d062f24ee3fd78954d26c86c51001c3b6c8e85dcc1c9d01667159
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 96dcba56a99ca8340051cd788eb0115dde2dbcd8ff7cfce5dc82ca6f3679300cebe0c98e74d1fb9c61a09d0e2293d48140996b717114eda87c414968272dcd07
|
|
7
|
+
data.tar.gz: 5e33d478ff9bbaaab3edfac6570e378407a9bf501698ad83b31aecfd0b9261293c1d8229d5cd0f014587478a238341af0fb83defdeb5f58b193d21cd8669335a
|
data/Rakefile
CHANGED
|
@@ -3,21 +3,6 @@ begin
|
|
|
3
3
|
rescue LoadError
|
|
4
4
|
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
5
5
|
end
|
|
6
|
-
begin
|
|
7
|
-
require 'rdoc/task'
|
|
8
|
-
rescue LoadError
|
|
9
|
-
require 'rdoc/rdoc'
|
|
10
|
-
require 'rake/rdoctask'
|
|
11
|
-
RDoc::Task = Rake::RDocTask
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
RDoc::Task.new(:rdoc) do |rdoc|
|
|
15
|
-
rdoc.rdoc_dir = 'rdoc'
|
|
16
|
-
rdoc.title = 'ForemanRemoteExecution'
|
|
17
|
-
rdoc.options << '--line-numbers'
|
|
18
|
-
rdoc.rdoc_files.include('README.rdoc')
|
|
19
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
20
|
-
end
|
|
21
6
|
|
|
22
7
|
APP_RAKEFILE = File.expand_path('../test/dummy/Rakefile', __FILE__)
|
|
23
8
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/* eslint-disable max-lines */
|
|
2
2
|
/* eslint-disable camelcase */
|
|
3
3
|
import {
|
|
4
|
+
Icon,
|
|
4
5
|
EmptyState,
|
|
5
6
|
EmptyStateBody,
|
|
6
7
|
EmptyStateHeader,
|
|
7
8
|
EmptyStateVariant,
|
|
8
9
|
ToolbarItem,
|
|
9
10
|
} from '@patternfly/react-core';
|
|
11
|
+
import { AddCircleOIcon } from '@patternfly/react-icons';
|
|
10
12
|
import { ExpandableRowContent, Tbody, Td, Tr } from '@patternfly/react-table';
|
|
11
13
|
import { useDispatch } from 'react-redux';
|
|
12
14
|
import { APIActions } from 'foremanReact/redux/API';
|
|
@@ -22,7 +24,6 @@ import {
|
|
|
22
24
|
import { getPageStats } from 'foremanReact/components/PF4/TableIndexPage/Table/helpers';
|
|
23
25
|
import TableIndexPage from 'foremanReact/components/PF4/TableIndexPage/TableIndexPage';
|
|
24
26
|
import { getControllerSearchProps } from 'foremanReact/constants';
|
|
25
|
-
import { Icon } from 'patternfly-react';
|
|
26
27
|
import PropTypes from 'prop-types';
|
|
27
28
|
import React, {
|
|
28
29
|
useEffect,
|
|
@@ -339,7 +340,9 @@ const JobInvocationHostTable = ({
|
|
|
339
340
|
<Td colSpan={100}>
|
|
340
341
|
<EmptyState variant={EmptyStateVariant.xl}>
|
|
341
342
|
<span className="empty-state-icon">
|
|
342
|
-
<Icon
|
|
343
|
+
<Icon size="xl" iconSize="xl">
|
|
344
|
+
<AddCircleOIcon name="add-circle-o" />
|
|
345
|
+
</Icon>
|
|
343
346
|
</span>
|
|
344
347
|
<EmptyStateHeader
|
|
345
348
|
titleText={<>{__('No Results')}</>}
|
|
@@ -11,7 +11,7 @@ import { translate as __ } from 'foremanReact/common/I18n';
|
|
|
11
11
|
export const OutputCodeBlock = ({ code, showOutputType, scrollElement }) => {
|
|
12
12
|
let lineCounter = 0;
|
|
13
13
|
// eslint-disable-next-line no-control-regex
|
|
14
|
-
const COLOR_PATTERN = /\x1b\[
|
|
14
|
+
const COLOR_PATTERN = /\x1b\[[\d;]*m/g;
|
|
15
15
|
const CONSOLE_COLOR = {
|
|
16
16
|
'31': 'red',
|
|
17
17
|
'32': 'lightgreen',
|
|
@@ -27,12 +27,15 @@ export const OutputCodeBlock = ({ code, showOutputType, scrollElement }) => {
|
|
|
27
27
|
'95': 'violet',
|
|
28
28
|
'96': 'turquoise',
|
|
29
29
|
'0': 'default',
|
|
30
|
+
'39': 'default',
|
|
30
31
|
};
|
|
31
32
|
|
|
32
33
|
const colorizeLine = line => {
|
|
33
34
|
line = line.replace(COLOR_PATTERN, seq => {
|
|
34
|
-
const
|
|
35
|
-
|
|
35
|
+
const codes = seq.match(/(\d+)/g) || [];
|
|
36
|
+
const lastColorCode =
|
|
37
|
+
[...codes].reverse().find(code_ => code_ in CONSOLE_COLOR) || '0';
|
|
38
|
+
return `{{{format color:${lastColorCode}}}}`;
|
|
36
39
|
});
|
|
37
40
|
|
|
38
41
|
let currentColor = 'default';
|
|
@@ -31,6 +31,7 @@ describe('OutputCodeBlock', () => {
|
|
|
31
31
|
expect(screen.getByText('This is green text')).toHaveStyle(
|
|
32
32
|
'color: lightgreen'
|
|
33
33
|
);
|
|
34
|
+
expect(screen.getByText('Compound red text')).toHaveStyle('color: red');
|
|
34
35
|
});
|
|
35
36
|
|
|
36
37
|
test('displays no output message when filtered', () => {
|
|
@@ -196,6 +196,15 @@ export const jobInvocationOutput = [
|
|
|
196
196
|
timestamp: 1733931148.2044532,
|
|
197
197
|
},
|
|
198
198
|
|
|
199
|
+
{
|
|
200
|
+
id: 1960,
|
|
201
|
+
template_invocation_id: templateInvocationID,
|
|
202
|
+
timestamp: 1733931149.2044532,
|
|
203
|
+
meta: null,
|
|
204
|
+
external_id: '0',
|
|
205
|
+
output_type: 'stdout',
|
|
206
|
+
output: '\u001b[0;31mCompound red text\u001b[0m\n',
|
|
207
|
+
},
|
|
199
208
|
{
|
|
200
209
|
id: 1907,
|
|
201
210
|
template_invocation_id: templateInvocationID,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { translate as __ } from 'foremanReact/common/I18n';
|
|
4
|
-
import {
|
|
4
|
+
import { LockIcon } from '@patternfly/react-icons';
|
|
5
5
|
import {
|
|
6
|
+
Icon,
|
|
6
7
|
Button,
|
|
7
8
|
EmptyState,
|
|
8
9
|
EmptyStateVariant,
|
|
@@ -36,7 +37,9 @@ const PermissionDenied = ({ missingPermissions, setProceedAnyway }) => {
|
|
|
36
37
|
return (
|
|
37
38
|
<EmptyState variant={EmptyStateVariant.xl}>
|
|
38
39
|
<span className="empty-state-icon">
|
|
39
|
-
<Icon
|
|
40
|
+
<Icon size="xl" iconSize="xl">
|
|
41
|
+
<LockIcon name="lock" />
|
|
42
|
+
</Icon>
|
|
40
43
|
</span>
|
|
41
44
|
<EmptyStateHeader
|
|
42
45
|
titleText={<>{__('Permission Denied')}</>}
|
|
@@ -4,9 +4,8 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
|
|
5
5
|
import { translate as __ } from 'foremanReact/common/I18n';
|
|
6
6
|
import LabelIcon from 'foremanReact/components/common/LabelIcon';
|
|
7
|
-
import { Alert } from 'patternfly-react';
|
|
8
|
-
|
|
9
7
|
import {
|
|
8
|
+
Alert,
|
|
10
9
|
FormGroup,
|
|
11
10
|
FormSelectOption,
|
|
12
11
|
FormSelect,
|
|
@@ -26,11 +25,15 @@ const options = (value = '') => {
|
|
|
26
25
|
};
|
|
27
26
|
|
|
28
27
|
const pullWarning = (
|
|
29
|
-
<Alert
|
|
30
|
-
|
|
28
|
+
<Alert
|
|
29
|
+
ouiaId="overrideAlert"
|
|
30
|
+
variant="info"
|
|
31
|
+
isInline
|
|
32
|
+
title={__(
|
|
31
33
|
'Please make sure that the Smart Proxy is configured correctly for the Pull provider.'
|
|
32
34
|
)}
|
|
33
|
-
|
|
35
|
+
style={{ marginTop: '10px' }}
|
|
36
|
+
/>
|
|
34
37
|
);
|
|
35
38
|
|
|
36
39
|
function showPullWarning(valueFromParam, value) {
|
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.
|
|
4
|
+
version: 16.6.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Foreman Remote Execution team
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-05-15 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: deface
|
|
@@ -37,34 +37,6 @@ dependencies:
|
|
|
37
37
|
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
39
|
version: 8.3.0
|
|
40
|
-
- !ruby/object:Gem::Dependency
|
|
41
|
-
name: factory_bot_rails
|
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
|
43
|
-
requirements:
|
|
44
|
-
- - "~>"
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: 4.8.0
|
|
47
|
-
type: :development
|
|
48
|
-
prerelease: false
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - "~>"
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: 4.8.0
|
|
54
|
-
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: rdoc
|
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
|
57
|
-
requirements:
|
|
58
|
-
- - ">="
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: '0'
|
|
61
|
-
type: :development
|
|
62
|
-
prerelease: false
|
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - ">="
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '0'
|
|
68
40
|
description: A plugin bringing remote execution to the Foreman, completing the config
|
|
69
41
|
management functionality with remote management functionality.
|
|
70
42
|
email:
|
|
@@ -589,7 +561,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
589
561
|
- !ruby/object:Gem::Version
|
|
590
562
|
version: '0'
|
|
591
563
|
requirements: []
|
|
592
|
-
rubygems_version: 4.0.
|
|
564
|
+
rubygems_version: 4.0.10
|
|
593
565
|
specification_version: 4
|
|
594
566
|
summary: A plugin bringing remote execution to the Foreman, completing the config
|
|
595
567
|
management functionality with remote management functionality.
|