foreman_leapp 0.0.5 → 0.0.6
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/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));
|