katello 3.7.0 → 3.7.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 (113) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/common/index.js +1 -0
  3. data/app/assets/javascripts/katello/sync_management/index.js +1 -0
  4. data/app/controllers/katello/api/v2/host_packages_controller.rb +1 -5
  5. data/app/controllers/katello/remote_execution_controller.rb +6 -6
  6. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +37 -9
  7. data/app/lib/actions/katello/host/hypervisors_update.rb +82 -22
  8. data/app/lib/actions/pulp/consumer/abstract_content_action.rb +12 -0
  9. data/app/lib/actions/pulp/consumer/content_install.rb +1 -1
  10. data/app/lib/actions/pulp/consumer/content_uninstall.rb +1 -1
  11. data/app/lib/actions/pulp/consumer/content_update.rb +1 -1
  12. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -1
  13. data/app/models/katello/content_view.rb +12 -4
  14. data/app/models/katello/glue/candlepin/pool.rb +11 -11
  15. data/app/models/katello/host/content_facet.rb +2 -1
  16. data/app/models/katello/rpm.rb +14 -6
  17. data/app/models/katello/subscription_status.rb +1 -1
  18. data/app/services/katello/candlepin/consumer.rb +8 -0
  19. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +2 -3
  20. data/config/routes.rb +1 -0
  21. data/db/migrate/20180612163403_add_foreign_key_to_hypervisor_id.rb +3 -0
  22. data/db/seeds.d/75-job_templates.rb +5 -2
  23. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-repository-sets-modal.controller.js +4 -3
  24. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-subscriptions-modal.controller.js +4 -1
  25. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +1 -1
  26. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +1 -1
  27. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +5 -0
  28. data/lib/katello/tasks/clean_backend_objects.rake +12 -3
  29. data/lib/katello/version.rb +1 -1
  30. data/package.json +10 -7
  31. data/webpack/__mocks__/foremanReact/redux.js +3 -0
  32. data/webpack/__mocks__/foremanReact/redux/actions/toasts.js +2 -0
  33. data/webpack/components/Search/Search.test.js +3 -1
  34. data/webpack/components/SelectOrg/SelectOrg.scss +3 -0
  35. data/webpack/components/SelectOrg/SelectOrgAction.js +41 -0
  36. data/webpack/components/SelectOrg/SelectOrgReducer.js +33 -0
  37. data/webpack/components/SelectOrg/SetOrganization.js +116 -0
  38. data/webpack/components/WithOrganization/withOrganization.js +28 -0
  39. data/webpack/containers/Application/config.js +9 -2
  40. data/webpack/containers/Application/index.js +4 -2
  41. data/webpack/global_test_setup.js +6 -0
  42. data/webpack/helpers/caret.js +6 -0
  43. data/webpack/move_to_foreman/components/common/{emptyState → EmptyState}/index.js +16 -3
  44. data/webpack/move_to_foreman/components/common/table/components/Table.js +1 -1
  45. data/webpack/move_to_foreman/components/common/table/components/__snapshots__/CollapseSubscriptionGroupButton.test.js.snap +2 -2
  46. data/webpack/move_to_foreman/components/common/table/components/__snapshots__/TableSelectionCell.test.js.snap +1 -1
  47. data/webpack/move_to_foreman/components/common/table/components/__snapshots__/TableSelectionHeaderCell.test.js.snap +1 -1
  48. data/webpack/move_to_pf/LoadingState/LoadingState.js +27 -14
  49. data/webpack/move_to_pf/LoadingState/LoadingState.test.js +8 -4
  50. data/webpack/move_to_pf/Select/Select.js +40 -0
  51. data/webpack/move_to_pf/react-bootstrap-select/index.js +12 -1
  52. data/webpack/redux/actions/RedHatRepositories/enabled.js +0 -1
  53. data/webpack/redux/actions/RedHatRepositories/helpers.js +5 -5
  54. data/webpack/redux/consts.js +6 -0
  55. data/webpack/redux/reducers/index.js +2 -0
  56. data/webpack/scenes/Products/ProductActions.js +24 -0
  57. data/webpack/scenes/Products/ProductConstants.js +3 -0
  58. data/webpack/scenes/Products/__tests__/ProductActions.test.js +40 -0
  59. data/webpack/scenes/Products/__tests__/products.fixtures.js +90 -0
  60. data/webpack/scenes/RedHatRepositories/components/EnabledRepository.js +14 -23
  61. data/webpack/scenes/RedHatRepositories/components/EnabledRepositoryContent.js +34 -0
  62. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository.js +1 -1
  63. data/webpack/scenes/RedHatRepositories/components/SearchBar.js +1 -0
  64. data/webpack/scenes/RedHatRepositories/components/__tests__/EnabledRepository.test.js +36 -0
  65. data/webpack/scenes/RedHatRepositories/components/__tests__/EnabledRepositoryContent.test.js +27 -0
  66. data/webpack/scenes/RedHatRepositories/components/__tests__/__snapshots__/EnabledRepository.test.js.snap +25 -0
  67. data/webpack/scenes/RedHatRepositories/components/__tests__/__snapshots__/EnabledRepositoryContent.test.js.snap +47 -0
  68. data/webpack/scenes/RedHatRepositories/components/__tests__/__snapshots__/RecommendedRepositorySetsToggler.test.js.snap +3 -1
  69. data/webpack/scenes/RedHatRepositories/index.js +7 -3
  70. data/webpack/scenes/RedHatRepositories/index.scss +1 -0
  71. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailActions.js +1 -1
  72. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailEnabledProducts.js +54 -0
  73. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProduct.js +29 -0
  74. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailReducer.js +29 -0
  75. data/webpack/scenes/Subscriptions/Details/SubscriptionDetails.js +67 -22
  76. data/webpack/scenes/Subscriptions/Details/SubscriptionDetails.scss +9 -0
  77. data/webpack/scenes/Subscriptions/Details/__tests__/SubscriptionDetailEnabledProducts.test.js +18 -0
  78. data/webpack/scenes/Subscriptions/Details/__tests__/SubscriptionDetailProduct.test.js +13 -0
  79. data/webpack/scenes/Subscriptions/Details/__tests__/SubscriptionDetails.test.js +6 -0
  80. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailEnabledProducts.test.js.snap +45 -0
  81. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailProduct.test.js.snap +67 -0
  82. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +497 -410
  83. data/webpack/scenes/Subscriptions/Details/__tests__/subscriptionDetails.fixtures.js +4 -0
  84. data/webpack/scenes/Subscriptions/Details/index.js +3 -1
  85. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +78 -34
  86. data/webpack/scenes/Subscriptions/Manifest/ManifestHistoryReducer.js +8 -0
  87. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +3 -0
  88. data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +34 -7
  89. data/webpack/scenes/Subscriptions/Manifest/index.js +1 -0
  90. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +1 -0
  91. data/webpack/scenes/Subscriptions/SubscriptionHelpers.js +3 -0
  92. data/webpack/scenes/Subscriptions/SubscriptionReducer.js +6 -2
  93. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +31 -36
  94. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +2 -7
  95. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsPage.test.js +1 -1
  96. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/__snapshots__/UpstreamSubscriptionsPage.test.js.snap +3 -6
  97. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +2 -0
  98. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +14 -2
  99. data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +4 -3
  100. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/EntitlementsInlineEditFormatter.js +8 -5
  101. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTable.js +29 -19
  102. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableHelpers.js +9 -2
  103. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableSchema.js +2 -2
  104. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/EntitlementsInlineEditFormatter.test.js +110 -0
  105. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +15 -3
  106. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/EntitlementsInlineEditFormatter.test.js.snap +228 -0
  107. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +54 -21
  108. data/webpack/scenes/Subscriptions/index.js +1 -0
  109. data/webpack/scenes/Tasks/helpers.js +52 -0
  110. data/webpack/services/api/index.js +17 -1
  111. data/webpack/test_setup.js +2 -0
  112. metadata +31 -4
  113. data/config/katello.yaml +0 -89
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Row, Col } from 'patternfly-react';
4
+
5
+ const SubscriptionDetailProduct = ({ content }) => (
6
+ <Row key={content.id}>
7
+ <Col sm={12}>
8
+ <Row><u>{content.name}</u></Row>
9
+ </Col>
10
+ <Col sm={3}>
11
+ <Row>{ __('Content Download URL') }</Row>
12
+ <Row>{ __('GPG Key URL') }</Row>
13
+ <Row>{ __('Repo Type') }</Row>
14
+ <Row>{ __('Enabled?') }</Row>
15
+ </Col>
16
+ <Col sm={9}>
17
+ <Row>{content.content_url}</Row>
18
+ <Row>{content.gpg_url}</Row>
19
+ <Row>{content.type}</Row>
20
+ <Row>{content.enabled ? __('yes') : __('no')}</Row>
21
+ </Col>
22
+ </Row>
23
+ );
24
+
25
+ SubscriptionDetailProduct.propTypes = {
26
+ content: PropTypes.shape({}).isRequired,
27
+ };
28
+
29
+ export default SubscriptionDetailProduct;
@@ -4,9 +4,18 @@ import {
4
4
  SUBSCRIPTION_DETAILS_SUCCESS,
5
5
  SUBSCRIPTION_DETAILS_FAILURE,
6
6
  } from './SubscriptionDetailConstants';
7
+ import {
8
+ PRODUCTS_REQUEST,
9
+ PRODUCTS_SUCCESS,
10
+ PRODUCTS_FAILURE,
11
+ } from '../../Products/ProductConstants';
7
12
 
8
13
  const initialState = Immutable({
9
14
  loading: false,
15
+ enabledProducts: {
16
+ results: [],
17
+ total: 0,
18
+ },
10
19
  });
11
20
 
12
21
  export default (state = initialState, action) => {
@@ -15,6 +24,10 @@ export default (state = initialState, action) => {
15
24
  return state.set('loading', true);
16
25
  }
17
26
 
27
+ case PRODUCTS_REQUEST: {
28
+ return state.set('loading', true);
29
+ }
30
+
18
31
  case SUBSCRIPTION_DETAILS_SUCCESS: {
19
32
  const subscriptionDetails = action.response;
20
33
 
@@ -24,6 +37,15 @@ export default (state = initialState, action) => {
24
37
  });
25
38
  }
26
39
 
40
+ case PRODUCTS_SUCCESS: {
41
+ const enabledProducts = { enabledProducts: action.response };
42
+
43
+ return state.merge({
44
+ ...enabledProducts,
45
+ loading: false,
46
+ });
47
+ }
48
+
27
49
  case SUBSCRIPTION_DETAILS_FAILURE: {
28
50
  return state.merge({
29
51
  error: action.payload.message,
@@ -31,6 +53,13 @@ export default (state = initialState, action) => {
31
53
  });
32
54
  }
33
55
 
56
+ case PRODUCTS_FAILURE: {
57
+ return state.merge({
58
+ error: action.payload.message,
59
+ loading: false,
60
+ });
61
+ }
62
+
34
63
  default:
35
64
  return state;
36
65
  }
@@ -1,10 +1,11 @@
1
1
  import React, { Component } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { Grid, Row, Col } from 'patternfly-react';
3
+ import { Nav, NavItem, TabPane, TabContent, TabContainer, Grid, Row, Col } from 'patternfly-react';
4
4
  import BreadcrumbsBar from 'foremanReact/components/BreadcrumbBar';
5
5
  import SubscriptionDetailInfo from './SubscriptionDetailInfo';
6
6
  import SubscriptionDetailAssociations from './SubscriptionDetailAssociations';
7
7
  import SubscriptionDetailProducts from './SubscriptionDetailProducts';
8
+ import SubscriptionDetailEnabledProducts from './SubscriptionDetailEnabledProducts';
8
9
  import { LoadingState } from '../../../move_to_pf/LoadingState';
9
10
  import { notify } from '../../../move_to_foreman/foreman_toast_notifications';
10
11
  import api from '../../../services/api';
@@ -18,12 +19,22 @@ class SubscriptionDetails extends Component {
18
19
  // eslint-disable-next-line react/prop-types
19
20
  const routerParams = this.props.match.params;
20
21
  this.props.loadSubscriptionDetails(parseInt(routerParams.id, 10));
22
+ this.props.loadProducts({
23
+ subscription_id: parseInt(routerParams.id, 10),
24
+ include_available_content: true,
25
+ enabled: true,
26
+ });
21
27
  }
22
28
 
23
29
  componentDidUpdate(prevProps) {
24
30
  const routerParams = this.props.match.params;
25
31
  if (routerParams.id !== prevProps.match.params.id) {
26
32
  this.props.loadSubscriptionDetails(parseInt(routerParams.id, 10));
33
+ this.props.loadProducts({
34
+ subscription_id: parseInt(routerParams.id, 10),
35
+ include_available_content: true,
36
+ enabled: true,
37
+ });
27
38
  }
28
39
  }
29
40
 
@@ -34,6 +45,8 @@ class SubscriptionDetails extends Component {
34
45
 
35
46
  render() {
36
47
  const { subscriptionDetails } = this.props;
48
+
49
+
37
50
  const resource = {
38
51
  nameField: 'name',
39
52
  resourceUrl: api.getApiUrl('/subscriptions'),
@@ -45,7 +58,7 @@ class SubscriptionDetails extends Component {
45
58
  }
46
59
 
47
60
  return (
48
- <Grid bsClass="container-fluid">
61
+ <div>
49
62
  {!subscriptionDetails.loading && <BreadcrumbsBar
50
63
  onSwitcherItemClick={(e, url) => this.handleBreadcrumbSwitcherItem(e, url)}
51
64
  data={{
@@ -63,32 +76,64 @@ class SubscriptionDetails extends Component {
63
76
  resource,
64
77
  }}
65
78
  />}
66
- <div>
67
- <LoadingState loading={subscriptionDetails.loading} loadingText={__('Loading')}>
68
- <Row>
69
- <Col sm={6}>
70
- <SubscriptionDetailInfo
71
- subscriptionDetails={subscriptionDetails}
72
- />
73
- </Col>
74
- <Col sm={6}>
75
- <SubscriptionDetailAssociations
76
- subscriptionDetails={subscriptionDetails}
77
- />
78
- <SubscriptionDetailProducts
79
- subscriptionDetails={subscriptionDetails}
80
- />
81
- </Col>
82
- </Row>
83
- </LoadingState>
84
- </div>
85
- </Grid>
79
+
80
+ <TabContainer id="subscription-tabs-container" defaultActiveKey={1}>
81
+ <div>
82
+ <LoadingState loading={subscriptionDetails.loading} loadingText={__('Loading')}>
83
+ <Nav bsClass="nav nav-tabs">
84
+ <NavItem eventKey={1}>
85
+ <div>{__('Details')}</div>
86
+ </NavItem>
87
+ <NavItem eventKey={2}>
88
+ <div>{__('Enabled Products')}</div>
89
+ </NavItem>
90
+ </Nav>
91
+ <Grid bsClass="container-fluid">
92
+ <TabContent animation={false}>
93
+ <TabPane eventKey={1}>
94
+ <div>
95
+ <Row>
96
+ <Col sm={6}>
97
+ <SubscriptionDetailInfo
98
+ subscriptionDetails={subscriptionDetails}
99
+ />
100
+ </Col>
101
+ <Col sm={6}>
102
+ <SubscriptionDetailAssociations
103
+ subscriptionDetails={subscriptionDetails}
104
+ />
105
+ <SubscriptionDetailProducts
106
+ subscriptionDetails={subscriptionDetails}
107
+ />
108
+ </Col>
109
+ </Row>
110
+ </div>
111
+ </TabPane>
112
+
113
+ <TabPane eventKey={2}>
114
+ <div>
115
+ <Row>
116
+ <Col sm={12}>
117
+ <SubscriptionDetailEnabledProducts
118
+ enabledProducts={subscriptionDetails.enabledProducts}
119
+ />
120
+ </Col>
121
+ </Row>
122
+ </div>
123
+ </TabPane>
124
+ </TabContent>
125
+ </Grid>
126
+ </LoadingState>
127
+ </div>
128
+ </TabContainer>
129
+ </div>
86
130
  );
87
131
  }
88
132
  }
89
133
 
90
134
  SubscriptionDetails.propTypes = {
91
135
  loadSubscriptionDetails: PropTypes.func.isRequired,
136
+ loadProducts: PropTypes.func.isRequired,
92
137
  subscriptionDetails: PropTypes.shape({}).isRequired,
93
138
  history: PropTypes.shape({ push: PropTypes.func.isRequired }).isRequired,
94
139
  };
@@ -0,0 +1,9 @@
1
+ .scrolld-list {
2
+ max-height: 400px;
3
+ overflow-y: auto;
4
+ }
5
+
6
+ .list-view-pf-expand {
7
+ max-height: 20px;
8
+ padding: 0;
9
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import TestRenderer from 'react-test-renderer';
3
+ import { ListView } from 'patternfly-react';
4
+ import SubscriptionDetailEnabledProducts from '../SubscriptionDetailEnabledProducts';
5
+ import { availableContent, product } from '../../../Products/__tests__/products.fixtures.js';
6
+
7
+ describe('subscription detail enabled products page', () => {
8
+ it('renders correctly', () => {
9
+ const testRenderer = TestRenderer
10
+ .create(<SubscriptionDetailEnabledProducts
11
+ enabledProducts={{ results: [product([availableContent])] }}
12
+ />);
13
+ const testInstance = testRenderer.root;
14
+
15
+ expect(testRenderer.toJSON()).toMatchSnapshot();
16
+ expect(testInstance.findAllByType(ListView.Item)).toHaveLength(1);
17
+ });
18
+ });
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import TestRenderer from 'react-test-renderer';
3
+ import SubscriptionDetailProduct from '../SubscriptionDetailProduct';
4
+ import { availableContent } from '../../../Products/__tests__/products.fixtures.js';
5
+
6
+ describe('subscription detail enabled product component', () => {
7
+ it('renders correctly', () => {
8
+ const testRenderer = TestRenderer
9
+ .create(<SubscriptionDetailProduct content={availableContent.content} />);
10
+
11
+ expect(testRenderer.toJSON()).toMatchSnapshot();
12
+ });
13
+ });
@@ -5,7 +5,9 @@ import SubscriptionDetails from '../SubscriptionDetails';
5
5
  import SubscriptionDetailAssociations from '../SubscriptionDetailAssociations';
6
6
  import SubscriptionDetailInfo from '../SubscriptionDetailInfo';
7
7
  import SubscriptionDetailProducts from '../SubscriptionDetailProducts';
8
+ import SubscriptionDetailEnabledProducts from '../SubscriptionDetailEnabledProducts';
8
9
  import { loadSubscriptionDetails } from '../SubscriptionDetailActions';
10
+ import { loadProducts } from '../../../Products/ProductActions';
9
11
  import { successState } from './subscriptionDetails.fixtures';
10
12
 
11
13
  jest.mock('../../../../move_to_foreman/foreman_toast_notifications');
@@ -13,15 +15,19 @@ jest.mock('../../../../move_to_foreman/foreman_toast_notifications');
13
15
  describe('subscriptions details page', () => {
14
16
  it('should render and contain appropiate components', async () => {
15
17
  const match = { params: { id: 1 } };
18
+ const noop = () => {};
16
19
 
17
20
  const wrapper = shallow(<SubscriptionDetails
18
21
  loadSubscriptionDetails={loadSubscriptionDetails}
22
+ loadProducts={loadProducts}
19
23
  subscriptionDetails={successState}
24
+ history={{ push: noop }}
20
25
  match={match}
21
26
  />);
22
27
  expect(wrapper.find(SubscriptionDetailAssociations)).toHaveLength(1);
23
28
  expect(wrapper.find(SubscriptionDetailInfo)).toHaveLength(1);
24
29
  expect(wrapper.find(SubscriptionDetailProducts)).toHaveLength(1);
30
+ expect(wrapper.find(SubscriptionDetailEnabledProducts)).toHaveLength(1);
25
31
  expect(toJson(wrapper)).toMatchSnapshot();
26
32
  });
27
33
  });
@@ -0,0 +1,45 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`subscription detail enabled products page renders correctly 1`] = `
4
+ <div
5
+ className="list-group list-view-pf list-view-pf-view"
6
+ >
7
+ <div
8
+ className="list-group-item"
9
+ >
10
+ <div
11
+ className="list-group-item-header"
12
+ onClick={[Function]}
13
+ >
14
+ <div
15
+ className="list-view-pf-expand"
16
+ onClick={[Function]}
17
+ >
18
+ <span
19
+ className="fa fa-angle-right"
20
+ />
21
+ </div>
22
+ <div
23
+ className="list-view-pf-main-info"
24
+ >
25
+ <div
26
+ className="list-view-pf-body"
27
+ >
28
+ <div
29
+ className="list-view-pf-description"
30
+ >
31
+ <div
32
+ className="list-group-item-heading"
33
+ >
34
+ Red Hat Enterprise Linux Server
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <div
41
+ className="list-group-item-container container-fluid hidden"
42
+ />
43
+ </div>
44
+ </div>
45
+ `;
@@ -0,0 +1,67 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`subscription detail enabled product component renders correctly 1`] = `
4
+ <div
5
+ className="row"
6
+ >
7
+ <div
8
+ className="col-sm-12"
9
+ >
10
+ <div
11
+ className="row"
12
+ >
13
+ <u>
14
+ Red Hat Enterprise Linux 7 Server (RPMs)
15
+ </u>
16
+ </div>
17
+ </div>
18
+ <div
19
+ className="col-sm-3"
20
+ >
21
+ <div
22
+ className="row"
23
+ >
24
+ Content Download URL
25
+ </div>
26
+ <div
27
+ className="row"
28
+ >
29
+ GPG Key URL
30
+ </div>
31
+ <div
32
+ className="row"
33
+ >
34
+ Repo Type
35
+ </div>
36
+ <div
37
+ className="row"
38
+ >
39
+ Enabled?
40
+ </div>
41
+ </div>
42
+ <div
43
+ className="col-sm-9"
44
+ >
45
+ <div
46
+ className="row"
47
+ >
48
+ /content/dist/rhel/server/7/$releasever/$basearch/os
49
+ </div>
50
+ <div
51
+ className="row"
52
+ >
53
+ file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
54
+ </div>
55
+ <div
56
+ className="row"
57
+ >
58
+ yum
59
+ </div>
60
+ <div
61
+ className="row"
62
+ >
63
+ no
64
+ </div>
65
+ </div>
66
+ </div>
67
+ `;
@@ -1,11 +1,7 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`subscriptions details page should render and contain appropiate components 1`] = `
4
- <Grid
5
- bsClass="container-fluid"
6
- componentClass="div"
7
- fluid={false}
8
- >
4
+ <div>
9
5
  <BreadcrumbsBar
10
6
  data={
11
7
  Object {
@@ -28,413 +24,504 @@ exports[`subscriptions details page should render and contain appropiate compone
28
24
  }
29
25
  onSwitcherItemClick={[Function]}
30
26
  />
31
- <div>
32
- <LoadingState
33
- loading={false}
34
- loadingText="Loading"
35
- >
36
- <Row
37
- bsClass="row"
38
- componentClass="div"
27
+ <Uncontrolled(TabContainer)
28
+ defaultActiveKey={1}
29
+ id="subscription-tabs-container"
30
+ >
31
+ <div>
32
+ <LoadingState
33
+ loading={false}
34
+ loadingText="Loading"
35
+ timeout={300}
39
36
  >
40
- <Col
41
- bsClass="col"
42
- componentClass="div"
43
- sm={6}
37
+ <Nav
38
+ bsClass="nav nav-tabs"
39
+ justified={false}
40
+ pullLeft={false}
41
+ pullRight={false}
42
+ stacked={false}
44
43
  >
45
- <SubscriptionDetailInfo
46
- subscriptionDetails={
47
- Object {
48
- "account_number": 1212729,
49
- "activation_keys": Array [],
50
- "arch": "ia64,ppc,ppc64,ppc64le,s390,s390x,x86,x86_64",
51
- "available": 1,
52
- "consumed": 0,
53
- "contract_number": 10126160,
54
- "cores": 4,
55
- "cp_id": "4028f92a6317cfbd0163b419377f3bee",
56
- "description": "OpenShift Enterprise",
57
- "end_date": "2021-12-31 23:59:59 -0500",
58
- "error": null,
59
- "host_count": 0,
60
- "id": 48,
61
- "instance_multiplier": 1,
62
- "loading": false,
63
- "multi_entitlement": true,
64
- "name": "OpenShift Employee Subscription",
65
- "product_id": "SER0421",
66
- "product_name": "OpenShift Employee Subscription",
67
- "provided_products": Array [
68
- Object {
69
- "id": 1,
70
- "name": "Red Hat OpenShift Container Platform",
71
- },
72
- Object {
73
- "id": 2,
74
- "name": "Oracle Java for RHEL Server",
75
- },
76
- Object {
77
- "id": 3,
78
- "name": "Red Hat OpenShift Enterprise JBoss EAP add-on",
79
- },
80
- Object {
81
- "id": 4,
82
- "name": "Red Hat CloudForms Beta",
83
- },
84
- Object {
85
- "id": 5,
86
- "name": "Red Hat CloudForms",
87
- },
88
- Object {
89
- "id": 6,
90
- "name": "Red Hat OpenShift Enterprise Client Tools",
91
- },
92
- Object {
93
- "id": 7,
94
- "name": "Red Hat Enterprise Linux Atomic Host",
95
- },
96
- Object {
97
- "id": 8,
98
- "name": "JBoss Enterprise Application Platform",
99
- },
100
- Object {
101
- "id": 9,
102
- "name": "Red Hat JBoss AMQ Clients",
103
- },
104
- Object {
105
- "id": 10,
106
- "name": "Red Hat Beta",
107
- },
108
- Object {
109
- "id": 11,
110
- "name": "Red Hat OpenShift Enterprise Infrastructure",
111
- },
112
- Object {
113
- "id": 12,
114
- "name": "Red Hat Enterprise Linux Fast Datapath Beta",
115
- },
116
- Object {
117
- "id": 13,
118
- "name": "Red Hat Ansible Engine",
119
- },
120
- Object {
121
- "id": 14,
122
- "name": "Red Hat OpenShift Enterprise Application Node",
123
- },
124
- Object {
125
- "id": 15,
126
- "name": "Red Hat OpenShift Enterprise JBoss FUSE add-on",
127
- },
128
- Object {
129
- "id": 16,
130
- "name": "Red Hat Software Collections Beta for RHEL Server",
131
- },
132
- Object {
133
- "id": 17,
134
- "name": "Red Hat Software Collections for RHEL Server",
135
- },
136
- Object {
137
- "id": 18,
138
- "name": "Red Hat Enterprise Linux Fast Datapath",
139
- },
140
- Object {
141
- "id": 19,
142
- "name": "Red Hat Enterprise Linux Server",
143
- },
144
- Object {
145
- "id": 20,
146
- "name": "Red Hat OpenShift Enterprise JBoss A-MQ add-on",
147
- },
148
- Object {
149
- "id": 21,
150
- "name": "JBoss Enterprise Web Server",
151
- },
152
- Object {
153
- "id": 22,
154
- "name": "Red Hat JBoss Core Services",
155
- },
156
- ],
157
- "quantity": 1,
158
- "ram": null,
159
- "sockets": null,
160
- "stacking_id": "SER0421",
161
- "start_date": "2013-03-01 00:00:00 -0500",
162
- "subscription_id": 3,
163
- "support_level": "Self-Support",
164
- "support_type": "L1-L3",
165
- "type": "NORMAL",
166
- "unmapped_guest": false,
167
- "upstream": true,
168
- "virt_only": false,
169
- "virt_who": false,
170
- }
171
- }
172
- />
173
- </Col>
174
- <Col
175
- bsClass="col"
44
+ <NavItem
45
+ active={false}
46
+ disabled={false}
47
+ eventKey={1}
48
+ >
49
+ <div>
50
+ Details
51
+ </div>
52
+ </NavItem>
53
+ <NavItem
54
+ active={false}
55
+ disabled={false}
56
+ eventKey={2}
57
+ >
58
+ <div>
59
+ Enabled Products
60
+ </div>
61
+ </NavItem>
62
+ </Nav>
63
+ <Grid
64
+ bsClass="container-fluid"
176
65
  componentClass="div"
177
- sm={6}
66
+ fluid={false}
178
67
  >
179
- <SubscriptionDetailAssociations
180
- subscriptionDetails={
181
- Object {
182
- "account_number": 1212729,
183
- "activation_keys": Array [],
184
- "arch": "ia64,ppc,ppc64,ppc64le,s390,s390x,x86,x86_64",
185
- "available": 1,
186
- "consumed": 0,
187
- "contract_number": 10126160,
188
- "cores": 4,
189
- "cp_id": "4028f92a6317cfbd0163b419377f3bee",
190
- "description": "OpenShift Enterprise",
191
- "end_date": "2021-12-31 23:59:59 -0500",
192
- "error": null,
193
- "host_count": 0,
194
- "id": 48,
195
- "instance_multiplier": 1,
196
- "loading": false,
197
- "multi_entitlement": true,
198
- "name": "OpenShift Employee Subscription",
199
- "product_id": "SER0421",
200
- "product_name": "OpenShift Employee Subscription",
201
- "provided_products": Array [
202
- Object {
203
- "id": 1,
204
- "name": "Red Hat OpenShift Container Platform",
205
- },
206
- Object {
207
- "id": 2,
208
- "name": "Oracle Java for RHEL Server",
209
- },
210
- Object {
211
- "id": 3,
212
- "name": "Red Hat OpenShift Enterprise JBoss EAP add-on",
213
- },
214
- Object {
215
- "id": 4,
216
- "name": "Red Hat CloudForms Beta",
217
- },
218
- Object {
219
- "id": 5,
220
- "name": "Red Hat CloudForms",
221
- },
222
- Object {
223
- "id": 6,
224
- "name": "Red Hat OpenShift Enterprise Client Tools",
225
- },
226
- Object {
227
- "id": 7,
228
- "name": "Red Hat Enterprise Linux Atomic Host",
229
- },
230
- Object {
231
- "id": 8,
232
- "name": "JBoss Enterprise Application Platform",
233
- },
234
- Object {
235
- "id": 9,
236
- "name": "Red Hat JBoss AMQ Clients",
237
- },
238
- Object {
239
- "id": 10,
240
- "name": "Red Hat Beta",
241
- },
242
- Object {
243
- "id": 11,
244
- "name": "Red Hat OpenShift Enterprise Infrastructure",
245
- },
246
- Object {
247
- "id": 12,
248
- "name": "Red Hat Enterprise Linux Fast Datapath Beta",
249
- },
250
- Object {
251
- "id": 13,
252
- "name": "Red Hat Ansible Engine",
253
- },
254
- Object {
255
- "id": 14,
256
- "name": "Red Hat OpenShift Enterprise Application Node",
257
- },
258
- Object {
259
- "id": 15,
260
- "name": "Red Hat OpenShift Enterprise JBoss FUSE add-on",
261
- },
262
- Object {
263
- "id": 16,
264
- "name": "Red Hat Software Collections Beta for RHEL Server",
265
- },
266
- Object {
267
- "id": 17,
268
- "name": "Red Hat Software Collections for RHEL Server",
269
- },
270
- Object {
271
- "id": 18,
272
- "name": "Red Hat Enterprise Linux Fast Datapath",
273
- },
274
- Object {
275
- "id": 19,
276
- "name": "Red Hat Enterprise Linux Server",
277
- },
278
- Object {
279
- "id": 20,
280
- "name": "Red Hat OpenShift Enterprise JBoss A-MQ add-on",
281
- },
282
- Object {
283
- "id": 21,
284
- "name": "JBoss Enterprise Web Server",
285
- },
286
- Object {
287
- "id": 22,
288
- "name": "Red Hat JBoss Core Services",
289
- },
290
- ],
291
- "quantity": 1,
292
- "ram": null,
293
- "sockets": null,
294
- "stacking_id": "SER0421",
295
- "start_date": "2013-03-01 00:00:00 -0500",
296
- "subscription_id": 3,
297
- "support_level": "Self-Support",
298
- "support_type": "L1-L3",
299
- "type": "NORMAL",
300
- "unmapped_guest": false,
301
- "upstream": true,
302
- "virt_only": false,
303
- "virt_who": false,
304
- }
305
- }
306
- />
307
- <SubscriptionDetailProducts
308
- subscriptionDetails={
309
- Object {
310
- "account_number": 1212729,
311
- "activation_keys": Array [],
312
- "arch": "ia64,ppc,ppc64,ppc64le,s390,s390x,x86,x86_64",
313
- "available": 1,
314
- "consumed": 0,
315
- "contract_number": 10126160,
316
- "cores": 4,
317
- "cp_id": "4028f92a6317cfbd0163b419377f3bee",
318
- "description": "OpenShift Enterprise",
319
- "end_date": "2021-12-31 23:59:59 -0500",
320
- "error": null,
321
- "host_count": 0,
322
- "id": 48,
323
- "instance_multiplier": 1,
324
- "loading": false,
325
- "multi_entitlement": true,
326
- "name": "OpenShift Employee Subscription",
327
- "product_id": "SER0421",
328
- "product_name": "OpenShift Employee Subscription",
329
- "provided_products": Array [
330
- Object {
331
- "id": 1,
332
- "name": "Red Hat OpenShift Container Platform",
333
- },
334
- Object {
335
- "id": 2,
336
- "name": "Oracle Java for RHEL Server",
337
- },
338
- Object {
339
- "id": 3,
340
- "name": "Red Hat OpenShift Enterprise JBoss EAP add-on",
341
- },
342
- Object {
343
- "id": 4,
344
- "name": "Red Hat CloudForms Beta",
345
- },
346
- Object {
347
- "id": 5,
348
- "name": "Red Hat CloudForms",
349
- },
350
- Object {
351
- "id": 6,
352
- "name": "Red Hat OpenShift Enterprise Client Tools",
353
- },
354
- Object {
355
- "id": 7,
356
- "name": "Red Hat Enterprise Linux Atomic Host",
357
- },
358
- Object {
359
- "id": 8,
360
- "name": "JBoss Enterprise Application Platform",
361
- },
362
- Object {
363
- "id": 9,
364
- "name": "Red Hat JBoss AMQ Clients",
365
- },
366
- Object {
367
- "id": 10,
368
- "name": "Red Hat Beta",
369
- },
370
- Object {
371
- "id": 11,
372
- "name": "Red Hat OpenShift Enterprise Infrastructure",
373
- },
374
- Object {
375
- "id": 12,
376
- "name": "Red Hat Enterprise Linux Fast Datapath Beta",
377
- },
378
- Object {
379
- "id": 13,
380
- "name": "Red Hat Ansible Engine",
381
- },
382
- Object {
383
- "id": 14,
384
- "name": "Red Hat OpenShift Enterprise Application Node",
385
- },
386
- Object {
387
- "id": 15,
388
- "name": "Red Hat OpenShift Enterprise JBoss FUSE add-on",
389
- },
390
- Object {
391
- "id": 16,
392
- "name": "Red Hat Software Collections Beta for RHEL Server",
393
- },
394
- Object {
395
- "id": 17,
396
- "name": "Red Hat Software Collections for RHEL Server",
397
- },
398
- Object {
399
- "id": 18,
400
- "name": "Red Hat Enterprise Linux Fast Datapath",
401
- },
402
- Object {
403
- "id": 19,
404
- "name": "Red Hat Enterprise Linux Server",
405
- },
406
- Object {
407
- "id": 20,
408
- "name": "Red Hat OpenShift Enterprise JBoss A-MQ add-on",
409
- },
410
- Object {
411
- "id": 21,
412
- "name": "JBoss Enterprise Web Server",
413
- },
414
- Object {
415
- "id": 22,
416
- "name": "Red Hat JBoss Core Services",
417
- },
418
- ],
419
- "quantity": 1,
420
- "ram": null,
421
- "sockets": null,
422
- "stacking_id": "SER0421",
423
- "start_date": "2013-03-01 00:00:00 -0500",
424
- "subscription_id": 3,
425
- "support_level": "Self-Support",
426
- "support_type": "L1-L3",
427
- "type": "NORMAL",
428
- "unmapped_guest": false,
429
- "upstream": true,
430
- "virt_only": false,
431
- "virt_who": false,
432
- }
433
- }
434
- />
435
- </Col>
436
- </Row>
437
- </LoadingState>
438
- </div>
439
- </Grid>
68
+ <TabContent
69
+ animation={false}
70
+ bsClass="tab"
71
+ componentClass="div"
72
+ mountOnEnter={false}
73
+ unmountOnExit={false}
74
+ >
75
+ <TabPane
76
+ bsClass="tab-pane"
77
+ eventKey={1}
78
+ >
79
+ <div>
80
+ <Row
81
+ bsClass="row"
82
+ componentClass="div"
83
+ >
84
+ <Col
85
+ bsClass="col"
86
+ componentClass="div"
87
+ sm={6}
88
+ >
89
+ <SubscriptionDetailInfo
90
+ subscriptionDetails={
91
+ Object {
92
+ "account_number": 1212729,
93
+ "activation_keys": Array [],
94
+ "arch": "ia64,ppc,ppc64,ppc64le,s390,s390x,x86,x86_64",
95
+ "available": 1,
96
+ "consumed": 0,
97
+ "contract_number": 10126160,
98
+ "cores": 4,
99
+ "cp_id": "4028f92a6317cfbd0163b419377f3bee",
100
+ "description": "OpenShift Enterprise",
101
+ "enabledProducts": Object {
102
+ "results": Array [],
103
+ "total": 0,
104
+ },
105
+ "end_date": "2021-12-31 23:59:59 -0500",
106
+ "error": null,
107
+ "host_count": 0,
108
+ "id": 48,
109
+ "instance_multiplier": 1,
110
+ "loading": false,
111
+ "multi_entitlement": true,
112
+ "name": "OpenShift Employee Subscription",
113
+ "product_id": "SER0421",
114
+ "product_name": "OpenShift Employee Subscription",
115
+ "provided_products": Array [
116
+ Object {
117
+ "id": 1,
118
+ "name": "Red Hat OpenShift Container Platform",
119
+ },
120
+ Object {
121
+ "id": 2,
122
+ "name": "Oracle Java for RHEL Server",
123
+ },
124
+ Object {
125
+ "id": 3,
126
+ "name": "Red Hat OpenShift Enterprise JBoss EAP add-on",
127
+ },
128
+ Object {
129
+ "id": 4,
130
+ "name": "Red Hat CloudForms Beta",
131
+ },
132
+ Object {
133
+ "id": 5,
134
+ "name": "Red Hat CloudForms",
135
+ },
136
+ Object {
137
+ "id": 6,
138
+ "name": "Red Hat OpenShift Enterprise Client Tools",
139
+ },
140
+ Object {
141
+ "id": 7,
142
+ "name": "Red Hat Enterprise Linux Atomic Host",
143
+ },
144
+ Object {
145
+ "id": 8,
146
+ "name": "JBoss Enterprise Application Platform",
147
+ },
148
+ Object {
149
+ "id": 9,
150
+ "name": "Red Hat JBoss AMQ Clients",
151
+ },
152
+ Object {
153
+ "id": 10,
154
+ "name": "Red Hat Beta",
155
+ },
156
+ Object {
157
+ "id": 11,
158
+ "name": "Red Hat OpenShift Enterprise Infrastructure",
159
+ },
160
+ Object {
161
+ "id": 12,
162
+ "name": "Red Hat Enterprise Linux Fast Datapath Beta",
163
+ },
164
+ Object {
165
+ "id": 13,
166
+ "name": "Red Hat Ansible Engine",
167
+ },
168
+ Object {
169
+ "id": 14,
170
+ "name": "Red Hat OpenShift Enterprise Application Node",
171
+ },
172
+ Object {
173
+ "id": 15,
174
+ "name": "Red Hat OpenShift Enterprise JBoss FUSE add-on",
175
+ },
176
+ Object {
177
+ "id": 16,
178
+ "name": "Red Hat Software Collections Beta for RHEL Server",
179
+ },
180
+ Object {
181
+ "id": 17,
182
+ "name": "Red Hat Software Collections for RHEL Server",
183
+ },
184
+ Object {
185
+ "id": 18,
186
+ "name": "Red Hat Enterprise Linux Fast Datapath",
187
+ },
188
+ Object {
189
+ "id": 19,
190
+ "name": "Red Hat Enterprise Linux Server",
191
+ },
192
+ Object {
193
+ "id": 20,
194
+ "name": "Red Hat OpenShift Enterprise JBoss A-MQ add-on",
195
+ },
196
+ Object {
197
+ "id": 21,
198
+ "name": "JBoss Enterprise Web Server",
199
+ },
200
+ Object {
201
+ "id": 22,
202
+ "name": "Red Hat JBoss Core Services",
203
+ },
204
+ ],
205
+ "quantity": 1,
206
+ "ram": null,
207
+ "sockets": null,
208
+ "stacking_id": "SER0421",
209
+ "start_date": "2013-03-01 00:00:00 -0500",
210
+ "subscription_id": 3,
211
+ "support_level": "Self-Support",
212
+ "support_type": "L1-L3",
213
+ "type": "NORMAL",
214
+ "unmapped_guest": false,
215
+ "upstream": true,
216
+ "virt_only": false,
217
+ "virt_who": false,
218
+ }
219
+ }
220
+ />
221
+ </Col>
222
+ <Col
223
+ bsClass="col"
224
+ componentClass="div"
225
+ sm={6}
226
+ >
227
+ <SubscriptionDetailAssociations
228
+ subscriptionDetails={
229
+ Object {
230
+ "account_number": 1212729,
231
+ "activation_keys": Array [],
232
+ "arch": "ia64,ppc,ppc64,ppc64le,s390,s390x,x86,x86_64",
233
+ "available": 1,
234
+ "consumed": 0,
235
+ "contract_number": 10126160,
236
+ "cores": 4,
237
+ "cp_id": "4028f92a6317cfbd0163b419377f3bee",
238
+ "description": "OpenShift Enterprise",
239
+ "enabledProducts": Object {
240
+ "results": Array [],
241
+ "total": 0,
242
+ },
243
+ "end_date": "2021-12-31 23:59:59 -0500",
244
+ "error": null,
245
+ "host_count": 0,
246
+ "id": 48,
247
+ "instance_multiplier": 1,
248
+ "loading": false,
249
+ "multi_entitlement": true,
250
+ "name": "OpenShift Employee Subscription",
251
+ "product_id": "SER0421",
252
+ "product_name": "OpenShift Employee Subscription",
253
+ "provided_products": Array [
254
+ Object {
255
+ "id": 1,
256
+ "name": "Red Hat OpenShift Container Platform",
257
+ },
258
+ Object {
259
+ "id": 2,
260
+ "name": "Oracle Java for RHEL Server",
261
+ },
262
+ Object {
263
+ "id": 3,
264
+ "name": "Red Hat OpenShift Enterprise JBoss EAP add-on",
265
+ },
266
+ Object {
267
+ "id": 4,
268
+ "name": "Red Hat CloudForms Beta",
269
+ },
270
+ Object {
271
+ "id": 5,
272
+ "name": "Red Hat CloudForms",
273
+ },
274
+ Object {
275
+ "id": 6,
276
+ "name": "Red Hat OpenShift Enterprise Client Tools",
277
+ },
278
+ Object {
279
+ "id": 7,
280
+ "name": "Red Hat Enterprise Linux Atomic Host",
281
+ },
282
+ Object {
283
+ "id": 8,
284
+ "name": "JBoss Enterprise Application Platform",
285
+ },
286
+ Object {
287
+ "id": 9,
288
+ "name": "Red Hat JBoss AMQ Clients",
289
+ },
290
+ Object {
291
+ "id": 10,
292
+ "name": "Red Hat Beta",
293
+ },
294
+ Object {
295
+ "id": 11,
296
+ "name": "Red Hat OpenShift Enterprise Infrastructure",
297
+ },
298
+ Object {
299
+ "id": 12,
300
+ "name": "Red Hat Enterprise Linux Fast Datapath Beta",
301
+ },
302
+ Object {
303
+ "id": 13,
304
+ "name": "Red Hat Ansible Engine",
305
+ },
306
+ Object {
307
+ "id": 14,
308
+ "name": "Red Hat OpenShift Enterprise Application Node",
309
+ },
310
+ Object {
311
+ "id": 15,
312
+ "name": "Red Hat OpenShift Enterprise JBoss FUSE add-on",
313
+ },
314
+ Object {
315
+ "id": 16,
316
+ "name": "Red Hat Software Collections Beta for RHEL Server",
317
+ },
318
+ Object {
319
+ "id": 17,
320
+ "name": "Red Hat Software Collections for RHEL Server",
321
+ },
322
+ Object {
323
+ "id": 18,
324
+ "name": "Red Hat Enterprise Linux Fast Datapath",
325
+ },
326
+ Object {
327
+ "id": 19,
328
+ "name": "Red Hat Enterprise Linux Server",
329
+ },
330
+ Object {
331
+ "id": 20,
332
+ "name": "Red Hat OpenShift Enterprise JBoss A-MQ add-on",
333
+ },
334
+ Object {
335
+ "id": 21,
336
+ "name": "JBoss Enterprise Web Server",
337
+ },
338
+ Object {
339
+ "id": 22,
340
+ "name": "Red Hat JBoss Core Services",
341
+ },
342
+ ],
343
+ "quantity": 1,
344
+ "ram": null,
345
+ "sockets": null,
346
+ "stacking_id": "SER0421",
347
+ "start_date": "2013-03-01 00:00:00 -0500",
348
+ "subscription_id": 3,
349
+ "support_level": "Self-Support",
350
+ "support_type": "L1-L3",
351
+ "type": "NORMAL",
352
+ "unmapped_guest": false,
353
+ "upstream": true,
354
+ "virt_only": false,
355
+ "virt_who": false,
356
+ }
357
+ }
358
+ />
359
+ <SubscriptionDetailProducts
360
+ subscriptionDetails={
361
+ Object {
362
+ "account_number": 1212729,
363
+ "activation_keys": Array [],
364
+ "arch": "ia64,ppc,ppc64,ppc64le,s390,s390x,x86,x86_64",
365
+ "available": 1,
366
+ "consumed": 0,
367
+ "contract_number": 10126160,
368
+ "cores": 4,
369
+ "cp_id": "4028f92a6317cfbd0163b419377f3bee",
370
+ "description": "OpenShift Enterprise",
371
+ "enabledProducts": Object {
372
+ "results": Array [],
373
+ "total": 0,
374
+ },
375
+ "end_date": "2021-12-31 23:59:59 -0500",
376
+ "error": null,
377
+ "host_count": 0,
378
+ "id": 48,
379
+ "instance_multiplier": 1,
380
+ "loading": false,
381
+ "multi_entitlement": true,
382
+ "name": "OpenShift Employee Subscription",
383
+ "product_id": "SER0421",
384
+ "product_name": "OpenShift Employee Subscription",
385
+ "provided_products": Array [
386
+ Object {
387
+ "id": 1,
388
+ "name": "Red Hat OpenShift Container Platform",
389
+ },
390
+ Object {
391
+ "id": 2,
392
+ "name": "Oracle Java for RHEL Server",
393
+ },
394
+ Object {
395
+ "id": 3,
396
+ "name": "Red Hat OpenShift Enterprise JBoss EAP add-on",
397
+ },
398
+ Object {
399
+ "id": 4,
400
+ "name": "Red Hat CloudForms Beta",
401
+ },
402
+ Object {
403
+ "id": 5,
404
+ "name": "Red Hat CloudForms",
405
+ },
406
+ Object {
407
+ "id": 6,
408
+ "name": "Red Hat OpenShift Enterprise Client Tools",
409
+ },
410
+ Object {
411
+ "id": 7,
412
+ "name": "Red Hat Enterprise Linux Atomic Host",
413
+ },
414
+ Object {
415
+ "id": 8,
416
+ "name": "JBoss Enterprise Application Platform",
417
+ },
418
+ Object {
419
+ "id": 9,
420
+ "name": "Red Hat JBoss AMQ Clients",
421
+ },
422
+ Object {
423
+ "id": 10,
424
+ "name": "Red Hat Beta",
425
+ },
426
+ Object {
427
+ "id": 11,
428
+ "name": "Red Hat OpenShift Enterprise Infrastructure",
429
+ },
430
+ Object {
431
+ "id": 12,
432
+ "name": "Red Hat Enterprise Linux Fast Datapath Beta",
433
+ },
434
+ Object {
435
+ "id": 13,
436
+ "name": "Red Hat Ansible Engine",
437
+ },
438
+ Object {
439
+ "id": 14,
440
+ "name": "Red Hat OpenShift Enterprise Application Node",
441
+ },
442
+ Object {
443
+ "id": 15,
444
+ "name": "Red Hat OpenShift Enterprise JBoss FUSE add-on",
445
+ },
446
+ Object {
447
+ "id": 16,
448
+ "name": "Red Hat Software Collections Beta for RHEL Server",
449
+ },
450
+ Object {
451
+ "id": 17,
452
+ "name": "Red Hat Software Collections for RHEL Server",
453
+ },
454
+ Object {
455
+ "id": 18,
456
+ "name": "Red Hat Enterprise Linux Fast Datapath",
457
+ },
458
+ Object {
459
+ "id": 19,
460
+ "name": "Red Hat Enterprise Linux Server",
461
+ },
462
+ Object {
463
+ "id": 20,
464
+ "name": "Red Hat OpenShift Enterprise JBoss A-MQ add-on",
465
+ },
466
+ Object {
467
+ "id": 21,
468
+ "name": "JBoss Enterprise Web Server",
469
+ },
470
+ Object {
471
+ "id": 22,
472
+ "name": "Red Hat JBoss Core Services",
473
+ },
474
+ ],
475
+ "quantity": 1,
476
+ "ram": null,
477
+ "sockets": null,
478
+ "stacking_id": "SER0421",
479
+ "start_date": "2013-03-01 00:00:00 -0500",
480
+ "subscription_id": 3,
481
+ "support_level": "Self-Support",
482
+ "support_type": "L1-L3",
483
+ "type": "NORMAL",
484
+ "unmapped_guest": false,
485
+ "upstream": true,
486
+ "virt_only": false,
487
+ "virt_who": false,
488
+ }
489
+ }
490
+ />
491
+ </Col>
492
+ </Row>
493
+ </div>
494
+ </TabPane>
495
+ <TabPane
496
+ bsClass="tab-pane"
497
+ eventKey={2}
498
+ >
499
+ <div>
500
+ <Row
501
+ bsClass="row"
502
+ componentClass="div"
503
+ >
504
+ <Col
505
+ bsClass="col"
506
+ componentClass="div"
507
+ sm={12}
508
+ >
509
+ <SubscriptionDetailEnabledProducts
510
+ enabledProducts={
511
+ Object {
512
+ "results": Array [],
513
+ "total": 0,
514
+ }
515
+ }
516
+ />
517
+ </Col>
518
+ </Row>
519
+ </div>
520
+ </TabPane>
521
+ </TabContent>
522
+ </Grid>
523
+ </LoadingState>
524
+ </div>
525
+ </Uncontrolled(TabContainer)>
526
+ </div>
440
527
  `;