katello 3.16.0.rc1.1 → 3.16.0.rc4
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/controllers/katello/api/v2/api_controller.rb +8 -4
- data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/upstream_subscriptions_controller.rb +13 -1
- data/app/controllers/katello/concerns/hosts_controller_extensions.rb +11 -0
- data/app/controllers/katello/remote_execution_controller.rb +1 -1
- data/app/lib/actions/katello/applicability/hosts/{generate.rb → bulk_generate.rb} +11 -2
- data/app/lib/actions/katello/applicability/repository/regenerate.rb +7 -2
- data/app/lib/actions/katello/host/generate_applicability.rb +7 -2
- data/app/lib/actions/katello/host/upload_profiles.rb +20 -11
- data/app/lib/actions/katello/repository/sync.rb +1 -2
- data/app/lib/actions/katello/repository/update.rb +12 -1
- data/app/lib/actions/katello/repository/update_cv_repo_cert_guard.rb +17 -0
- data/app/lib/actions/pulp3/ContentGuard/refresh.rb +19 -0
- data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +6 -8
- data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +1 -1
- data/app/lib/actions/pulp3/repository/copy_content.rb +1 -0
- data/app/lib/actions/pulp3/repository/refresh_distribution.rb +1 -0
- data/app/lib/actions/pulp3/repository/save_distribution_references.rb +3 -1
- data/app/lib/actions/pulp3/repository/save_version.rb +3 -1
- data/app/lib/actions/pulp3/repository/update_cv_repository_cert_guard.rb +15 -0
- data/app/lib/katello/concerns/base_template_scope_extensions.rb +5 -1
- data/app/lib/katello/errors.rb +25 -0
- data/app/lib/katello/logging.rb +14 -0
- data/app/lib/katello/resources/candlepin.rb +1 -1
- data/app/lib/katello/resources/candlepin/upstream_consumer.rb +6 -0
- data/app/lib/katello/util/errata.rb +13 -0
- data/app/lib/katello/util/pulpcore_content_filters.rb +32 -0
- data/app/models/katello/concerns/host_managed_extensions.rb +7 -0
- data/app/models/katello/concerns/http_proxy_extensions.rb +30 -7
- data/app/models/katello/concerns/organization_extensions.rb +14 -0
- data/app/models/katello/concerns/pulp_database_unit.rb +2 -2
- data/app/models/katello/content_view_erratum_filter.rb +29 -0
- data/app/models/katello/content_view_package_filter.rb +16 -1
- data/app/models/katello/content_view_package_group_filter.rb +7 -0
- data/app/models/katello/events/generate_host_applicability.rb +6 -5
- data/app/models/katello/glue/candlepin/candlepin_object.rb +9 -5
- data/app/models/katello/glue/candlepin/pool.rb +8 -3
- data/app/models/katello/glue/provider.rb +11 -4
- data/app/models/katello/host/content_facet.rb +1 -1
- data/app/models/katello/host_queue_element.rb +4 -0
- data/app/models/katello/package_group.rb +2 -1
- data/app/models/katello/pool.rb +1 -1
- data/app/models/katello/pulp3/content_guard.rb +14 -0
- data/app/models/katello/rhsm_fact_parser.rb +4 -0
- data/app/models/katello/root_repository.rb +4 -1
- data/app/models/setting/content.rb +3 -1
- data/app/services/katello/applicable_host_queue.rb +21 -0
- data/app/services/katello/candlepin/message_handler.rb +2 -3
- data/app/services/katello/pulp/pulp_content_unit.rb +4 -0
- data/app/services/katello/pulp3/api/content_guard.rb +45 -0
- data/app/services/katello/pulp3/api/yum.rb +24 -0
- data/app/services/katello/pulp3/erratum.rb +4 -0
- data/app/services/katello/pulp3/pulp_content_unit.rb +4 -0
- data/app/services/katello/pulp3/repository.rb +29 -6
- data/app/services/katello/pulp3/repository/yum.rb +98 -3
- data/app/services/katello/pulp3/rpm.rb +3 -2
- data/app/services/katello/ui_notifications/subscriptions/manifest_expired_warning.rb +20 -8
- data/app/services/katello/upstream_connection_checker.rb +48 -0
- data/app/views/katello/api/v2/srpms/backend.json.rabl +11 -0
- data/app/views/katello/api/v2/srpms/base.json.rabl +5 -0
- data/app/views/katello/api/v2/srpms/compare.json.rabl +10 -0
- data/app/views/katello/api/v2/srpms/index.json.rabl +1 -1
- data/app/views/katello/api/v2/srpms/show.json.rabl +3 -3
- data/config/routes/api/v2.rb +2 -0
- data/db/migrate/20200407171926_create_content_guard.rb +10 -0
- data/db/migrate/20200511204005_create_katello_host_queue_elements.rb +12 -0
- data/db/migrate/20200526200422_encrypt_root_repository_upstream_password.rb +47 -0
- data/db/seeds.d/109-katello-notification-blueprints.rb +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-repository-sets.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-traces.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +367 -450
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +4046 -2509
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +4277 -2503
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +4372 -2591
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +4013 -2500
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +4127 -2630
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +4024 -2530
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +4492 -2766
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +4293 -2667
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +4072 -2460
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +4004 -2442
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +10 -10
- data/lib/katello/permission_creator.rb +1 -1
- data/lib/katello/version.rb +1 -1
- data/locale/action_names.rb +51 -43
- data/locale/bn/katello.po +4015 -2558
- data/locale/cs/katello.po +3756 -2221
- data/locale/de/katello.po +4303 -3044
- data/locale/en/katello.po +3137 -1558
- data/locale/es/katello.po +4280 -3012
- data/locale/fr/katello.po +4302 -3080
- data/locale/gu/katello.po +4034 -2584
- data/locale/hi/katello.po +4034 -2575
- data/locale/it/katello.po +4291 -3040
- data/locale/ja/katello.po +4345 -2863
- data/locale/katello.pot +2631 -1460
- data/locale/kn/katello.po +4033 -2585
- data/locale/ko/katello.po +4320 -2815
- data/locale/mr/katello.po +3971 -2506
- data/locale/or/katello.po +4018 -2559
- data/locale/pa/katello.po +3985 -2514
- data/locale/pt/katello.po +3358 -1810
- data/locale/pt_BR/katello.po +4252 -2959
- data/locale/ru/katello.po +4308 -2902
- data/locale/ta/katello.po +4012 -2562
- data/locale/te/katello.po +4046 -2585
- data/locale/zh_CN/katello.po +4344 -2803
- data/locale/zh_TW/katello.po +4470 -2957
- data/package.json +3 -3
- data/webpack/components/Content/ContentTable.js +2 -0
- data/webpack/components/Content/Details/ContentDetails.js +3 -0
- data/webpack/global_test_setup.js +3 -0
- data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionDetails.js +3 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetails.js +3 -0
- data/webpack/scenes/RedHatRepositories/RedHatRepositoriesPage.js +2 -0
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +2 -0
- data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/RepositorySetRepository.js +2 -0
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailAssociations.js +2 -0
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProductContent.js +2 -0
- data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProducts.js +2 -0
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +2 -0
- data/webpack/scenes/Subscriptions/SubscriptionActions.js +19 -21
- data/webpack/scenes/Subscriptions/SubscriptionConstants.js +3 -1
- data/webpack/scenes/Subscriptions/SubscriptionReducer.js +15 -1
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +66 -9
- data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +11 -0
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsActions.js +15 -1
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/{UpstreamSubscriptionsContstants.js → UpstreamSubscriptionsConstants.js} +3 -0
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +2 -0
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsReducer.js +1 -1
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsReducer.test.js +1 -1
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +10 -34
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +17 -7
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +2 -4
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +6 -4
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +26 -25
- data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +0 -58
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTable.js +10 -4
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +1 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +1 -68
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/UpdateDialog.js +1 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/index.js +4 -4
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Table.js +12 -10
- data/webpack/scenes/Subscriptions/index.js +11 -4
- data/webpack/scenes/Tasks/TaskActions.js +2 -1
- data/webpack/test-utils/nockWrapper.js +1 -1
- metadata +54 -24
@@ -93,50 +93,6 @@ export const requestSuccessResponse = Immutable({
|
|
93
93
|
],
|
94
94
|
});
|
95
95
|
|
96
|
-
export const requestSuccessResponseWithRHSubscriptions = Immutable({
|
97
|
-
organization: {},
|
98
|
-
total: 81,
|
99
|
-
subtotal: 1,
|
100
|
-
page: 1,
|
101
|
-
per_page: 2,
|
102
|
-
error: null,
|
103
|
-
search: null,
|
104
|
-
sort: {
|
105
|
-
by: 'cp_id',
|
106
|
-
order: 'asc',
|
107
|
-
},
|
108
|
-
results: [
|
109
|
-
{
|
110
|
-
id: 4,
|
111
|
-
cp_id: '4028f95a62ce96190162cf435202005b',
|
112
|
-
subscription_id: 5,
|
113
|
-
name: 'Some RH Product',
|
114
|
-
start_date: '2013-02-28 18:00:00 -1100',
|
115
|
-
end_date: '2021-12-31 17:59:59 -1100',
|
116
|
-
available: 12,
|
117
|
-
quantity: 12,
|
118
|
-
consumed: 0,
|
119
|
-
account_number: 1000000,
|
120
|
-
contract_number: 20000000,
|
121
|
-
support_level: 'Self-Support',
|
122
|
-
product_id: 'Z3BRU11',
|
123
|
-
sockets: null,
|
124
|
-
cores: null,
|
125
|
-
ram: null,
|
126
|
-
instance_multiplier: 1,
|
127
|
-
stacking_id: null,
|
128
|
-
multi_entitlement: null,
|
129
|
-
type: 'NORMAL',
|
130
|
-
product_name: 'Some RH Product',
|
131
|
-
unmapped_guest: false,
|
132
|
-
virt_only: false,
|
133
|
-
virt_who: false,
|
134
|
-
upstream: true,
|
135
|
-
upstream_pool_id: '8a85f98160f068060160f06e922a0201',
|
136
|
-
},
|
137
|
-
],
|
138
|
-
});
|
139
|
-
|
140
96
|
export const quantitiesRequestSuccessResponse = Immutable({
|
141
97
|
results: [
|
142
98
|
{
|
@@ -399,20 +355,6 @@ export const successActions = [
|
|
399
355
|
},
|
400
356
|
];
|
401
357
|
|
402
|
-
export const successActionsWithQuantityLoad = [
|
403
|
-
{
|
404
|
-
type: 'SUBSCRIPTIONS_REQUEST',
|
405
|
-
},
|
406
|
-
{
|
407
|
-
type: 'SUBSCRIPTIONS_SUCCESS',
|
408
|
-
response: requestSuccessResponseWithRHSubscriptions,
|
409
|
-
search: undefined,
|
410
|
-
},
|
411
|
-
{
|
412
|
-
type: 'SUBSCRIPTIONS_QUANTITIES_REQUEST',
|
413
|
-
},
|
414
|
-
];
|
415
|
-
|
416
358
|
export const failureActions = [
|
417
359
|
{
|
418
360
|
type: 'SUBSCRIPTIONS_REQUEST',
|
@@ -106,7 +106,11 @@ class SubscriptionsTable extends Component {
|
|
106
106
|
|
107
107
|
getTableProps = () => {
|
108
108
|
const {
|
109
|
-
subscriptions,
|
109
|
+
subscriptions,
|
110
|
+
emptyState,
|
111
|
+
tableColumns,
|
112
|
+
loadSubscriptions,
|
113
|
+
selectionEnabled,
|
110
114
|
} = this.props;
|
111
115
|
const { groupedSubscriptions, rows, editing } = this.state;
|
112
116
|
|
@@ -117,8 +121,8 @@ class SubscriptionsTable extends Component {
|
|
117
121
|
loadSubscriptions,
|
118
122
|
rows,
|
119
123
|
subscriptions,
|
124
|
+
selectionEnabled,
|
120
125
|
tableColumns,
|
121
|
-
canManageSubscriptionAllocations,
|
122
126
|
toggleSubscriptionGroup: this.toggleSubscriptionGroup,
|
123
127
|
inlineEditController: this.getInlineEditController(),
|
124
128
|
selectionController: this.getSelectionController(),
|
@@ -272,10 +276,11 @@ SubscriptionsTable.propTypes = {
|
|
272
276
|
loadSubscriptions: PropTypes.func.isRequired,
|
273
277
|
updateQuantity: PropTypes.func.isRequired,
|
274
278
|
emptyState: PropTypes.shape({}).isRequired,
|
275
|
-
canManageSubscriptionAllocations: PropTypes.bool,
|
276
279
|
subscriptions: PropTypes.shape({
|
277
280
|
loading: PropTypes.bool,
|
278
281
|
availableQuantities: PropTypes.shape({}),
|
282
|
+
// Disabling rule as existing code failed due to an eslint-plugin-react update
|
283
|
+
// eslint-disable-next-line react/forbid-prop-types
|
279
284
|
results: PropTypes.array,
|
280
285
|
}).isRequired,
|
281
286
|
subscriptionDeleteModalOpen: PropTypes.bool.isRequired,
|
@@ -284,10 +289,11 @@ SubscriptionsTable.propTypes = {
|
|
284
289
|
toggleDeleteButton: PropTypes.func.isRequired,
|
285
290
|
selectedRows: PropTypes.instanceOf(Array).isRequired,
|
286
291
|
onSelectedRowsChange: PropTypes.func.isRequired,
|
292
|
+
selectionEnabled: PropTypes.bool,
|
287
293
|
};
|
288
294
|
|
289
295
|
SubscriptionsTable.defaultProps = {
|
290
|
-
|
296
|
+
selectionEnabled: false,
|
291
297
|
};
|
292
298
|
|
293
299
|
export default SubscriptionsTable;
|
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
exports[`subscriptions table should render a loading state 1`] = `
|
4
4
|
<SubscriptionsTable
|
5
|
-
canManageSubscriptionAllocations={false}
|
6
5
|
emptyState={Object {}}
|
7
6
|
loadSubscriptions={[Function]}
|
8
7
|
onDeleteSubscriptions={[Function]}
|
9
8
|
onSelectedRowsChange={[Function]}
|
10
9
|
onSubscriptionDeleteModalClose={[Function]}
|
11
10
|
selectedRows={Array []}
|
11
|
+
selectionEnabled={false}
|
12
12
|
subscriptionDeleteModalOpen={false}
|
13
13
|
subscriptions={
|
14
14
|
Object {
|
@@ -74,21 +74,6 @@ exports[`subscriptions table should render a table 1`] = `
|
|
74
74
|
<tr
|
75
75
|
class=""
|
76
76
|
>
|
77
|
-
<th
|
78
|
-
aria-label="Select all rows"
|
79
|
-
class="table-view-pf-select"
|
80
|
-
>
|
81
|
-
<label
|
82
|
-
class="control-label sr-only"
|
83
|
-
for="selectAll"
|
84
|
-
>
|
85
|
-
Select all rows
|
86
|
-
</label>
|
87
|
-
<input
|
88
|
-
id="selectAll"
|
89
|
-
type="checkbox"
|
90
|
-
/>
|
91
|
-
</th>
|
92
77
|
<th
|
93
78
|
class=""
|
94
79
|
>
|
@@ -120,20 +105,6 @@ exports[`subscriptions table should render a table 1`] = `
|
|
120
105
|
<tr
|
121
106
|
class=""
|
122
107
|
>
|
123
|
-
<td
|
124
|
-
class="table-view-pf-select"
|
125
|
-
>
|
126
|
-
<label
|
127
|
-
class="control-label sr-only"
|
128
|
-
for="select0"
|
129
|
-
>
|
130
|
-
Select row
|
131
|
-
</label>
|
132
|
-
<input
|
133
|
-
id="select0"
|
134
|
-
type="checkbox"
|
135
|
-
/>
|
136
|
-
</td>
|
137
108
|
<td>
|
138
109
|
<a
|
139
110
|
href="/subscriptions/3/"
|
@@ -163,21 +134,6 @@ exports[`subscriptions table should render a table 1`] = `
|
|
163
134
|
<tr
|
164
135
|
class=""
|
165
136
|
>
|
166
|
-
<td
|
167
|
-
class="table-view-pf-select"
|
168
|
-
>
|
169
|
-
<label
|
170
|
-
class="control-label sr-only"
|
171
|
-
for="select1"
|
172
|
-
>
|
173
|
-
Select row
|
174
|
-
</label>
|
175
|
-
<input
|
176
|
-
disabled=""
|
177
|
-
id="select1"
|
178
|
-
type="checkbox"
|
179
|
-
/>
|
180
|
-
</td>
|
181
137
|
<td>
|
182
138
|
<a
|
183
139
|
href="/subscriptions/4/"
|
@@ -224,21 +180,6 @@ exports[`subscriptions table should render subscription name without hyperlink f
|
|
224
180
|
<tr
|
225
181
|
class=""
|
226
182
|
>
|
227
|
-
<th
|
228
|
-
aria-label="Select all rows"
|
229
|
-
class="table-view-pf-select"
|
230
|
-
>
|
231
|
-
<label
|
232
|
-
class="control-label sr-only"
|
233
|
-
for="selectAll"
|
234
|
-
>
|
235
|
-
Select all rows
|
236
|
-
</label>
|
237
|
-
<input
|
238
|
-
id="selectAll"
|
239
|
-
type="checkbox"
|
240
|
-
/>
|
241
|
-
</th>
|
242
183
|
<th
|
243
184
|
class=""
|
244
185
|
>
|
@@ -270,14 +211,6 @@ exports[`subscriptions table should render subscription name without hyperlink f
|
|
270
211
|
<tr
|
271
212
|
class=""
|
272
213
|
>
|
273
|
-
<td
|
274
|
-
class="table-view-pf-select"
|
275
|
-
>
|
276
|
-
<span
|
277
|
-
aria-hidden="true"
|
278
|
-
class="fa fa-angle-right collapse-subscription-group-button"
|
279
|
-
/>
|
280
|
-
</td>
|
281
214
|
<td>
|
282
215
|
hsdfhsdh
|
283
216
|
</td>
|
data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/UpdateDialog.js
CHANGED
@@ -47,7 +47,7 @@ const UpdateDialog = ({
|
|
47
47
|
UpdateDialog.propTypes = {
|
48
48
|
show: PropTypes.bool.isRequired,
|
49
49
|
updateQuantity: PropTypes.func.isRequired,
|
50
|
-
updatedQuantity: PropTypes.shape(
|
50
|
+
updatedQuantity: PropTypes.shape({}).isRequired,
|
51
51
|
showUpdateConfirm: PropTypes.func.isRequired,
|
52
52
|
enableEditing: PropTypes.func.isRequired,
|
53
53
|
};
|
@@ -17,10 +17,10 @@ const Dialogs = ({
|
|
17
17
|
);
|
18
18
|
|
19
19
|
Dialogs.propTypes = {
|
20
|
-
updateDialog: PropTypes.shape(
|
21
|
-
unsavedChangesDialog: PropTypes.shape(
|
22
|
-
inputsErrorsDialog: PropTypes.shape(
|
23
|
-
deleteDialog: PropTypes.shape(
|
20
|
+
updateDialog: PropTypes.shape({}).isRequired,
|
21
|
+
unsavedChangesDialog: PropTypes.shape({}).isRequired,
|
22
|
+
inputsErrorsDialog: PropTypes.shape({}).isRequired,
|
23
|
+
deleteDialog: PropTypes.shape({}).isRequired,
|
24
24
|
};
|
25
25
|
|
26
26
|
export default Dialogs;
|
@@ -15,9 +15,9 @@ const Table = ({
|
|
15
15
|
inlineEditController,
|
16
16
|
rows,
|
17
17
|
editing,
|
18
|
+
selectionEnabled,
|
18
19
|
groupedSubscriptions,
|
19
20
|
toggleSubscriptionGroup,
|
20
|
-
canManageSubscriptionAllocations,
|
21
21
|
}) => {
|
22
22
|
const allSubscriptionResults = subscriptions.results;
|
23
23
|
|
@@ -28,18 +28,23 @@ const Table = ({
|
|
28
28
|
|
29
29
|
const groupingController = {
|
30
30
|
isCollapseable: ({ rowData }) =>
|
31
|
-
// the group contains more
|
31
|
+
// the group contains more than one subscription
|
32
32
|
rowData.collapsible,
|
33
33
|
isCollapsed: ({ rowData }) => !groupedSubscriptions[rowData.product_id].open,
|
34
34
|
toggle: ({ rowData }) => toggleSubscriptionGroup(rowData.product_id),
|
35
35
|
};
|
36
36
|
|
37
|
-
const alwaysDisplayColumns = [
|
37
|
+
const alwaysDisplayColumns = [];
|
38
|
+
|
39
|
+
if (selectionEnabled) {
|
40
|
+
alwaysDisplayColumns.push('select');
|
41
|
+
}
|
42
|
+
|
38
43
|
const columnsDefinition = createSubscriptionsTableSchema(
|
39
44
|
inlineEditController,
|
40
45
|
selectionController,
|
41
46
|
groupingController,
|
42
|
-
|
47
|
+
selectionEnabled,
|
43
48
|
).filter(column => tableColumns.includes(column.property) ||
|
44
49
|
alwaysDisplayColumns.includes(column.property));
|
45
50
|
|
@@ -88,13 +93,14 @@ const Table = ({
|
|
88
93
|
};
|
89
94
|
|
90
95
|
Table.propTypes = {
|
91
|
-
canManageSubscriptionAllocations: PropTypes.bool,
|
92
96
|
emptyState: PropTypes.shape({}).isRequired,
|
93
97
|
tableColumns: PropTypes.arrayOf(PropTypes.string).isRequired,
|
94
98
|
subscriptions: PropTypes.shape({
|
95
99
|
searchIsActive: PropTypes.bool,
|
96
100
|
itemCount: PropTypes.number,
|
97
101
|
pagination: PropTypes.shape({}),
|
102
|
+
// Disabling rule as existing code failed due to an eslint-plugin-react update
|
103
|
+
// eslint-disable-next-line react/forbid-prop-types
|
98
104
|
results: PropTypes.array,
|
99
105
|
}).isRequired,
|
100
106
|
loadSubscriptions: PropTypes.func.isRequired,
|
@@ -107,11 +113,7 @@ Table.propTypes = {
|
|
107
113
|
groupedSubscriptions: PropTypes.shape({}).isRequired,
|
108
114
|
editing: PropTypes.bool.isRequired,
|
109
115
|
rows: PropTypes.arrayOf(PropTypes.object).isRequired,
|
110
|
-
|
111
|
-
};
|
112
|
-
|
113
|
-
Table.defaultProps = {
|
114
|
-
canManageSubscriptionAllocations: false,
|
116
|
+
selectionEnabled: PropTypes.bool.isRequired,
|
115
117
|
};
|
116
118
|
|
117
119
|
export default Table;
|
@@ -15,11 +15,14 @@ import {
|
|
15
15
|
selectSubscriptionsTask,
|
16
16
|
selectActivePermissions,
|
17
17
|
selectTableSettings,
|
18
|
+
selectIsTaskPending,
|
19
|
+
selectHasUpstreamConnection,
|
18
20
|
} from './SubscriptionsSelectors';
|
19
|
-
import {
|
20
|
-
|
21
|
+
import { selectIsPollingTask } from '../Tasks/TaskSelectors';
|
22
|
+
import { selectOrganizationState, selectSimpleContentAccessEnabled } from '../Organizations/OrganizationSelectors';
|
23
|
+
import { pingUpstreamSubscriptions } from './UpstreamSubscriptions/UpstreamSubscriptionsActions';
|
21
24
|
import reducer from './SubscriptionReducer';
|
22
|
-
import { SUBSCRIPTION_TABLE_NAME } from './SubscriptionConstants';
|
25
|
+
import { SUBSCRIPTION_TABLE_NAME, SUBSCRIPTIONS } from './SubscriptionConstants';
|
23
26
|
import SubscriptionsPage from './SubscriptionsPage';
|
24
27
|
|
25
28
|
// map state to props
|
@@ -32,16 +35,20 @@ const mapStateToProps = (state) => {
|
|
32
35
|
subscriptionTableSettings,
|
33
36
|
activePermissions: selectActivePermissions(state),
|
34
37
|
simpleContentAccess: selectSimpleContentAccessEnabled(state),
|
38
|
+
hasUpstreamConnection: selectHasUpstreamConnection(state),
|
35
39
|
task: selectSubscriptionsTask(state),
|
40
|
+
isTaskPending: selectIsTaskPending(state),
|
41
|
+
isPollingTask: selectIsPollingTask(state, SUBSCRIPTIONS),
|
36
42
|
searchQuery: selectSearchQuery(state),
|
37
43
|
deleteModalOpened: selectDeleteModalOpened(state),
|
38
44
|
deleteButtonDisabled: selectDeleteButtonDisabled(state),
|
39
|
-
organization: state
|
45
|
+
organization: selectOrganizationState(state),
|
40
46
|
};
|
41
47
|
};
|
42
48
|
|
43
49
|
// map action dispatchers to props
|
44
50
|
const actions = {
|
51
|
+
pingUpstreamSubscriptions,
|
45
52
|
...subscriptionActions,
|
46
53
|
...taskActions,
|
47
54
|
...settingActions,
|
@@ -5,8 +5,9 @@ import { stopInterval, withInterval } from 'foremanReact/redux/middlewares/Inter
|
|
5
5
|
import { foremanTasksApi } from '../../services/api';
|
6
6
|
import { bulkSearchKey, pollTaskKey, taskFinishedToast } from './helpers';
|
7
7
|
|
8
|
-
export const toastTaskFinished = task => async dispatch =>
|
8
|
+
export const toastTaskFinished = task => async (dispatch) => {
|
9
9
|
dispatch(addToast(taskFinishedToast(task)));
|
10
|
+
};
|
10
11
|
|
11
12
|
const taskBulkSearchParams = params => ({
|
12
13
|
search: Object.entries(propsToSnakeCase(params))
|
@@ -10,7 +10,7 @@ export const nockInstance = nock('http://localhost');
|
|
10
10
|
|
11
11
|
// Calling .done() with nock asserts that the request was fufilled. We use a timeout to ensure
|
12
12
|
// that the component has set up and made the request before the assertion is made.
|
13
|
-
export const assertNockRequest = (scope, timeout =
|
13
|
+
export const assertNockRequest = (scope, timeout = 10000) => {
|
14
14
|
setTimeout(() => {
|
15
15
|
scope.done();
|
16
16
|
}, timeout);
|
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: 3.16.0.
|
4
|
+
version: 3.16.0.rc4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- N/A
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -218,40 +218,40 @@ dependencies:
|
|
218
218
|
requirements:
|
219
219
|
- - ">="
|
220
220
|
- !ruby/object:Gem::Version
|
221
|
-
version: 3.
|
221
|
+
version: 3.4.0
|
222
222
|
- - "<"
|
223
223
|
- !ruby/object:Gem::Version
|
224
|
-
version: 3.
|
224
|
+
version: 3.5.0
|
225
225
|
type: :runtime
|
226
226
|
prerelease: false
|
227
227
|
version_requirements: !ruby/object:Gem::Requirement
|
228
228
|
requirements:
|
229
229
|
- - ">="
|
230
230
|
- !ruby/object:Gem::Version
|
231
|
-
version: 3.
|
231
|
+
version: 3.4.0
|
232
232
|
- - "<"
|
233
233
|
- !ruby/object:Gem::Version
|
234
|
-
version: 3.
|
234
|
+
version: 3.5.0
|
235
235
|
- !ruby/object:Gem::Dependency
|
236
236
|
name: pulp_file_client
|
237
237
|
requirement: !ruby/object:Gem::Requirement
|
238
238
|
requirements:
|
239
239
|
- - ">="
|
240
240
|
- !ruby/object:Gem::Version
|
241
|
-
version: 0.
|
241
|
+
version: 1.0.0
|
242
242
|
- - "<"
|
243
243
|
- !ruby/object:Gem::Version
|
244
|
-
version:
|
244
|
+
version: 1.1.0
|
245
245
|
type: :runtime
|
246
246
|
prerelease: false
|
247
247
|
version_requirements: !ruby/object:Gem::Requirement
|
248
248
|
requirements:
|
249
249
|
- - ">="
|
250
250
|
- !ruby/object:Gem::Version
|
251
|
-
version: 0.
|
251
|
+
version: 1.0.0
|
252
252
|
- - "<"
|
253
253
|
- !ruby/object:Gem::Version
|
254
|
-
version:
|
254
|
+
version: 1.1.0
|
255
255
|
- !ruby/object:Gem::Dependency
|
256
256
|
name: pulp_ansible_client
|
257
257
|
requirement: !ruby/object:Gem::Requirement
|
@@ -278,47 +278,47 @@ dependencies:
|
|
278
278
|
requirements:
|
279
279
|
- - ">="
|
280
280
|
- !ruby/object:Gem::Version
|
281
|
-
version: 1.
|
281
|
+
version: 1.4.0
|
282
282
|
- - "<"
|
283
283
|
- !ruby/object:Gem::Version
|
284
|
-
version: 1.
|
284
|
+
version: 1.5.0
|
285
285
|
type: :runtime
|
286
286
|
prerelease: false
|
287
287
|
version_requirements: !ruby/object:Gem::Requirement
|
288
288
|
requirements:
|
289
289
|
- - ">="
|
290
290
|
- !ruby/object:Gem::Version
|
291
|
-
version: 1.
|
291
|
+
version: 1.4.0
|
292
292
|
- - "<"
|
293
293
|
- !ruby/object:Gem::Version
|
294
|
-
version: 1.
|
294
|
+
version: 1.5.0
|
295
295
|
- !ruby/object:Gem::Dependency
|
296
296
|
name: pulp_rpm_client
|
297
297
|
requirement: !ruby/object:Gem::Requirement
|
298
298
|
requirements:
|
299
299
|
- - ">="
|
300
300
|
- !ruby/object:Gem::Version
|
301
|
-
version: 3.
|
301
|
+
version: 3.4.0
|
302
302
|
- - "<"
|
303
303
|
- !ruby/object:Gem::Version
|
304
|
-
version: 3.
|
304
|
+
version: 3.5.0
|
305
305
|
type: :runtime
|
306
306
|
prerelease: false
|
307
307
|
version_requirements: !ruby/object:Gem::Requirement
|
308
308
|
requirements:
|
309
309
|
- - ">="
|
310
310
|
- !ruby/object:Gem::Version
|
311
|
-
version: 3.
|
311
|
+
version: 3.4.0
|
312
312
|
- - "<"
|
313
313
|
- !ruby/object:Gem::Version
|
314
|
-
version: 3.
|
314
|
+
version: 3.5.0
|
315
315
|
- !ruby/object:Gem::Dependency
|
316
316
|
name: pulp_2to3_migration_client
|
317
317
|
requirement: !ruby/object:Gem::Requirement
|
318
318
|
requirements:
|
319
|
-
- - "
|
319
|
+
- - ">="
|
320
320
|
- !ruby/object:Gem::Version
|
321
|
-
version:
|
321
|
+
version: 0.2.0b2
|
322
322
|
- - "<"
|
323
323
|
- !ruby/object:Gem::Version
|
324
324
|
version: 0.3.0
|
@@ -326,12 +326,26 @@ dependencies:
|
|
326
326
|
prerelease: false
|
327
327
|
version_requirements: !ruby/object:Gem::Requirement
|
328
328
|
requirements:
|
329
|
-
- - "
|
329
|
+
- - ">="
|
330
330
|
- !ruby/object:Gem::Version
|
331
|
-
version:
|
331
|
+
version: 0.2.0b2
|
332
332
|
- - "<"
|
333
333
|
- !ruby/object:Gem::Version
|
334
334
|
version: 0.3.0
|
335
|
+
- !ruby/object:Gem::Dependency
|
336
|
+
name: pulp_certguard_client
|
337
|
+
requirement: !ruby/object:Gem::Requirement
|
338
|
+
requirements:
|
339
|
+
- - "<"
|
340
|
+
- !ruby/object:Gem::Version
|
341
|
+
version: '2.0'
|
342
|
+
type: :runtime
|
343
|
+
prerelease: false
|
344
|
+
version_requirements: !ruby/object:Gem::Requirement
|
345
|
+
requirements:
|
346
|
+
- - "<"
|
347
|
+
- !ruby/object:Gem::Version
|
348
|
+
version: '2.0'
|
335
349
|
- !ruby/object:Gem::Dependency
|
336
350
|
name: deface
|
337
351
|
requirement: !ruby/object:Gem::Requirement
|
@@ -761,7 +775,7 @@ files:
|
|
761
775
|
- app/lib/actions/katello/activation_key/reassign.rb
|
762
776
|
- app/lib/actions/katello/activation_key/update.rb
|
763
777
|
- app/lib/actions/katello/applicability/host/generate.rb
|
764
|
-
- app/lib/actions/katello/applicability/hosts/
|
778
|
+
- app/lib/actions/katello/applicability/hosts/bulk_generate.rb
|
765
779
|
- app/lib/actions/katello/applicability/repository/regenerate.rb
|
766
780
|
- app/lib/actions/katello/capsule_content/refresh_repos.rb
|
767
781
|
- app/lib/actions/katello/capsule_content/sync.rb
|
@@ -874,6 +888,7 @@ files:
|
|
874
888
|
- app/lib/actions/katello/repository/sync_hook.rb
|
875
889
|
- app/lib/actions/katello/repository/update.rb
|
876
890
|
- app/lib/actions/katello/repository/update_content_urls.rb
|
891
|
+
- app/lib/actions/katello/repository/update_cv_repo_cert_guard.rb
|
877
892
|
- app/lib/actions/katello/repository/update_http_proxy_details.rb
|
878
893
|
- app/lib/actions/katello/repository/update_metadata_sync.rb
|
879
894
|
- app/lib/actions/katello/repository/update_redhat_repository.rb
|
@@ -961,6 +976,7 @@ files:
|
|
961
976
|
- app/lib/actions/pulp/repository_group/create.rb
|
962
977
|
- app/lib/actions/pulp/repository_group/delete.rb
|
963
978
|
- app/lib/actions/pulp/repository_group/export.rb
|
979
|
+
- app/lib/actions/pulp3/ContentGuard/refresh.rb
|
964
980
|
- app/lib/actions/pulp3/abstract.rb
|
965
981
|
- app/lib/actions/pulp3/abstract_async_task.rb
|
966
982
|
- app/lib/actions/pulp3/capsule_content/generate_metadata.rb
|
@@ -1007,6 +1023,7 @@ files:
|
|
1007
1023
|
- app/lib/actions/pulp3/repository/save_publication.rb
|
1008
1024
|
- app/lib/actions/pulp3/repository/save_version.rb
|
1009
1025
|
- app/lib/actions/pulp3/repository/sync.rb
|
1026
|
+
- app/lib/actions/pulp3/repository/update_cv_repository_cert_guard.rb
|
1010
1027
|
- app/lib/actions/pulp3/repository/update_distributions.rb
|
1011
1028
|
- app/lib/actions/pulp3/repository/update_remote.rb
|
1012
1029
|
- app/lib/actions/pulp3/repository/update_repository.rb
|
@@ -1024,6 +1041,7 @@ files:
|
|
1024
1041
|
- app/lib/katello/foreman.rb
|
1025
1042
|
- app/lib/katello/http_resource.rb
|
1026
1043
|
- app/lib/katello/lazy_accessor.rb
|
1044
|
+
- app/lib/katello/logging.rb
|
1027
1045
|
- app/lib/katello/mapping.rb
|
1028
1046
|
- app/lib/katello/messaging/connection.rb
|
1029
1047
|
- app/lib/katello/messaging/received_message.rb
|
@@ -1063,6 +1081,7 @@ files:
|
|
1063
1081
|
- app/lib/katello/util/package_filter.rb
|
1064
1082
|
- app/lib/katello/util/path_with_substitutions.rb
|
1065
1083
|
- app/lib/katello/util/proxy_uri.rb
|
1084
|
+
- app/lib/katello/util/pulpcore_content_filters.rb
|
1066
1085
|
- app/lib/katello/util/report_table.rb
|
1067
1086
|
- app/lib/katello/util/search.rb
|
1068
1087
|
- app/lib/katello/util/support.rb
|
@@ -1210,6 +1229,7 @@ files:
|
|
1210
1229
|
- app/models/katello/host_collection_hosts.rb
|
1211
1230
|
- app/models/katello/host_installed_deb.rb
|
1212
1231
|
- app/models/katello/host_installed_package.rb
|
1232
|
+
- app/models/katello/host_queue_element.rb
|
1213
1233
|
- app/models/katello/host_tracer.rb
|
1214
1234
|
- app/models/katello/installed_deb.rb
|
1215
1235
|
- app/models/katello/installed_package.rb
|
@@ -1235,6 +1255,7 @@ files:
|
|
1235
1255
|
- app/models/katello/product_content.rb
|
1236
1256
|
- app/models/katello/provider.rb
|
1237
1257
|
- app/models/katello/proxy_association_owner.rb
|
1258
|
+
- app/models/katello/pulp3/content_guard.rb
|
1238
1259
|
- app/models/katello/pulp3/distribution_reference.rb
|
1239
1260
|
- app/models/katello/pulp3/repository_reference.rb
|
1240
1261
|
- app/models/katello/pulp_sync_status.rb
|
@@ -1299,6 +1320,7 @@ files:
|
|
1299
1320
|
- app/services/katello/abstract/pulp/content.rb
|
1300
1321
|
- app/services/katello/applicability/applicable_content_helper.rb
|
1301
1322
|
- app/services/katello/applicable_content_helper.rb
|
1323
|
+
- app/services/katello/applicable_host_queue.rb
|
1302
1324
|
- app/services/katello/authentication/client_authentication.rb
|
1303
1325
|
- app/services/katello/candlepin/consumer.rb
|
1304
1326
|
- app/services/katello/candlepin/event_handler.rb
|
@@ -1348,6 +1370,7 @@ files:
|
|
1348
1370
|
- app/services/katello/pulp/yum_metadata_file.rb
|
1349
1371
|
- app/services/katello/pulp3/ansible_collection.rb
|
1350
1372
|
- app/services/katello/pulp3/api/ansible_collection.rb
|
1373
|
+
- app/services/katello/pulp3/api/content_guard.rb
|
1351
1374
|
- app/services/katello/pulp3/api/core.rb
|
1352
1375
|
- app/services/katello/pulp3/api/docker.rb
|
1353
1376
|
- app/services/katello/pulp3/api/file.rb
|
@@ -1395,6 +1418,7 @@ files:
|
|
1395
1418
|
- app/services/katello/ui_notifications/subscriptions/manifest_refresh_error.rb
|
1396
1419
|
- app/services/katello/ui_notifications/subscriptions/manifest_refresh_success.rb
|
1397
1420
|
- app/services/katello/ui_notifications/task_notification.rb
|
1421
|
+
- app/services/katello/upstream_connection_checker.rb
|
1398
1422
|
- app/views/common/400.html
|
1399
1423
|
- app/views/dashboard/_content_views_widget.html.erb
|
1400
1424
|
- app/views/dashboard/_errata_widget.html.erb
|
@@ -1598,6 +1622,9 @@ files:
|
|
1598
1622
|
- app/views/katello/api/v2/repository_sets/show.json.rabl
|
1599
1623
|
- app/views/katello/api/v2/root/resource_list.json.rabl
|
1600
1624
|
- app/views/katello/api/v2/smart_proxies/pulp_info.json.rabl
|
1625
|
+
- app/views/katello/api/v2/srpms/backend.json.rabl
|
1626
|
+
- app/views/katello/api/v2/srpms/base.json.rabl
|
1627
|
+
- app/views/katello/api/v2/srpms/compare.json.rabl
|
1601
1628
|
- app/views/katello/api/v2/srpms/index.json.rabl
|
1602
1629
|
- app/views/katello/api/v2/srpms/show.json.rabl
|
1603
1630
|
- app/views/katello/api/v2/subscription_facet/base.json.rabl
|
@@ -1952,9 +1979,12 @@ files:
|
|
1952
1979
|
- db/migrate/20200213184848_create_evr_type.rb
|
1953
1980
|
- db/migrate/20200304201026_create_katello_module_stream_rpms.rb
|
1954
1981
|
- db/migrate/20200402130013_add_repsoitory_docker_meta_tag_f_key.rb
|
1982
|
+
- db/migrate/20200407171926_create_content_guard.rb
|
1955
1983
|
- db/migrate/20200429153103_installed_package_bad_nvrea.rb
|
1956
1984
|
- db/migrate/20200501155054_installed_package_unique_nvrea.rb
|
1957
1985
|
- db/migrate/20200506163345_add_applicability_indicesto_katello_host_available_module_streams.rb
|
1986
|
+
- db/migrate/20200511204005_create_katello_host_queue_elements.rb
|
1987
|
+
- db/migrate/20200526200422_encrypt_root_repository_upstream_password.rb
|
1958
1988
|
- db/seeds.d/101-locations.rb
|
1959
1989
|
- db/seeds.d/102-organizations.rb
|
1960
1990
|
- db/seeds.d/104-proxy.rb
|
@@ -4766,7 +4796,7 @@ files:
|
|
4766
4796
|
- webpack/scenes/Subscriptions/SubscriptionsPage.scss
|
4767
4797
|
- webpack/scenes/Subscriptions/SubscriptionsSelectors.js
|
4768
4798
|
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsActions.js
|
4769
|
-
- webpack/scenes/Subscriptions/UpstreamSubscriptions/
|
4799
|
+
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsConstants.js
|
4770
4800
|
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js
|
4771
4801
|
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsReducer.js
|
4772
4802
|
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsTableSchema.js
|