foreman_leapp 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/views/foreman_leapp/job_templates/upgrade.erb +12 -4
- data/app/views/job_invocations/_leapp_preupgrade_report.html.erb +2 -1
- data/lib/foreman_leapp/version.rb +1 -1
- data/webpack/__mocks__/foremanReact/Root/Context/ForemanContext.js +4 -0
- data/webpack/__mocks__/foremanReact/components/Pagination/PaginationWrapper.js +2 -0
- data/webpack/components/PreupgradeReports/PreupgradeReports.js +32 -4
- data/webpack/components/PreupgradeReports/PreupgradeReportsHelpers.js +35 -0
- data/webpack/components/PreupgradeReports/PreupgradeReportsSelectors.js +1 -0
- data/webpack/components/PreupgradeReports/__tests__/PreupgradeReports.fixtures.js +34 -2
- data/webpack/components/PreupgradeReports/__tests__/PreupgradeReports.test.js +9 -0
- data/webpack/components/PreupgradeReports/__tests__/PreupgradeReportsHelpers.test.js +38 -0
- data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReports.test.js.snap +131 -24
- data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsHelpers.test.js.snap +82 -0
- data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsReducer.test.js.snap +19 -0
- data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsSelectors.test.js.snap +19 -0
- data/webpack/components/PreupgradeReports/components/FixAllButton.js +37 -0
- data/webpack/components/PreupgradeReports/components/FixAllButton.test.js +18 -0
- data/webpack/components/PreupgradeReports/components/__snapshots__/FixAllButton.test.js.snap +34 -0
- data/webpack/components/PreupgradeReports/index.js +7 -2
- data/webpack/components/PreupgradeReportsList/__tests__/PreupgradeReportsList.test.js +12 -2
- data/webpack/components/PreupgradeReportsList/__tests__/__snapshots__/PreupgradeReportsList.test.js.snap +81 -0
- data/webpack/components/PreupgradeReportsList/components/PreupgradeReportEntry.js +39 -5
- data/webpack/components/PreupgradeReportsList/components/__tests__/PreupgradeReportEntry.fixtures.js +38 -0
- data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/PreupgradeReportEntry.test.js.snap +97 -22
- data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/helpers.test.js.snap +196 -28
- data/webpack/components/PreupgradeReportsList/components/__tests__/helpers.test.js +21 -8
- data/webpack/components/PreupgradeReportsList/components/foreman_leapp.scss +9 -0
- data/webpack/components/PreupgradeReportsList/components/helpers.js +149 -21
- data/webpack/components/PreupgradeReportsList/index.js +21 -8
- data/webpack/csrf.js +4 -0
- metadata +27 -5
- data/webpack/components/PreupgradeReportsList/components/StringInfoItem.js +0 -49
- data/webpack/components/PreupgradeReportsList/components/__tests__/StringInfoItem.test.js +0 -13
- data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/StringInfoItem.test.js.snap +0 -12
@@ -1,28 +1,156 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
|
2
|
+
import { Grid, ListView, Badge, Icon } from 'patternfly-react';
|
3
3
|
import EmptyInfoItem from './EmptyInfoItem';
|
4
|
-
import StringInfoItem from './StringInfoItem';
|
5
4
|
|
6
5
|
export const itemIteratorId = (entry, ...rest) =>
|
7
6
|
`${entry.id}-${entry.preupgradeReportId}-${rest.join('-')}`;
|
8
7
|
|
9
|
-
export const
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
return
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
8
|
+
export const presentSeverity = severity => {
|
9
|
+
switch (severity) {
|
10
|
+
case 'low':
|
11
|
+
return '#39a5dc';
|
12
|
+
case 'medium':
|
13
|
+
return '#f0ab00';
|
14
|
+
case 'high':
|
15
|
+
return '#cc0000';
|
16
|
+
default:
|
17
|
+
return '#39a5dc';
|
18
|
+
}
|
19
|
+
};
|
20
|
+
|
21
|
+
export const tagInfo = tags =>
|
22
|
+
tags.map(attr => (
|
23
|
+
<Badge key={attr} variant="pill primary">
|
24
|
+
{attr}
|
25
|
+
</Badge>
|
26
|
+
));
|
27
|
+
|
28
|
+
export const hasRemediations = entry => {
|
29
|
+
const key = itemIteratorId(entry, `rm${entry.id}`);
|
30
|
+
if (entry.detail && entry.detail.remediations) {
|
31
|
+
return (
|
32
|
+
<ListView.InfoItem key={key}>
|
33
|
+
<Icon type="pf" name="warning-triangle-o" /> Has Remediation
|
34
|
+
</ListView.InfoItem>
|
35
|
+
);
|
36
|
+
}
|
37
|
+
|
38
|
+
return <EmptyInfoItem key={key} entry={entry} attr="remediation" />;
|
39
|
+
};
|
40
|
+
|
41
|
+
export const getTitle = entry => {
|
42
|
+
if (entry.title) {
|
43
|
+
return (
|
44
|
+
<Grid.Row>
|
45
|
+
<Grid.Col md={1}>
|
46
|
+
<strong>Title</strong>
|
47
|
+
</Grid.Col>
|
48
|
+
<Grid.Col md={8}>{entry.title}</Grid.Col>
|
49
|
+
</Grid.Row>
|
50
|
+
);
|
51
|
+
}
|
52
|
+
return <div />;
|
53
|
+
};
|
54
|
+
|
55
|
+
export const getSeverity = entry => {
|
56
|
+
if (entry.severity) {
|
57
|
+
return (
|
58
|
+
<Grid.Row className="top-padded">
|
59
|
+
<Grid.Col md={1}>
|
60
|
+
<strong>Risk Factor</strong>
|
61
|
+
</Grid.Col>
|
62
|
+
<Grid.Col md={8}>
|
63
|
+
<Icon
|
64
|
+
type="pf"
|
65
|
+
name="resources-full"
|
66
|
+
style={{ color: presentSeverity(entry.severity) }}
|
67
|
+
/>{' '}
|
68
|
+
{entry.severity}
|
69
|
+
</Grid.Col>
|
70
|
+
</Grid.Row>
|
71
|
+
);
|
72
|
+
}
|
73
|
+
return <div />;
|
74
|
+
};
|
75
|
+
|
76
|
+
export const getSummary = entry => {
|
77
|
+
if (entry.summary) {
|
78
|
+
return (
|
79
|
+
<Grid.Row className="top-padded">
|
80
|
+
<Grid.Col md={1}>
|
81
|
+
<strong>Summary</strong>
|
82
|
+
</Grid.Col>
|
83
|
+
<Grid.Col md={8} className="pre-wrap">
|
84
|
+
{entry.summary}
|
85
|
+
</Grid.Col>
|
86
|
+
</Grid.Row>
|
87
|
+
);
|
88
|
+
}
|
89
|
+
return <div />;
|
90
|
+
};
|
91
|
+
|
92
|
+
export const getTags = entry => {
|
93
|
+
if (entry.tags) {
|
94
|
+
return (
|
95
|
+
<Grid.Row className="top-padded">
|
96
|
+
<Grid.Col md={1}>
|
97
|
+
<strong>Tags</strong>
|
98
|
+
</Grid.Col>
|
99
|
+
<Grid.Col md={8}>{tagInfo(entry.tags)}</Grid.Col>
|
100
|
+
</Grid.Row>
|
101
|
+
);
|
102
|
+
}
|
103
|
+
return <div />;
|
104
|
+
};
|
105
|
+
|
106
|
+
export const getExternals = entry => {
|
107
|
+
if (entry.detail && entry.detail.external) {
|
108
|
+
return entry.detail.external.map(attr => {
|
109
|
+
const key = itemIteratorId(entry, attr);
|
110
|
+
return (
|
111
|
+
<Grid.Row className="top-padded" key={key}>
|
112
|
+
<Grid.Col md={1}>
|
113
|
+
<strong>Links</strong>
|
114
|
+
</Grid.Col>
|
115
|
+
<Grid.Col md={8}>
|
116
|
+
<a href={attr.url}>{attr.title}</a>
|
117
|
+
</Grid.Col>
|
118
|
+
</Grid.Row>
|
119
|
+
);
|
120
|
+
});
|
121
|
+
}
|
122
|
+
return <div />;
|
123
|
+
};
|
124
|
+
|
125
|
+
export const getRemediations = entry => {
|
126
|
+
if (entry.detail && entry.detail.remediations) {
|
127
|
+
return entry.detail.remediations.map(attr => {
|
128
|
+
const key = itemIteratorId(entry, attr);
|
129
|
+
if (attr.type === 'hint') {
|
130
|
+
return (
|
131
|
+
<Grid.Row className="top-padded" key={key}>
|
132
|
+
<Grid.Col md={1}>
|
133
|
+
<strong>Hint</strong>
|
134
|
+
</Grid.Col>
|
135
|
+
<Grid.Col md={8}>{attr.context}</Grid.Col>
|
136
|
+
</Grid.Row>
|
137
|
+
);
|
138
|
+
}
|
139
|
+
if (attr.type === 'command') {
|
140
|
+
return (
|
141
|
+
<Grid.Row className="top-padded" key={key}>
|
142
|
+
<Grid.Col md={1}>
|
143
|
+
<strong>Command</strong>
|
144
|
+
</Grid.Col>
|
145
|
+
<Grid.Col md={8}>
|
146
|
+
<code>{attr.context.join(' ')}</code>
|
147
|
+
</Grid.Col>
|
148
|
+
</Grid.Row>
|
149
|
+
);
|
150
|
+
}
|
151
|
+
|
152
|
+
return <div />;
|
153
|
+
});
|
154
|
+
}
|
155
|
+
return <div />;
|
28
156
|
};
|
@@ -1,26 +1,39 @@
|
|
1
|
-
import React from 'react';
|
1
|
+
import React, { useState } from 'react';
|
2
2
|
import { ListView } from 'patternfly-react';
|
3
3
|
import PropTypes from 'prop-types';
|
4
4
|
|
5
|
+
import Pagination from 'foremanReact/components/Pagination/PaginationWrapper';
|
6
|
+
import { useForemanSettings } from 'foremanReact/Root/Context/ForemanContext';
|
7
|
+
|
5
8
|
import PreupgradeReportEntry from './components/PreupgradeReportEntry';
|
9
|
+
import { entriesPage } from '../PreupgradeReports/PreupgradeReportsHelpers';
|
6
10
|
|
7
|
-
const PreupgradeReportsList = ({
|
8
|
-
const
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
const PreupgradeReportsList = ({ allEntries }) => {
|
12
|
+
const { perPage, perPageOptions } = useForemanSettings();
|
13
|
+
const [pagination, setPagination] = useState({
|
14
|
+
page: 1,
|
15
|
+
perPage,
|
16
|
+
perPageOptions,
|
17
|
+
});
|
12
18
|
|
13
19
|
return (
|
14
20
|
<ListView>
|
15
|
-
{
|
21
|
+
{entriesPage(allEntries, pagination).map((entry, idx) => (
|
16
22
|
<PreupgradeReportEntry entry={entry} key={idx} />
|
17
23
|
))}
|
24
|
+
<Pagination
|
25
|
+
viewType="list"
|
26
|
+
itemCount={allEntries.length}
|
27
|
+
pagination={pagination}
|
28
|
+
onChange={newPage => setPagination({ ...pagination, ...newPage })}
|
29
|
+
dropdownButtonId="preupgrade-report-entries-pagination-dropdown"
|
30
|
+
/>
|
18
31
|
</ListView>
|
19
32
|
);
|
20
33
|
};
|
21
34
|
|
22
35
|
PreupgradeReportsList.propTypes = {
|
23
|
-
|
36
|
+
allEntries: PropTypes.array.isRequired,
|
24
37
|
};
|
25
38
|
|
26
39
|
export default PreupgradeReportsList;
|
data/webpack/csrf.js
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_leapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Foreman Leapp team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: foreman_remote_execution
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: foreman_ansible
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rdoc
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -107,37 +121,45 @@ files:
|
|
107
121
|
- test/test_plugin_helper.rb
|
108
122
|
- test/unit/actions/preupgrade_job_test.rb
|
109
123
|
- test/unit/helpers/job_helper_test.rb
|
124
|
+
- webpack/__mocks__/foremanReact/Root/Context/ForemanContext.js
|
110
125
|
- webpack/__mocks__/foremanReact/common/I18n.js
|
126
|
+
- webpack/__mocks__/foremanReact/components/Pagination/PaginationWrapper.js
|
111
127
|
- webpack/__mocks__/foremanReact/components/common/MessageBox.js
|
112
128
|
- webpack/components/PreupgradeReports/PreupgradeReports.js
|
113
129
|
- webpack/components/PreupgradeReports/PreupgradeReportsActions.js
|
130
|
+
- webpack/components/PreupgradeReports/PreupgradeReportsHelpers.js
|
114
131
|
- webpack/components/PreupgradeReports/PreupgradeReportsReducer.js
|
115
132
|
- webpack/components/PreupgradeReports/PreupgradeReportsSelectors.js
|
116
133
|
- webpack/components/PreupgradeReports/__tests__/PreupgradeReports.fixtures.js
|
117
134
|
- webpack/components/PreupgradeReports/__tests__/PreupgradeReports.test.js
|
135
|
+
- webpack/components/PreupgradeReports/__tests__/PreupgradeReportsHelpers.test.js
|
118
136
|
- webpack/components/PreupgradeReports/__tests__/PreupgradeReportsReducer.test.js
|
119
137
|
- webpack/components/PreupgradeReports/__tests__/PreupgradeReportsSelectors.test.js
|
120
138
|
- webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReports.test.js.snap
|
139
|
+
- webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsHelpers.test.js.snap
|
121
140
|
- webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsReducer.test.js.snap
|
122
141
|
- webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsSelectors.test.js.snap
|
142
|
+
- webpack/components/PreupgradeReports/components/FixAllButton.js
|
143
|
+
- webpack/components/PreupgradeReports/components/FixAllButton.test.js
|
144
|
+
- webpack/components/PreupgradeReports/components/__snapshots__/FixAllButton.test.js.snap
|
123
145
|
- webpack/components/PreupgradeReports/index.js
|
124
146
|
- webpack/components/PreupgradeReportsList/__tests__/PreupgradeReportsList.test.js
|
125
147
|
- webpack/components/PreupgradeReportsList/__tests__/__snapshots__/PreupgradeReportsList.test.js.snap
|
126
148
|
- webpack/components/PreupgradeReportsList/components/EmptyInfoItem.js
|
127
149
|
- webpack/components/PreupgradeReportsList/components/InfoItem.js
|
128
150
|
- webpack/components/PreupgradeReportsList/components/PreupgradeReportEntry.js
|
129
|
-
- webpack/components/PreupgradeReportsList/components/StringInfoItem.js
|
130
151
|
- webpack/components/PreupgradeReportsList/components/__tests__/EmptyInfoItem.test.js
|
152
|
+
- webpack/components/PreupgradeReportsList/components/__tests__/PreupgradeReportEntry.fixtures.js
|
131
153
|
- webpack/components/PreupgradeReportsList/components/__tests__/PreupgradeReportEntry.test.js
|
132
|
-
- webpack/components/PreupgradeReportsList/components/__tests__/StringInfoItem.test.js
|
133
154
|
- webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/EmptyInfoItem.test.js.snap
|
134
155
|
- webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/PreupgradeReportEntry.test.js.snap
|
135
|
-
- webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/StringInfoItem.test.js.snap
|
136
156
|
- webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/helpers.test.js.snap
|
137
157
|
- webpack/components/PreupgradeReportsList/components/__tests__/helpers.test.js
|
158
|
+
- webpack/components/PreupgradeReportsList/components/foreman_leapp.scss
|
138
159
|
- webpack/components/PreupgradeReportsList/components/helpers.js
|
139
160
|
- webpack/components/PreupgradeReportsList/index.js
|
140
161
|
- webpack/consts.js
|
162
|
+
- webpack/csrf.js
|
141
163
|
- webpack/index.js
|
142
164
|
- webpack/reducer.js
|
143
165
|
- webpack/testSetup.js
|
@@ -1,49 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import EllipsisWithTooltip from 'react-ellipsis-with-tooltip';
|
3
|
-
import PropTypes from 'prop-types';
|
4
|
-
import { translate as __ } from 'foremanReact/common/I18n';
|
5
|
-
|
6
|
-
import InfoItem from './InfoItem';
|
7
|
-
import { itemIteratorId } from './helpers';
|
8
|
-
|
9
|
-
const StringInfoItem = ({
|
10
|
-
entry,
|
11
|
-
attr,
|
12
|
-
tooltipText,
|
13
|
-
translate,
|
14
|
-
mapAttr,
|
15
|
-
elipsed,
|
16
|
-
}) => {
|
17
|
-
const inner = (
|
18
|
-
<span>{translate ? __(mapAttr(entry, attr)) : mapAttr(entry, attr)}</span>
|
19
|
-
);
|
20
|
-
const innerContent = elipsed ? (
|
21
|
-
<EllipsisWithTooltip placement="top">{inner}</EllipsisWithTooltip>
|
22
|
-
) : (
|
23
|
-
inner
|
24
|
-
);
|
25
|
-
|
26
|
-
return (
|
27
|
-
<InfoItem itemId={itemIteratorId(entry, attr)} tooltipText={tooltipText}>
|
28
|
-
{innerContent}
|
29
|
-
</InfoItem>
|
30
|
-
);
|
31
|
-
};
|
32
|
-
|
33
|
-
StringInfoItem.propTypes = {
|
34
|
-
entry: PropTypes.object.isRequired,
|
35
|
-
attr: PropTypes.string.isRequired,
|
36
|
-
tooltipText: PropTypes.string,
|
37
|
-
translate: PropTypes.bool,
|
38
|
-
mapAttr: PropTypes.func,
|
39
|
-
elipsed: PropTypes.bool,
|
40
|
-
};
|
41
|
-
|
42
|
-
StringInfoItem.defaultProps = {
|
43
|
-
translate: false,
|
44
|
-
mapAttr: (entry, attr) => entry[attr],
|
45
|
-
elipsed: false,
|
46
|
-
tooltipText: undefined,
|
47
|
-
};
|
48
|
-
|
49
|
-
export default StringInfoItem;
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
|
2
|
-
|
3
|
-
import StringInfoItem from '../StringInfoItem';
|
4
|
-
|
5
|
-
const fixtures = {
|
6
|
-
'should render': {
|
7
|
-
entry: { title: 'no title', severity: 'low', id: 5, preupgradeReportId: 7 },
|
8
|
-
attr: 'title',
|
9
|
-
},
|
10
|
-
};
|
11
|
-
|
12
|
-
describe('StringInfoItem', () =>
|
13
|
-
testComponentSnapshotsWithFixtures(StringInfoItem, fixtures));
|