katello 3.16.0.rc3.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/lib/katello/errors.rb +25 -0
- data/app/lib/katello/resources/candlepin.rb +1 -1
- data/app/lib/katello/resources/candlepin/upstream_consumer.rb +6 -0
- data/app/models/katello/concerns/host_managed_extensions.rb +7 -0
- data/app/models/katello/concerns/organization_extensions.rb +14 -0
- data/app/models/katello/pulp3/content_guard.rb +1 -1
- data/app/services/katello/candlepin/message_handler.rb +2 -3
- data/app/services/katello/pulp3/repository.rb +8 -1
- data/app/services/katello/pulp3/repository/yum.rb +8 -0
- 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/seeds.d/109-katello-notification-blueprints.rb +1 -1
- data/lib/katello/permission_creator.rb +1 -1
- data/lib/katello/version.rb +1 -1
- data/package.json +3 -3
- data/webpack/components/Content/ContentTable.js +2 -0
- data/webpack/components/Content/Details/ContentDetails.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 +8 -8
- data/webpack/scenes/Subscriptions/SubscriptionConstants.js +3 -1
- data/webpack/scenes/Subscriptions/SubscriptionReducer.js +15 -1
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +54 -7
- data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +3 -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 +0 -13
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +6 -1
- 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 +6 -3
- metadata +27 -23
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;
|
@@ -16,10 +16,11 @@ import {
|
|
16
16
|
selectActivePermissions,
|
17
17
|
selectTableSettings,
|
18
18
|
selectIsTaskPending,
|
19
|
+
selectHasUpstreamConnection,
|
19
20
|
} from './SubscriptionsSelectors';
|
20
21
|
import { selectIsPollingTask } from '../Tasks/TaskSelectors';
|
21
|
-
import { selectSimpleContentAccessEnabled } from '../Organizations/OrganizationSelectors';
|
22
|
-
|
22
|
+
import { selectOrganizationState, selectSimpleContentAccessEnabled } from '../Organizations/OrganizationSelectors';
|
23
|
+
import { pingUpstreamSubscriptions } from './UpstreamSubscriptions/UpstreamSubscriptionsActions';
|
23
24
|
import reducer from './SubscriptionReducer';
|
24
25
|
import { SUBSCRIPTION_TABLE_NAME, SUBSCRIPTIONS } from './SubscriptionConstants';
|
25
26
|
import SubscriptionsPage from './SubscriptionsPage';
|
@@ -34,18 +35,20 @@ const mapStateToProps = (state) => {
|
|
34
35
|
subscriptionTableSettings,
|
35
36
|
activePermissions: selectActivePermissions(state),
|
36
37
|
simpleContentAccess: selectSimpleContentAccessEnabled(state),
|
38
|
+
hasUpstreamConnection: selectHasUpstreamConnection(state),
|
37
39
|
task: selectSubscriptionsTask(state),
|
38
40
|
isTaskPending: selectIsTaskPending(state),
|
39
41
|
isPollingTask: selectIsPollingTask(state, SUBSCRIPTIONS),
|
40
42
|
searchQuery: selectSearchQuery(state),
|
41
43
|
deleteModalOpened: selectDeleteModalOpened(state),
|
42
44
|
deleteButtonDisabled: selectDeleteButtonDisabled(state),
|
43
|
-
organization: state
|
45
|
+
organization: selectOrganizationState(state),
|
44
46
|
};
|
45
47
|
};
|
46
48
|
|
47
49
|
// map action dispatchers to props
|
48
50
|
const actions = {
|
51
|
+
pingUpstreamSubscriptions,
|
49
52
|
...subscriptionActions,
|
50
53
|
...taskActions,
|
51
54
|
...settingActions,
|
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,9 +326,9 @@ 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
|
@@ -1418,6 +1418,7 @@ files:
|
|
1418
1418
|
- app/services/katello/ui_notifications/subscriptions/manifest_refresh_error.rb
|
1419
1419
|
- app/services/katello/ui_notifications/subscriptions/manifest_refresh_success.rb
|
1420
1420
|
- app/services/katello/ui_notifications/task_notification.rb
|
1421
|
+
- app/services/katello/upstream_connection_checker.rb
|
1421
1422
|
- app/views/common/400.html
|
1422
1423
|
- app/views/dashboard/_content_views_widget.html.erb
|
1423
1424
|
- app/views/dashboard/_errata_widget.html.erb
|
@@ -1621,6 +1622,9 @@ files:
|
|
1621
1622
|
- app/views/katello/api/v2/repository_sets/show.json.rabl
|
1622
1623
|
- app/views/katello/api/v2/root/resource_list.json.rabl
|
1623
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
|
1624
1628
|
- app/views/katello/api/v2/srpms/index.json.rabl
|
1625
1629
|
- app/views/katello/api/v2/srpms/show.json.rabl
|
1626
1630
|
- app/views/katello/api/v2/subscription_facet/base.json.rabl
|
@@ -4792,7 +4796,7 @@ files:
|
|
4792
4796
|
- webpack/scenes/Subscriptions/SubscriptionsPage.scss
|
4793
4797
|
- webpack/scenes/Subscriptions/SubscriptionsSelectors.js
|
4794
4798
|
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsActions.js
|
4795
|
-
- webpack/scenes/Subscriptions/UpstreamSubscriptions/
|
4799
|
+
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsConstants.js
|
4796
4800
|
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js
|
4797
4801
|
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsReducer.js
|
4798
4802
|
- webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsTableSchema.js
|