katello 3.11.0 → 3.11.1

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.

Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/v2/organizations_controller.rb +2 -1
  3. data/app/controllers/katello/api/v2/products_controller.rb +6 -4
  4. data/app/lib/actions/katello/host/erratum/install.rb +1 -1
  5. data/app/lib/actions/katello/host/package/install.rb +1 -1
  6. data/app/lib/actions/katello/host/package/remove.rb +1 -1
  7. data/app/lib/actions/katello/host/package/update.rb +10 -2
  8. data/app/lib/actions/katello/host/package_group/install.rb +1 -1
  9. data/app/lib/actions/katello/host/package_group/remove.rb +1 -1
  10. data/app/lib/actions/pulp/abstract_async_task.rb +1 -1
  11. data/app/lib/actions/pulp/consumer/abstract_content_action.rb +2 -0
  12. data/app/lib/katello/concerns/renderer_extensions.rb +1 -1
  13. data/app/lib/katello/util/path_with_substitutions.rb +1 -18
  14. data/app/models/katello/concerns/redhat_extensions.rb +3 -7
  15. data/app/models/katello/erratum.rb +1 -1
  16. data/app/models/katello/ostree_branch.rb +1 -3
  17. data/app/models/katello/ping.rb +17 -10
  18. data/app/models/katello/root_repository.rb +9 -1
  19. data/app/models/katello/sync_plan.rb +1 -31
  20. data/app/services/katello/pulp/repository/yum.rb +2 -2
  21. data/app/views/katello/api/v2/ostree_branches/show.json.rabl +1 -1
  22. data/app/views/katello/api/v2/repositories/base.json.rabl +1 -1
  23. data/app/views/katello/api/v2/subscriptions/manifest_history.json.rabl +1 -1
  24. data/app/views/katello/api/v2/sync_plans/show.json.rabl +1 -5
  25. data/db/migrate/20190326145039_remove_version_date_from_ostree_branch.rb +5 -0
  26. data/db/seeds.d/111-upgrade_tasks.rb +3 -1
  27. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +1 -1
  28. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-ostree-branches.html +0 -2
  29. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-ostree.html +0 -2
  30. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-content-hosts.html +1 -1
  31. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch-info.html +0 -3
  32. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +2 -2
  33. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-ostree-branches.html +0 -4
  34. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details-info.controller.js +9 -2
  35. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +1 -1
  36. data/lib/katello/tasks/upgrades/3.8/clear_checksum_type.rake +12 -0
  37. data/lib/katello/version.rb +1 -1
  38. data/webpack/components/SelectOrg/SelectOrgAction.js +1 -1
  39. data/webpack/components/SelectOrg/SetOrganization.js +4 -4
  40. data/webpack/components/WithOrganization/__snapshots__/withOrganization.test.js.snap +159 -25
  41. data/webpack/components/WithOrganization/withOrganization.js +17 -2
  42. data/webpack/components/WithOrganization/withOrganization.test.js +6 -2
  43. data/webpack/redux/actions/RedHatRepositories/__tests__/helpers.test.js +13 -0
  44. data/webpack/redux/actions/RedHatRepositories/helpers.js +9 -0
  45. data/webpack/redux/actions/RedHatRepositories/repositorySetRepositories.js +2 -0
  46. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/RepositorySetRepository.js +4 -2
  47. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/__test__/RepositorySetRepository.test.js +1 -1
  48. data/webpack/scenes/RedHatRepositories/components/SearchBar.js +1 -1
  49. data/webpack/scenes/Subscriptions/SubscriptionReducer.js +1 -0
  50. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +12 -3
  51. data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +3 -0
  52. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +28 -0
  53. data/webpack/scenes/Subscriptions/index.js +2 -2
  54. metadata +10 -3
  55. data/app/views/katello/sync_management/_sync_plans.html.erb +0 -23
@@ -1,9 +1,13 @@
1
1
  import React from 'react';
2
+ import thunk from 'redux-thunk';
3
+ import configureMockStore from 'redux-mock-store';
2
4
  import { mount } from 'enzyme';
3
5
  import toJson from 'enzyme-to-json';
4
6
  import withOrganization from './withOrganization';
5
7
 
6
8
  jest.mock('../SelectOrg/SetOrganization');
9
+ const mockStore = configureMockStore([thunk]);
10
+ const store = mockStore({ katello: { organization: {} } });
7
11
 
8
12
  describe('subscriptions page', () => {
9
13
  const WrappedComponent = () => <div> Wrapped! </div>;
@@ -12,7 +16,7 @@ describe('subscriptions page', () => {
12
16
  global.document.getElementById = () => ({ dataset: { id: 1 } });
13
17
 
14
18
  const Component = withOrganization(WrappedComponent, '/test');
15
- const page = mount(<Component />);
19
+ const page = mount(<Component store={store} />);
16
20
  expect(toJson(page)).toMatchSnapshot();
17
21
  });
18
22
 
@@ -20,7 +24,7 @@ describe('subscriptions page', () => {
20
24
  global.document.getElementById = () => ({ dataset: { id: '' } });
21
25
 
22
26
  const Component = withOrganization(WrappedComponent, '/test');
23
- const page = mount(<Component />);
27
+ const page = mount(<Component store={store} />);
24
28
  expect(toJson(page)).toMatchSnapshot();
25
29
  });
26
30
  });
@@ -0,0 +1,13 @@
1
+ import { getArchFromPath } from '../helpers.js';
2
+
3
+ describe('getArchFromPath', () => {
4
+ it('should return arch from path', () => {
5
+ const arch = getArchFromPath('/this/has/x86_64/as/arch');
6
+ expect(arch).toBe('x86_64');
7
+ });
8
+
9
+ it('should return falsey value for no arch', () => {
10
+ const arch = getArchFromPath('/hello/there/');
11
+ expect(arch).toBeFalsy();
12
+ });
13
+ });
@@ -1,3 +1,5 @@
1
+ import { first, intersection } from 'lodash';
2
+
1
3
  const repoTypeSearchQueryMap = {
2
4
  rpm: '(name !~ source rpm) and (name !~ debug rpm) and (content_type = yum) and (name !~ beta) and (product_name !~ beta)',
3
5
  sourceRpm: '(name ~ source rpm) and (content_type = yum)',
@@ -73,4 +75,11 @@ export const joinSearchQueries = parts => parts
73
75
 
74
76
  export const recommendedRepositorySetsQuery = createLablesQuery(recommendedRepositorySetLables);
75
77
 
78
+ export const getArchFromPath = (path) => {
79
+ const architectures = ['x86_64', 's390x', 'ppc64le', 'aarch64', 'multiarch', 'ppc64'];
80
+ const splitPath = path.split('/').map(h => h.toLowerCase());
81
+ const arches = intersection(splitPath, architectures);
82
+ return first(arches);
83
+ };
84
+
76
85
  export default normalizeRepositorySets;
@@ -1,5 +1,6 @@
1
1
  import api from '../../../services/api';
2
2
  import { apiError, apiSuccess } from '../../../move_to_foreman/common/helpers.js';
3
+ import { getArchFromPath } from './helpers.js';
3
4
 
4
5
  import {
5
6
  REPOSITORY_SET_REPOSITORIES_REQUEST,
@@ -22,6 +23,7 @@ export function normalizeContentSetRepositories(repos, contentId, productId) {
22
23
  productId: parseInt(productId, 10),
23
24
  arch: repo.substitutions.basearch,
24
25
  releasever: repo.substitutions.releasever,
26
+ displayArch: repo.substitutions.basearch || getArchFromPath(repo.path),
25
27
  enabled: repo.enabled,
26
28
  error: false,
27
29
  loading: false,
@@ -62,9 +62,9 @@ class RepositorySetRepository extends Component {
62
62
  }
63
63
 
64
64
  render() {
65
- const { arch, releasever, type } = this.props;
65
+ const { displayArch, releasever, type } = this.props;
66
66
 
67
- const archLabel = arch || __('Unspecified');
67
+ const archLabel = displayArch || __('Unspecified');
68
68
  const releaseverLabel = releasever || '';
69
69
 
70
70
  const yStreamHelpText =
@@ -135,6 +135,7 @@ class RepositorySetRepository extends Component {
135
135
  RepositorySetRepository.propTypes = {
136
136
  contentId: PropTypes.number.isRequired,
137
137
  productId: PropTypes.number.isRequired,
138
+ displayArch: PropTypes.string,
138
139
  arch: PropTypes.string,
139
140
  releasever: PropTypes.string,
140
141
  type: PropTypes.string,
@@ -160,6 +161,7 @@ RepositorySetRepository.defaultProps = {
160
161
  label: '',
161
162
  releasever: undefined,
162
163
  arch: undefined,
164
+ displayArch: undefined,
163
165
  enabledSearch: {},
164
166
  loading: false,
165
167
  error: false,
@@ -18,7 +18,7 @@ describe('RepositorySetRepository Component', () => {
18
18
  contentId={1}
19
19
  productId={1}
20
20
  label="some label"
21
- arch="foo"
21
+ displayArch="foo"
22
22
  releaseVer="1.1.1"
23
23
  type="foo"
24
24
  enabledPagination={{}}
@@ -42,7 +42,7 @@ class SearchBar extends Component {
42
42
 
43
43
  componentDidMount() {
44
44
  // load all products until we use filtering and pagination
45
- this.props.loadOrganizationProducts({ per_page: 1000 });
45
+ this.props.loadOrganizationProducts({ per_page: 1000, redhat_only: true });
46
46
  }
47
47
 
48
48
  onSearch(query) {
@@ -31,6 +31,7 @@ import { GET_SETTING_SUCCESS } from '../../move_to_foreman/Settings/SettingsCons
31
31
 
32
32
  const initialState = Immutable({
33
33
  ...initialApiState,
34
+ disconnected: false,
34
35
  searchQuery: '',
35
36
  manifestModalOpened: false,
36
37
  deleteModalOpened: false,
@@ -34,7 +34,6 @@ class SubscriptionsPage extends Component {
34
34
  componentDidMount() {
35
35
  this.props.resetTasks();
36
36
  this.props.loadSetting('content_disconnected');
37
- this.props.loadSubscriptions();
38
37
  }
39
38
 
40
39
  componentDidUpdate(prevProps) {
@@ -69,7 +68,16 @@ class SubscriptionsPage extends Component {
69
68
  }
70
69
  }
71
70
 
72
- if (!isEqual(organization, prevProps.organization)) {
71
+ const getOrgInfo = (org) => {
72
+ // remove the loading attribute so the action isn't called when org starts loading
73
+ const { loading, ...info } = org;
74
+ return info;
75
+ };
76
+
77
+ const currentOrgInfo = getOrgInfo(organization);
78
+ const prevOrgInfo = getOrgInfo(prevProps.organization);
79
+
80
+ if (!isEqual(currentOrgInfo, prevOrgInfo)) {
73
81
  this.pollTasks();
74
82
  }
75
83
  }
@@ -313,7 +321,7 @@ SubscriptionsPage.propTypes = {
313
321
  loadTables: PropTypes.func.isRequired,
314
322
  createColumns: PropTypes.func.isRequired,
315
323
  updateColumns: PropTypes.func.isRequired,
316
- subscriptionTableSettings: PropTypes.shape({}).isRequired,
324
+ subscriptionTableSettings: PropTypes.shape({}),
317
325
  tasks: PropTypes.arrayOf(PropTypes.shape({})),
318
326
  deleteSubscriptions: PropTypes.func.isRequired,
319
327
  refreshManifest: PropTypes.func.isRequired,
@@ -343,6 +351,7 @@ SubscriptionsPage.defaultProps = {
343
351
  deleteModalOpened: false,
344
352
  taskModalOpened: false,
345
353
  deleteButtonDisabled: true,
354
+ subscriptionTableSettings: {},
346
355
  };
347
356
 
348
357
  export default SubscriptionsPage;
@@ -18,3 +18,6 @@ export const selectDeleteButtonDisabled = state =>
18
18
 
19
19
  export const selectSubscriptionsTasks = state =>
20
20
  selectSubscriptionsState(state).tasks;
21
+
22
+ export const selectTableSettings = (state, tableName) =>
23
+ state.katello.settings.tables[tableName] || undefined;
@@ -5,6 +5,7 @@ Object {
5
5
  "availableQuantities": null,
6
6
  "deleteButtonDisabled": true,
7
7
  "deleteModalOpened": false,
8
+ "disconnected": false,
8
9
  "itemCount": 0,
9
10
  "loading": false,
10
11
  "manifestModalOpened": false,
@@ -27,6 +28,7 @@ Object {
27
28
  "availableQuantities": null,
28
29
  "deleteButtonDisabled": true,
29
30
  "deleteModalOpened": false,
31
+ "disconnected": false,
30
32
  "itemCount": 0,
31
33
  "loading": true,
32
34
  "manifestModalOpened": false,
@@ -49,6 +51,7 @@ Object {
49
51
  "availableQuantities": null,
50
52
  "deleteButtonDisabled": true,
51
53
  "deleteModalOpened": false,
54
+ "disconnected": false,
52
55
  "itemCount": 0,
53
56
  "loading": false,
54
57
  "manifestModalOpened": false,
@@ -94,6 +97,7 @@ Object {
94
97
  "availableQuantities": null,
95
98
  "deleteButtonDisabled": true,
96
99
  "deleteModalOpened": false,
100
+ "disconnected": false,
97
101
  "itemCount": 0,
98
102
  "loading": true,
99
103
  "manifestModalOpened": false,
@@ -116,6 +120,7 @@ Object {
116
120
  "availableQuantities": null,
117
121
  "deleteButtonDisabled": true,
118
122
  "deleteModalOpened": false,
123
+ "disconnected": false,
119
124
  "itemCount": 0,
120
125
  "loading": true,
121
126
  "manifestModalOpened": false,
@@ -138,6 +143,7 @@ Object {
138
143
  "availableQuantities": null,
139
144
  "deleteButtonDisabled": true,
140
145
  "deleteModalOpened": false,
146
+ "disconnected": false,
141
147
  "itemCount": 0,
142
148
  "loading": true,
143
149
  "manifestModalOpened": false,
@@ -160,6 +166,7 @@ Object {
160
166
  "availableQuantities": null,
161
167
  "deleteButtonDisabled": true,
162
168
  "deleteModalOpened": false,
169
+ "disconnected": false,
163
170
  "itemCount": 0,
164
171
  "loading": true,
165
172
  "manifestModalOpened": false,
@@ -182,6 +189,7 @@ Object {
182
189
  "availableQuantities": null,
183
190
  "deleteButtonDisabled": true,
184
191
  "deleteModalOpened": false,
192
+ "disconnected": false,
185
193
  "itemCount": 0,
186
194
  "loading": true,
187
195
  "manifestModalOpened": false,
@@ -204,6 +212,7 @@ Object {
204
212
  "availableQuantities": null,
205
213
  "deleteButtonDisabled": true,
206
214
  "deleteModalOpened": false,
215
+ "disconnected": false,
207
216
  "itemCount": 0,
208
217
  "loading": true,
209
218
  "manifestModalOpened": false,
@@ -226,6 +235,7 @@ Object {
226
235
  "availableQuantities": null,
227
236
  "deleteButtonDisabled": true,
228
237
  "deleteModalOpened": false,
238
+ "disconnected": false,
229
239
  "itemCount": 0,
230
240
  "loading": true,
231
241
  "manifestModalOpened": false,
@@ -252,6 +262,7 @@ Object {
252
262
  "availableQuantities": null,
253
263
  "deleteButtonDisabled": true,
254
264
  "deleteModalOpened": false,
265
+ "disconnected": false,
255
266
  "itemCount": 0,
256
267
  "loading": true,
257
268
  "manifestModalOpened": false,
@@ -274,6 +285,7 @@ Object {
274
285
  "availableQuantities": null,
275
286
  "deleteButtonDisabled": false,
276
287
  "deleteModalOpened": false,
288
+ "disconnected": false,
277
289
  "itemCount": 0,
278
290
  "loading": true,
279
291
  "manifestModalOpened": false,
@@ -296,6 +308,7 @@ Object {
296
308
  "availableQuantities": null,
297
309
  "deleteButtonDisabled": true,
298
310
  "deleteModalOpened": false,
311
+ "disconnected": false,
299
312
  "itemCount": 0,
300
313
  "loading": false,
301
314
  "manifestModalOpened": false,
@@ -318,6 +331,7 @@ Object {
318
331
  "availableQuantities": null,
319
332
  "deleteButtonDisabled": true,
320
333
  "deleteModalOpened": true,
334
+ "disconnected": false,
321
335
  "itemCount": 0,
322
336
  "loading": true,
323
337
  "manifestModalOpened": false,
@@ -340,6 +354,7 @@ Object {
340
354
  "availableQuantities": null,
341
355
  "deleteButtonDisabled": true,
342
356
  "deleteModalOpened": false,
357
+ "disconnected": false,
343
358
  "itemCount": 0,
344
359
  "loading": true,
345
360
  "manifestModalOpened": true,
@@ -362,6 +377,7 @@ Object {
362
377
  "availableQuantities": null,
363
378
  "deleteButtonDisabled": true,
364
379
  "deleteModalOpened": false,
380
+ "disconnected": false,
365
381
  "itemCount": 0,
366
382
  "loading": true,
367
383
  "manifestModalOpened": false,
@@ -384,6 +400,7 @@ Object {
384
400
  "availableQuantities": Object {},
385
401
  "deleteButtonDisabled": true,
386
402
  "deleteModalOpened": false,
403
+ "disconnected": false,
387
404
  "itemCount": 0,
388
405
  "loading": true,
389
406
  "manifestModalOpened": false,
@@ -406,6 +423,7 @@ Object {
406
423
  "availableQuantities": null,
407
424
  "deleteButtonDisabled": true,
408
425
  "deleteModalOpened": false,
426
+ "disconnected": false,
409
427
  "itemCount": 0,
410
428
  "loading": true,
411
429
  "manifestModalOpened": false,
@@ -428,6 +446,7 @@ Object {
428
446
  "availableQuantities": "some-quantities-data",
429
447
  "deleteButtonDisabled": true,
430
448
  "deleteModalOpened": false,
449
+ "disconnected": false,
431
450
  "itemCount": 0,
432
451
  "loading": true,
433
452
  "manifestModalOpened": false,
@@ -450,6 +469,7 @@ Object {
450
469
  "availableQuantities": null,
451
470
  "deleteButtonDisabled": true,
452
471
  "deleteModalOpened": false,
472
+ "disconnected": false,
453
473
  "itemCount": 0,
454
474
  "loading": true,
455
475
  "manifestModalOpened": false,
@@ -472,6 +492,7 @@ Object {
472
492
  "availableQuantities": null,
473
493
  "deleteButtonDisabled": true,
474
494
  "deleteModalOpened": false,
495
+ "disconnected": false,
475
496
  "itemCount": 20,
476
497
  "loading": false,
477
498
  "manifestModalOpened": false,
@@ -496,6 +517,7 @@ Object {
496
517
  "availableQuantities": null,
497
518
  "deleteButtonDisabled": true,
498
519
  "deleteModalOpened": false,
520
+ "disconnected": false,
499
521
  "itemCount": 0,
500
522
  "loading": true,
501
523
  "manifestModalOpened": false,
@@ -518,6 +540,7 @@ Object {
518
540
  "availableQuantities": null,
519
541
  "deleteButtonDisabled": true,
520
542
  "deleteModalOpened": false,
543
+ "disconnected": false,
521
544
  "itemCount": 0,
522
545
  "loading": true,
523
546
  "manifestModalOpened": false,
@@ -540,6 +563,7 @@ Object {
540
563
  "availableQuantities": null,
541
564
  "deleteButtonDisabled": true,
542
565
  "deleteModalOpened": false,
566
+ "disconnected": false,
543
567
  "itemCount": 0,
544
568
  "loading": false,
545
569
  "manifestModalOpened": false,
@@ -562,6 +586,7 @@ Object {
562
586
  "availableQuantities": null,
563
587
  "deleteButtonDisabled": true,
564
588
  "deleteModalOpened": false,
589
+ "disconnected": false,
565
590
  "itemCount": 0,
566
591
  "loading": true,
567
592
  "manifestModalOpened": false,
@@ -584,6 +609,7 @@ Object {
584
609
  "availableQuantities": null,
585
610
  "deleteButtonDisabled": true,
586
611
  "deleteModalOpened": false,
612
+ "disconnected": false,
587
613
  "itemCount": 0,
588
614
  "loading": false,
589
615
  "manifestModalOpened": false,
@@ -606,6 +632,7 @@ Object {
606
632
  "availableQuantities": null,
607
633
  "deleteButtonDisabled": true,
608
634
  "deleteModalOpened": false,
635
+ "disconnected": false,
609
636
  "itemCount": 0,
610
637
  "loading": true,
611
638
  "manifestModalOpened": false,
@@ -631,6 +658,7 @@ Object {
631
658
  "availableQuantities": null,
632
659
  "deleteButtonDisabled": true,
633
660
  "deleteModalOpened": false,
661
+ "disconnected": false,
634
662
  "itemCount": 0,
635
663
  "loading": true,
636
664
  "manifestModalOpened": false,
@@ -2,7 +2,6 @@ import { bindActionCreators } from 'redux';
2
2
  import { connect } from 'react-redux';
3
3
 
4
4
  import * as subscriptionActions from './SubscriptionActions';
5
-
6
5
  import * as taskActions from '../Tasks/TaskActions';
7
6
  import * as settingActions from '../../move_to_foreman/Settings/SettingsActions';
8
7
  import * as tableActions from '../Settings/Tables/TableActions';
@@ -16,6 +15,7 @@ import {
16
15
  selectTaskModalOpened,
17
16
  selectDeleteButtonDisabled,
18
17
  selectSubscriptionsTasks,
18
+ selectTableSettings,
19
19
  } from './SubscriptionsSelectors';
20
20
 
21
21
  import reducer from './SubscriptionReducer';
@@ -25,7 +25,7 @@ import SubscriptionsPage from './SubscriptionsPage';
25
25
  // map state to props
26
26
  const mapStateToProps = (state) => {
27
27
  const subscriptions = selectSubscriptionsState(state);
28
- const subscriptionTableSettings = state.katello.settings.tables[SUBSCRIPTION_TABLE_NAME] || {};
28
+ const subscriptionTableSettings = selectTableSettings(state, SUBSCRIPTION_TABLE_NAME);
29
29
 
30
30
  return {
31
31
  subscriptions,
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.11.0
4
+ version: 3.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - N/A
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-13 00:00:00.000000000 Z
11
+ date: 2019-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -118,6 +118,9 @@ dependencies:
118
118
  name: foreman_docker
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
+ - - "<"
122
+ - !ruby/object:Gem::Version
123
+ version: 4.1.1
121
124
  - - ">="
122
125
  - !ruby/object:Gem::Version
123
126
  version: 0.2.0
@@ -125,6 +128,9 @@ dependencies:
125
128
  prerelease: false
126
129
  version_requirements: !ruby/object:Gem::Requirement
127
130
  requirements:
131
+ - - "<"
132
+ - !ruby/object:Gem::Version
133
+ version: 4.1.1
128
134
  - - ">="
129
135
  - !ruby/object:Gem::Version
130
136
  version: 0.2.0
@@ -1353,7 +1359,6 @@ files:
1353
1359
  - app/views/katello/sync_management/_product.html.erb
1354
1360
  - app/views/katello/sync_management/_products.html.erb
1355
1361
  - app/views/katello/sync_management/_repo.html.erb
1356
- - app/views/katello/sync_management/_sync_plans.html.erb
1357
1362
  - app/views/katello/sync_management/index.html.erb
1358
1363
  - app/views/overrides/about/_installed_packages.html.erb
1359
1364
  - app/views/overrides/about/_system_status.html.erb
@@ -1628,6 +1633,7 @@ files:
1628
1633
  - db/migrate/20181027014323_add_applicable_modules.rb
1629
1634
  - db/migrate/20181219205642_create_yum_metadata_file.rb
1630
1635
  - db/migrate/20190107160723_units_uuid_to_backend_ident.rb
1636
+ - db/migrate/20190326145039_remove_version_date_from_ostree_branch.rb
1631
1637
  - db/seeds.d/101-locations.rb
1632
1638
  - db/seeds.d/102-organizations.rb
1633
1639
  - db/seeds.d/104-proxy.rb
@@ -2438,6 +2444,7 @@ files:
2438
2444
  - webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsReducer.test.js.snap
2439
2445
  - webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsSelectors.test.js.snap
2440
2446
  - webpack/redux/OrganizationProducts/index.js
2447
+ - webpack/redux/actions/RedHatRepositories/__tests__/helpers.test.js
2441
2448
  - webpack/redux/actions/RedHatRepositories/enabled.js
2442
2449
  - webpack/redux/actions/RedHatRepositories/helpers.js
2443
2450
  - webpack/redux/actions/RedHatRepositories/repositorySetRepositories.js