katello 4.7.0.rc1 → 4.7.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of katello might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/lib/actions/candlepin/abstract_async_task.rb +7 -3
- data/app/lib/actions/candlepin/owner/{upstream_export.rb → retrieve_upstream_export.rb} +3 -3
- data/app/lib/actions/candlepin/owner/start_upstream_export.rb +24 -0
- data/app/lib/actions/candlepin/upstream_abstract_async_task.rb +30 -0
- data/app/lib/actions/katello/organization/manifest_refresh.rb +12 -7
- data/app/lib/actions/middleware/propagate_candlepin_errors.rb +6 -1
- data/app/lib/actions/pulp3/orchestration/orphan_cleanup/remove_orphans.rb +1 -0
- data/app/lib/actions/pulp3/orphan_cleanup/delete_orphan_alternate_content_sources.rb +16 -0
- data/app/lib/katello/errors.rb +1 -0
- data/app/lib/katello/resources/candlepin/upstream_consumer.rb +1 -1
- data/app/lib/katello/resources/candlepin/upstream_job.rb +28 -0
- data/app/models/katello/content_view_erratum_filter.rb +5 -4
- data/app/models/katello/glue/provider.rb +28 -18
- data/app/services/katello/pulp3/docker_manifest.rb +2 -1
- data/app/services/katello/pulp3/docker_manifest_list.rb +2 -1
- data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +21 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +2 -2
- data/lib/katello/repository_types/docker.rb +2 -1
- data/lib/katello/version.rb +1 -1
- data/locale/action_names.rb +68 -68
- data/locale/bn/katello.po +38 -35
- data/locale/cs/katello.po +38 -35
- data/locale/de/katello.po +130 -126
- data/locale/en/katello.po +38 -35
- data/locale/es/katello.po +95 -88
- data/locale/fr/katello.po +95 -88
- data/locale/gu/katello.po +44 -41
- data/locale/hi/katello.po +43 -40
- data/locale/it/katello.po +61 -56
- data/locale/ja/katello.po +615 -614
- data/locale/ka/katello.po +8821 -0
- data/locale/katello.pot +353 -339
- data/locale/kn/katello.po +41 -38
- data/locale/ko/katello.po +62 -59
- data/locale/mr/katello.po +41 -38
- data/locale/or/katello.po +43 -40
- data/locale/pa/katello.po +41 -38
- data/locale/pt/katello.po +40 -36
- data/locale/pt_BR/katello.po +91 -84
- data/locale/ru/katello.po +68 -65
- data/locale/ta/katello.po +38 -35
- data/locale/te/katello.po +41 -38
- data/locale/zanata.xml +4 -2
- data/locale/zh_CN/katello.po +99 -96
- data/locale/zh_TW/katello.po +62 -59
- data/webpack/components/Table/EmptyStateMessage.js +3 -3
- data/webpack/containers/Application/overrides.scss +13 -1
- data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +8 -3
- data/webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js +8 -8
- data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +0 -6
- data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +0 -6
- data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +67 -9
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +4 -4
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +6 -6
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +6 -6
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +6 -8
- data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.scss +31 -0
- data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareHeader.js +5 -7
- data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareTable.js +9 -2
- metadata +12 -7
data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js
CHANGED
@@ -118,10 +118,10 @@ test('Can remove a filter rule', async (done) => {
|
|
118
118
|
|
119
119
|
await patientlyWaitFor(() => {
|
120
120
|
expect(getByText(name)).toBeInTheDocument();
|
121
|
-
expect(getAllByLabelText('Actions')[
|
121
|
+
expect(getAllByLabelText('Actions')[2]).toHaveAttribute('aria-expanded', 'false');
|
122
122
|
});
|
123
|
-
fireEvent.click(getAllByLabelText('Actions')[
|
124
|
-
expect(getAllByLabelText('Actions')[
|
123
|
+
fireEvent.click(getAllByLabelText('Actions')[2]);
|
124
|
+
expect(getAllByLabelText('Actions')[2]).toHaveAttribute('aria-expanded', 'true');
|
125
125
|
await patientlyWaitFor(() => expect(getByText('Remove')).toBeInTheDocument());
|
126
126
|
fireEvent.click(getByText('Remove'));
|
127
127
|
|
@@ -175,10 +175,10 @@ test('Can add a filter rule', async (done) => {
|
|
175
175
|
|
176
176
|
await patientlyWaitFor(() => {
|
177
177
|
expect(getByText(name)).toBeInTheDocument();
|
178
|
-
expect(getAllByLabelText('Actions')[
|
178
|
+
expect(getAllByLabelText('Actions')[3]).toHaveAttribute('aria-expanded', 'false');
|
179
179
|
});
|
180
|
-
fireEvent.click(getAllByLabelText('Actions')[
|
181
|
-
expect(getAllByLabelText('Actions')[
|
180
|
+
fireEvent.click(getAllByLabelText('Actions')[3]);
|
181
|
+
expect(getAllByLabelText('Actions')[3]).toHaveAttribute('aria-expanded', 'true');
|
182
182
|
await patientlyWaitFor(() => expect(getByText('Add')).toBeInTheDocument());
|
183
183
|
fireEvent.click(getByText('Add'));
|
184
184
|
|
@@ -132,10 +132,10 @@ test('Can add a filter rule', async (done) => {
|
|
132
132
|
|
133
133
|
await patientlyWaitFor(() => {
|
134
134
|
expect(getByText(errataId)).toBeInTheDocument();
|
135
|
-
expect(getAllByLabelText('Actions')[
|
135
|
+
expect(getAllByLabelText('Actions')[3]).toHaveAttribute('aria-expanded', 'false');
|
136
136
|
});
|
137
|
-
fireEvent.click(getAllByLabelText('Actions')[
|
138
|
-
expect(getAllByLabelText('Actions')[
|
137
|
+
fireEvent.click(getAllByLabelText('Actions')[3]);
|
138
|
+
expect(getAllByLabelText('Actions')[3]).toHaveAttribute('aria-expanded', 'true');
|
139
139
|
await patientlyWaitFor(() => expect(getByText('Add')).toBeInTheDocument());
|
140
140
|
fireEvent.click(getByText('Add'));
|
141
141
|
|
@@ -190,10 +190,10 @@ test('Can remove a filter rule', async (done) => {
|
|
190
190
|
|
191
191
|
await patientlyWaitFor(() => {
|
192
192
|
expect(getByText(errataId)).toBeInTheDocument();
|
193
|
-
expect(getAllByLabelText('Actions')[
|
193
|
+
expect(getAllByLabelText('Actions')[2]).toHaveAttribute('aria-expanded', 'false');
|
194
194
|
});
|
195
|
-
fireEvent.click(getAllByLabelText('Actions')[
|
196
|
-
expect(getAllByLabelText('Actions')[
|
195
|
+
fireEvent.click(getAllByLabelText('Actions')[2]);
|
196
|
+
expect(getAllByLabelText('Actions')[2]).toHaveAttribute('aria-expanded', 'true');
|
197
197
|
await patientlyWaitFor(() => expect(getByText('Remove')).toBeInTheDocument());
|
198
198
|
fireEvent.click(getByText('Remove'));
|
199
199
|
|
@@ -132,20 +132,18 @@ test('Can add a filter rule', async (done) => {
|
|
132
132
|
|
133
133
|
await patientlyWaitFor(() => {
|
134
134
|
expect(getByText(name)).toBeInTheDocument();
|
135
|
-
expect(getAllByLabelText('Actions')[
|
135
|
+
expect(getAllByLabelText('Actions')[3]).toHaveAttribute('aria-expanded', 'false');
|
136
136
|
});
|
137
|
-
fireEvent.click(getAllByLabelText('Actions')[
|
138
|
-
expect(getAllByLabelText('Actions')[
|
137
|
+
fireEvent.click(getAllByLabelText('Actions')[3]);
|
138
|
+
expect(getAllByLabelText('Actions')[3]).toHaveAttribute('aria-expanded', 'true');
|
139
139
|
await patientlyWaitFor(() => expect(getByText('Add')).toBeInTheDocument());
|
140
140
|
fireEvent.click(getByText('Add'));
|
141
141
|
|
142
|
-
|
143
142
|
assertNockRequest(autocompleteScope);
|
144
143
|
assertNockRequest(cvFilterScope);
|
145
144
|
assertNockRequest(cvFiltersScope);
|
146
145
|
assertNockRequest(cvFiltersRuleScope);
|
147
146
|
assertNockRequest(cvRequestCallbackScope);
|
148
|
-
|
149
147
|
assertNockRequest(moduleStreamsScope, done);
|
150
148
|
});
|
151
149
|
|
@@ -190,10 +188,10 @@ test('Can remove a filter rule', async (done) => {
|
|
190
188
|
|
191
189
|
await patientlyWaitFor(() => {
|
192
190
|
expect(getByText(name)).toBeInTheDocument();
|
193
|
-
expect(getAllByLabelText('Actions')[
|
191
|
+
expect(getAllByLabelText('Actions')[2]).toHaveAttribute('aria-expanded', 'false');
|
194
192
|
});
|
195
|
-
fireEvent.click(getAllByLabelText('Actions')[
|
196
|
-
expect(getAllByLabelText('Actions')[
|
193
|
+
fireEvent.click(getAllByLabelText('Actions')[2]);
|
194
|
+
expect(getAllByLabelText('Actions')[2]).toHaveAttribute('aria-expanded', 'true');
|
197
195
|
await patientlyWaitFor(() => expect(getByText('Remove')).toBeInTheDocument());
|
198
196
|
fireEvent.click(getByText('Remove'));
|
199
197
|
|
@@ -49,3 +49,34 @@
|
|
49
49
|
width: 100%;
|
50
50
|
}
|
51
51
|
}
|
52
|
+
|
53
|
+
.cvv-spaced-tooltip {
|
54
|
+
margin-left: 8px;
|
55
|
+
display: flex;
|
56
|
+
align-items: center;
|
57
|
+
}
|
58
|
+
|
59
|
+
.cvv-compare-bordered-table-header {
|
60
|
+
th:nth-last-child(-n+2) {
|
61
|
+
padding-left: 2rem;
|
62
|
+
}
|
63
|
+
|
64
|
+
th:nth-last-child(3) {
|
65
|
+
margin-left: 2rem;
|
66
|
+
border-right: var(--pf-global--BorderWidth--sm);
|
67
|
+
border-right-color: var(--pf-c-table--BorderColor);
|
68
|
+
border-right-style: inset;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
.cvv-compare-bordered-table-rows {
|
73
|
+
td:nth-last-child(3) {
|
74
|
+
border-right: var(--pf-global--BorderWidth--sm);
|
75
|
+
border-right-color: var(--pf-c-table--BorderColor);
|
76
|
+
border-right-style: inset;
|
77
|
+
}
|
78
|
+
|
79
|
+
td:nth-last-child(-n+2) {
|
80
|
+
padding-left: 4rem;
|
81
|
+
}
|
82
|
+
}
|
@@ -3,11 +3,11 @@ import PropTypes from 'prop-types';
|
|
3
3
|
import { translate as __ } from 'foremanReact/common/I18n';
|
4
4
|
import { useSelector } from 'react-redux';
|
5
5
|
import {
|
6
|
-
Grid, GridItem, TextContent, Text, TextVariants,
|
6
|
+
Grid, GridItem, TextContent, Text, TextVariants,
|
7
7
|
Select, SelectOption, SelectVariant, Flex, FlexItem,
|
8
8
|
} from '@patternfly/react-core';
|
9
|
-
import { OutlinedQuestionCircleIcon } from '@patternfly/react-icons';
|
10
9
|
import { selectCVDetails } from '../../ContentViewDetailSelectors';
|
10
|
+
import { HelpToolTip } from '../../../Create/ContentViewFormComponents';
|
11
11
|
|
12
12
|
const CVVersionCompareHeader = ({
|
13
13
|
versionOne, versionTwo, cvId, setVersionOne, setVersionTwo, selectedViewBy, setSelectedViewBy,
|
@@ -81,13 +81,11 @@ const CVVersionCompareHeader = ({
|
|
81
81
|
<TextContent>
|
82
82
|
<Text ouiaId="cv-version-compare-button" component={TextVariants.h2}>{__('Compare')}</Text>
|
83
83
|
</TextContent>
|
84
|
-
<
|
85
|
-
<OutlinedQuestionCircleIcon />
|
86
|
-
</Tooltip>
|
84
|
+
<HelpToolTip className="cvv-spaced-tooltip" tooltip={toolTipContent} />
|
87
85
|
</GridItem>
|
88
86
|
<GridItem span={12}>
|
89
87
|
<Flex>
|
90
|
-
<FlexItem>
|
88
|
+
<FlexItem style={{ marginRight: '60px' }}>
|
91
89
|
<Flex direction={{ default: 'column' }}>
|
92
90
|
<h3><b>{__('Versions to compare')}</b></h3>
|
93
91
|
<FlexItem>
|
@@ -146,7 +144,7 @@ const CVVersionCompareHeader = ({
|
|
146
144
|
</FlexItem>
|
147
145
|
</Flex>
|
148
146
|
</FlexItem >
|
149
|
-
<FlexItem style={{
|
147
|
+
<FlexItem className="border-left" style={{ paddingLeft: '60px' }}>
|
150
148
|
<Flex direction={{ default: 'column' }}>
|
151
149
|
<h3><b>{__('View by')}</b></h3>
|
152
150
|
<FlexItem>
|
@@ -8,6 +8,7 @@ import { TableVariant, Tr, Th, Tbody, Td, Thead } from '@patternfly/react-table'
|
|
8
8
|
import { TableType } from './CVVersionCompareConfig';
|
9
9
|
import TableWrapper from '../../../../../components/Table/TableWrapper';
|
10
10
|
import { useTableSort } from '../../../../../components/Table/TableHooks';
|
11
|
+
import './CVVersionCompare.scss';
|
11
12
|
|
12
13
|
const CVVersionCompareTable = ({
|
13
14
|
tableConfig: {
|
@@ -59,6 +60,7 @@ const CVVersionCompareTable = ({
|
|
59
60
|
emptyContentTitle={__(`No matching ${name} found.`)}
|
60
61
|
emptyContentBody=""
|
61
62
|
variant={TableVariant.compact}
|
63
|
+
className="cvv-compare-bordered-table-rows cvv-compare-bordered-table-header"
|
62
64
|
>
|
63
65
|
<Thead>
|
64
66
|
<Tr ouiaId="column-headers">
|
@@ -78,8 +80,13 @@ const CVVersionCompareTable = ({
|
|
78
80
|
(
|
79
81
|
<Tr key={`column-${result.id}`} ouiaId={`column-${result.id}`}>
|
80
82
|
{columnHeaders.map(({ getProperty }, colIndex) =>
|
81
|
-
|
82
|
-
|
83
|
+
(
|
84
|
+
<Td
|
85
|
+
// eslint-disable-next-line react/no-array-index-key
|
86
|
+
key={`cell-${colIndex}`}
|
87
|
+
>
|
88
|
+
{getProperty(result)}
|
89
|
+
</Td>))}
|
83
90
|
</Tr>
|
84
91
|
))}
|
85
92
|
</Tbody>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: katello
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.7.0.
|
4
|
+
version: 4.7.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- N/A
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-11-
|
11
|
+
date: 2022-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -837,7 +837,8 @@ files:
|
|
837
837
|
- app/lib/actions/candlepin/owner/destroy_imports.rb
|
838
838
|
- app/lib/actions/candlepin/owner/import.rb
|
839
839
|
- app/lib/actions/candlepin/owner/import_products.rb
|
840
|
-
- app/lib/actions/candlepin/owner/
|
840
|
+
- app/lib/actions/candlepin/owner/retrieve_upstream_export.rb
|
841
|
+
- app/lib/actions/candlepin/owner/start_upstream_export.rb
|
841
842
|
- app/lib/actions/candlepin/owner/upstream_update.rb
|
842
843
|
- app/lib/actions/candlepin/product/content_add.rb
|
843
844
|
- app/lib/actions/candlepin/product/content_create.rb
|
@@ -850,6 +851,7 @@ files:
|
|
850
851
|
- app/lib/actions/candlepin/product/delete_subscriptions.rb
|
851
852
|
- app/lib/actions/candlepin/product/destroy.rb
|
852
853
|
- app/lib/actions/candlepin/product/update.rb
|
854
|
+
- app/lib/actions/candlepin/upstream_abstract_async_task.rb
|
853
855
|
- app/lib/actions/helpers/notifications.rb
|
854
856
|
- app/lib/actions/helpers/output_propagator.rb
|
855
857
|
- app/lib/actions/helpers/presenter.rb
|
@@ -1110,6 +1112,7 @@ files:
|
|
1110
1112
|
- app/lib/actions/pulp3/orchestration/repository/trigger_update_repo_cert_guard.rb
|
1111
1113
|
- app/lib/actions/pulp3/orchestration/repository/update.rb
|
1112
1114
|
- app/lib/actions/pulp3/orchestration/repository/upload_content.rb
|
1115
|
+
- app/lib/actions/pulp3/orphan_cleanup/delete_orphan_alternate_content_sources.rb
|
1113
1116
|
- app/lib/actions/pulp3/orphan_cleanup/delete_orphan_distributions.rb
|
1114
1117
|
- app/lib/actions/pulp3/orphan_cleanup/delete_orphan_remotes.rb
|
1115
1118
|
- app/lib/actions/pulp3/orphan_cleanup/delete_orphan_repository_versions.rb
|
@@ -1197,6 +1200,7 @@ files:
|
|
1197
1200
|
- app/lib/katello/resources/candlepin/subscription.rb
|
1198
1201
|
- app/lib/katello/resources/candlepin/upstream_consumer.rb
|
1199
1202
|
- app/lib/katello/resources/candlepin/upstream_entitlement.rb
|
1203
|
+
- app/lib/katello/resources/candlepin/upstream_job.rb
|
1200
1204
|
- app/lib/katello/resources/candlepin/upstream_owner.rb
|
1201
1205
|
- app/lib/katello/resources/candlepin/upstream_pool.rb
|
1202
1206
|
- app/lib/katello/resources/cdn.rb
|
@@ -4493,6 +4497,7 @@ files:
|
|
4493
4497
|
- locale/hi/katello.po
|
4494
4498
|
- locale/it/katello.po
|
4495
4499
|
- locale/ja/katello.po
|
4500
|
+
- locale/ka/katello.po
|
4496
4501
|
- locale/katello.pot
|
4497
4502
|
- locale/kn/katello.po
|
4498
4503
|
- locale/ko/katello.po
|
@@ -5419,7 +5424,7 @@ homepage: http://www.katello.org
|
|
5419
5424
|
licenses:
|
5420
5425
|
- GPL-2.0
|
5421
5426
|
metadata: {}
|
5422
|
-
post_install_message:
|
5427
|
+
post_install_message:
|
5423
5428
|
rdoc_options: []
|
5424
5429
|
require_paths:
|
5425
5430
|
- lib
|
@@ -5434,8 +5439,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
5434
5439
|
- !ruby/object:Gem::Version
|
5435
5440
|
version: 1.3.1
|
5436
5441
|
requirements: []
|
5437
|
-
rubygems_version: 3.
|
5438
|
-
signing_key:
|
5442
|
+
rubygems_version: 3.3.7
|
5443
|
+
signing_key:
|
5439
5444
|
specification_version: 4
|
5440
5445
|
summary: Content and Subscription Management plugin for Foreman
|
5441
5446
|
test_files: []
|