foreman_rh_cloud 1.0.9 → 1.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/foreman_inventory_upload/accounts_controller.rb +1 -0
  3. data/app/controllers/foreman_inventory_upload/tasks_controller.rb +25 -0
  4. data/app/controllers/insights_cloud/settings_controller.rb +24 -0
  5. data/app/controllers/insights_cloud/tasks_controller.rb +1 -2
  6. data/app/helpers/foreman_inventory_upload_host_helper.rb +10 -1
  7. data/app/models/insights_facet.rb +5 -1
  8. data/app/models/inventory_sync/inventory_status.rb +30 -0
  9. data/app/models/setting/rh_cloud.rb +1 -0
  10. data/app/views/foreman_rh_cloud/react/inventory_upload.html.erb +1 -1
  11. data/config/routes.rb +3 -0
  12. data/db/migrate/20200727111529_add_uuid_column_to_insights_facets.foreman_rh_cloud.rb +5 -0
  13. data/lib/foreman_inventory_upload.rb +4 -0
  14. data/lib/foreman_inventory_upload/generators/fact_helpers.rb +1 -1
  15. data/lib/foreman_inventory_upload/generators/slice.rb +25 -3
  16. data/lib/foreman_rh_cloud.rb +13 -0
  17. data/lib/foreman_rh_cloud/engine.rb +6 -1
  18. data/lib/foreman_rh_cloud/version.rb +1 -1
  19. data/lib/insights_cloud.rb +8 -8
  20. data/lib/insights_cloud/async/insights_full_sync.rb +17 -10
  21. data/lib/insights_cloud/async/insights_scheduled_sync.rb +23 -0
  22. data/lib/inventory_sync/async/host_result.rb +50 -0
  23. data/lib/inventory_sync/async/inventory_full_sync.rb +99 -0
  24. data/test/controllers/insights_sync/settings_controller_test.rb +30 -0
  25. data/test/factories/insights_factories.rb +31 -0
  26. data/test/jobs/insights_full_sync_test.rb +4 -2
  27. data/test/jobs/inventory_full_sync_test.rb +91 -0
  28. data/test/unit/insights_facet_test.rb +16 -0
  29. data/test/unit/slice_generator_test.rb +15 -7
  30. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.fixtures.js +3 -1
  31. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListActions.js +2 -1
  32. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListReducer.js +2 -0
  33. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListSelectors.js +2 -0
  34. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListReducer.test.js +2 -0
  35. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListActions.test.js.snap +1 -0
  36. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListReducer.test.js.snap +1 -0
  37. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/FullScreenModal.js +5 -1
  38. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/__tests__/__snapshots__/FullScreenModal.test.js.snap +1 -0
  39. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/fullScreenModal.scss +15 -13
  40. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/integration.test.js.snap +6 -0
  41. data/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.js +1 -1
  42. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageHeader.test.js.snap +3 -3
  43. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/DocsButton/DocsButton.js +1 -0
  44. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/DocsButton/__tests__/__snapshots__/DocsButton.test.js.snap +1 -0
  45. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/HistoryButton.js +1 -0
  46. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/__tests__/__snapshots__/HistoryButton.test.js.snap +1 -0
  47. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButton.js +52 -0
  48. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonActions.js +59 -0
  49. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonConstants.js +3 -0
  50. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonReducer.js +36 -0
  51. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonSelectors.js +13 -0
  52. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButton.test.js +13 -0
  53. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButtonActions.test.js +13 -0
  54. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButtonFixtures.js +9 -0
  55. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButtonReducer.test.js +33 -0
  56. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButtonSelectors.test.js +36 -0
  57. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/SyncButton.test.js.snap +26 -0
  58. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/SyncButtonActions.test.js.snap +36 -0
  59. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/SyncButtonReducer.test.js.snap +25 -0
  60. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/SyncButtonSelectors.test.js.snap +18 -0
  61. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/components/Modal.js +63 -0
  62. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/components/Toast.js +41 -0
  63. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/components/modal.scss +20 -0
  64. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/index.js +22 -0
  65. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/ToolbarButtons.js +2 -0
  66. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/__tests__/__snapshots__/ToolbarButtons.test.js.snap +1 -0
  67. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/toolbarButtons.scss +6 -1
  68. data/webpack/ForemanInventoryUpload/ForemanInventoryConstants.js +3 -1
  69. data/webpack/ForemanInventoryUpload/ForemanInventoryUploadReducers.js +2 -0
  70. data/webpack/ForemanRhCloudPages.js +7 -0
  71. data/webpack/ForemanRhCloudTestHelpers.js +12 -3
  72. data/webpack/InsightsCloudSync/Components/InsightsSettings/InsightsSettings.js +33 -0
  73. data/webpack/InsightsCloudSync/Components/InsightsSettings/InsightsSettingsActions.js +60 -0
  74. data/webpack/InsightsCloudSync/Components/InsightsSettings/InsightsSettingsConstants.js +10 -0
  75. data/webpack/InsightsCloudSync/Components/InsightsSettings/InsightsSettingsReducer.js +28 -0
  76. data/webpack/InsightsCloudSync/Components/InsightsSettings/InsightsSettingsSelectors.js +6 -0
  77. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/InsightsSettings.test.js +18 -0
  78. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/InsightsSettingsActions.test.js +46 -0
  79. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/InsightsSettingsReducer.test.js +56 -0
  80. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/InsightsSettingsSelectors.test.js +21 -0
  81. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/__snapshots__/InsightsSettings.test.js.snap +15 -0
  82. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/__snapshots__/InsightsSettingsActions.test.js.snap +31 -0
  83. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/__snapshots__/InsightsSettingsReducer.test.js.snap +33 -0
  84. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/__snapshots__/InsightsSettingsSelectors.test.js.snap +9 -0
  85. data/webpack/InsightsCloudSync/Components/InsightsSettings/index.js +21 -0
  86. data/webpack/InsightsCloudSync/Components/InsightsSettings/insightsSettings.scss +16 -0
  87. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/InsightsSyncSwitcher.fixtures.js +1 -0
  88. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/InsightsSyncSwitcher.js +45 -0
  89. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/__tests__/InsightsSyncSwitcher.test.js +17 -0
  90. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/__tests__/__snapshots__/InsightsSyncSwitcher.test.js.snap +38 -0
  91. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/index.js +1 -0
  92. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/insightsSyncSwitcher.scss +3 -0
  93. data/webpack/InsightsCloudSync/InsightsCloudSync.js +32 -28
  94. data/webpack/InsightsCloudSync/InsightsCloudSyncReducers.js +7 -2
  95. data/webpack/InsightsCloudSync/__snapshots__/InsightsCloudSync.test.js.snap +51 -46
  96. data/webpack/InsightsCloudSync/index.js +2 -1
  97. data/webpack/__mocks__/foremanReact/constants.js +5 -0
  98. data/webpack/__mocks__/foremanReact/redux/actions/toasts.js +8 -0
  99. data/webpack/__tests__/ForemanRhCloudSelectors.test.js +4 -1
  100. data/webpack/__tests__/ForemanRhCloudTestHelpers.test.js +12 -2
  101. data/webpack/__tests__/__snapshots__/ForemanRhCloudSelectors.test.js.snap +9 -9
  102. data/webpack/__tests__/__snapshots__/ForemanRhCloudTestHelpers.test.js.snap +24 -2
  103. data/webpack/index.js +2 -12
  104. metadata +59 -2
@@ -0,0 +1,6 @@
1
+ import { selectInsightsCloudSync } from '../../../ForemanRhCloudSelectors';
2
+
3
+ export const selectSettings = state => selectInsightsCloudSync(state).settings;
4
+
5
+ export const selectInsightsSyncEnabled = state =>
6
+ selectSettings(state).insightsSyncEnabled;
@@ -0,0 +1,18 @@
1
+ import { testComponentSnapshotsWithFixtures } from 'react-redux-test-utils';
2
+ import { noop } from 'patternfly-react';
3
+
4
+ import InsightsSettings from '../InsightsSettings';
5
+
6
+ const fixtures = {
7
+ 'render without Props': {
8
+ insightsSyncEnabled: false,
9
+ getInsightsSyncSettings: noop,
10
+ setInsightsSyncEnabled: noop,
11
+ },
12
+ /** fixtures, props for the component */
13
+ };
14
+
15
+ describe('InsightsSettings', () => {
16
+ describe('rendering', () =>
17
+ testComponentSnapshotsWithFixtures(InsightsSettings, fixtures));
18
+ });
@@ -0,0 +1,46 @@
1
+ import { testActionSnapshotWithFixtures } from 'react-redux-test-utils';
2
+ import API from 'foremanReact/API';
3
+ import {
4
+ getInsightsSyncSettings,
5
+ setInsightsSyncEnabled,
6
+ } from '../InsightsSettingsActions';
7
+ import { rhCloudStateWrapper } from '../../../../ForemanRhCloudTestHelpers';
8
+
9
+ const serverMock = {
10
+ data: { insightsSyncEnabled: true },
11
+ };
12
+
13
+ jest.mock('foremanReact/API');
14
+ API.get.mockImplementation(() => serverMock);
15
+ API.patch.mockImplementation(() => serverMock);
16
+
17
+ const runWithGetState = (state, action, params) => dispatch => {
18
+ const getState = () => rhCloudStateWrapper({ InsightsCloudSync: state });
19
+ action(params)(dispatch, getState);
20
+ };
21
+
22
+ const fixtures = {
23
+ 'should generate INSIGHTS_SYNC_SETTINGS_GET_SUCCESS action': () =>
24
+ runWithGetState({ settings: {} }, getInsightsSyncSettings, {}),
25
+ 'should generate INSIGHTS_SYNC_SETTING_SET action': () =>
26
+ runWithGetState(
27
+ { settings: { insightsSyncEnabled: false } },
28
+ setInsightsSyncEnabled,
29
+ true
30
+ ),
31
+ };
32
+
33
+ describe('InsightsSettings actions', () => {
34
+ const { location } = window;
35
+
36
+ beforeAll(() => {
37
+ delete window.location;
38
+ window.location = { href: jest.fn() };
39
+ });
40
+
41
+ afterAll(() => {
42
+ window.location = location;
43
+ });
44
+
45
+ return testActionSnapshotWithFixtures(fixtures);
46
+ });
@@ -0,0 +1,56 @@
1
+ import { testReducerSnapshotWithFixtures } from 'react-redux-test-utils';
2
+
3
+ import {
4
+ INSIGHTS_SYNC_SETTING_SET,
5
+ INSIGHTS_SYNC_SETTING_SET_FAILURE,
6
+ INSIGHTS_SYNC_SETTINGS_GET_SUCCESS,
7
+ INSIGHTS_SYNC_SETTINGS_GET_FAILURE,
8
+ } from '../InsightsSettingsConstants';
9
+ import reducer from '../InsightsSettingsReducer';
10
+
11
+ const fixtures = {
12
+ 'should return the initial state': {},
13
+ 'should handle INSIGHTS_SYNC_SETTINGS_GET_SUCCESS': {
14
+ action: {
15
+ type: INSIGHTS_SYNC_SETTINGS_GET_SUCCESS,
16
+ payload: {
17
+ settings: {
18
+ insightsSyncEnabled: true,
19
+ },
20
+ },
21
+ },
22
+ },
23
+ 'should handle INSIGHTS_SYNC_SETTINGS_GET_FAILURE': {
24
+ action: {
25
+ type: INSIGHTS_SYNC_SETTINGS_GET_FAILURE,
26
+ payload: {
27
+ settings: {
28
+ error: 'test error',
29
+ },
30
+ },
31
+ },
32
+ },
33
+ 'should handle INSIGHTS_SYNC_SETTING_SET': {
34
+ action: {
35
+ type: INSIGHTS_SYNC_SETTING_SET,
36
+ payload: {
37
+ settings: {
38
+ insightsSyncEnabled: true,
39
+ },
40
+ },
41
+ },
42
+ },
43
+ 'should handle INSIGHTS_SYNC_SETTING_SET_FAILURE': {
44
+ action: {
45
+ type: INSIGHTS_SYNC_SETTING_SET_FAILURE,
46
+ payload: {
47
+ settings: {
48
+ error: 'test set error',
49
+ },
50
+ },
51
+ },
52
+ },
53
+ };
54
+
55
+ describe('InsightsSettings reducer', () =>
56
+ testReducerSnapshotWithFixtures(reducer, fixtures));
@@ -0,0 +1,21 @@
1
+ import { testSelectorsSnapshotWithFixtures } from 'react-redux-test-utils';
2
+ import {
3
+ selectSettings,
4
+ selectInsightsSyncEnabled,
5
+ } from '../InsightsSettingsSelectors';
6
+ import { insightsStateWrapper } from '../../../../ForemanRhCloudTestHelpers';
7
+
8
+ const state = insightsStateWrapper({
9
+ settings: {
10
+ insightsSyncEnabled: true,
11
+ },
12
+ });
13
+
14
+ const fixtures = {
15
+ 'should return insights sync settings': () => selectSettings(state),
16
+ 'should return insightsSyncEnabled setting': () =>
17
+ selectInsightsSyncEnabled(state),
18
+ };
19
+
20
+ describe('InsightsSettings selectors', () =>
21
+ testSelectorsSnapshotWithFixtures(fixtures));
@@ -0,0 +1,15 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`InsightsSettings rendering render without Props 1`] = `
4
+ <div
5
+ className="insights_settings"
6
+ >
7
+ <h3>
8
+ Settings
9
+ </h3>
10
+ <InsightsSyncSwitcher
11
+ insightsSyncEnabled={false}
12
+ setInsightsSyncEnabled={[Function]}
13
+ />
14
+ </div>
15
+ `;
@@ -0,0 +1,31 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`InsightsSettings actions should generate INSIGHTS_SYNC_SETTINGS_GET_SUCCESS action 1`] = `
4
+ Array [
5
+ Array [
6
+ Object {
7
+ "payload": Object {
8
+ "settings": Object {
9
+ "insightsSyncEnabled": true,
10
+ },
11
+ },
12
+ "type": "INSIGHTS_SYNC_SETTINGS_GET_SUCCESS",
13
+ },
14
+ ],
15
+ ]
16
+ `;
17
+
18
+ exports[`InsightsSettings actions should generate INSIGHTS_SYNC_SETTING_SET action 1`] = `
19
+ Array [
20
+ Array [
21
+ Object {
22
+ "payload": Object {
23
+ "settings": Object {
24
+ "insightsSyncEnabled": true,
25
+ },
26
+ },
27
+ "type": "INSIGHTS_SYNC_SETTING_SET",
28
+ },
29
+ ],
30
+ ]
31
+ `;
@@ -0,0 +1,33 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`InsightsSettings reducer should handle INSIGHTS_SYNC_SETTING_SET 1`] = `
4
+ Object {
5
+ "insightsSyncEnabled": true,
6
+ }
7
+ `;
8
+
9
+ exports[`InsightsSettings reducer should handle INSIGHTS_SYNC_SETTING_SET_FAILURE 1`] = `
10
+ Object {
11
+ "error": "test set error",
12
+ "insightsSyncEnabled": false,
13
+ }
14
+ `;
15
+
16
+ exports[`InsightsSettings reducer should handle INSIGHTS_SYNC_SETTINGS_GET_FAILURE 1`] = `
17
+ Object {
18
+ "error": "test error",
19
+ "insightsSyncEnabled": false,
20
+ }
21
+ `;
22
+
23
+ exports[`InsightsSettings reducer should handle INSIGHTS_SYNC_SETTINGS_GET_SUCCESS 1`] = `
24
+ Object {
25
+ "insightsSyncEnabled": true,
26
+ }
27
+ `;
28
+
29
+ exports[`InsightsSettings reducer should return the initial state 1`] = `
30
+ Object {
31
+ "insightsSyncEnabled": false,
32
+ }
33
+ `;
@@ -0,0 +1,9 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`InsightsSettings selectors should return insights sync settings 1`] = `
4
+ Object {
5
+ "insightsSyncEnabled": true,
6
+ }
7
+ `;
8
+
9
+ exports[`InsightsSettings selectors should return insightsSyncEnabled setting 1`] = `true`;
@@ -0,0 +1,21 @@
1
+ import { bindActionCreators } from 'redux';
2
+ import { connect } from 'react-redux';
3
+
4
+ import InsightsSettings from './InsightsSettings';
5
+ import { selectInsightsSyncEnabled } from './InsightsSettingsSelectors';
6
+ import * as actions from './InsightsSettingsActions';
7
+ import reducer from './InsightsSettingsReducer';
8
+
9
+ // map state to props
10
+ const mapStateToProps = state => ({
11
+ insightsSyncEnabled: selectInsightsSyncEnabled(state),
12
+ });
13
+
14
+ // map action dispatchers to props
15
+ const mapDispatchToProps = dispatch => bindActionCreators(actions, dispatch);
16
+
17
+ // export connected component
18
+ export default connect(mapStateToProps, mapDispatchToProps)(InsightsSettings);
19
+
20
+ // export reducers
21
+ export const reducers = { settings: reducer };
@@ -0,0 +1,16 @@
1
+ .insights_settings {
2
+ border: 1px solid #ededed;
3
+ border-radius: 4px;
4
+ padding: 10px;
5
+ margin-bottom: 15px;
6
+ float: right;
7
+
8
+ h3 {
9
+ margin-top: 0;
10
+ font-weight: 600;
11
+ }
12
+
13
+ .bootstrap-switch {
14
+ float: right;
15
+ }
16
+ }
@@ -0,0 +1 @@
1
+ export const handleToggleResponse = { data: { insightsSyncEnabled: true } };
@@ -0,0 +1,45 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Switch, FieldLevelHelp } from 'patternfly-react';
4
+ import { translate as __ } from 'foremanReact/common/I18n';
5
+ import './insightsSyncSwitcher.scss';
6
+
7
+ class InsightsSyncSwitcher extends Component {
8
+ handleToggle = () => {
9
+ const { insightsSyncEnabled, setInsightsSyncEnabled } = this.props;
10
+
11
+ const toggledInsightsSyncEnabled = !insightsSyncEnabled;
12
+ setInsightsSyncEnabled(toggledInsightsSyncEnabled);
13
+ };
14
+
15
+ render() {
16
+ const { insightsSyncEnabled } = this.props;
17
+
18
+ return (
19
+ <div className="insights_sync_switcher">
20
+ <span>Synchronize Automatically</span>
21
+ <FieldLevelHelp
22
+ content={__(
23
+ 'Enable automatic synchronization of Insights recommendations from the Red Hat cloud'
24
+ )}
25
+ />
26
+ <Switch
27
+ size="mini"
28
+ value={insightsSyncEnabled}
29
+ onChange={this.handleToggle}
30
+ />
31
+ </div>
32
+ );
33
+ }
34
+ }
35
+
36
+ InsightsSyncSwitcher.propTypes = {
37
+ insightsSyncEnabled: PropTypes.bool,
38
+ setInsightsSyncEnabled: PropTypes.func.isRequired,
39
+ };
40
+
41
+ InsightsSyncSwitcher.defaultProps = {
42
+ insightsSyncEnabled: true,
43
+ };
44
+
45
+ export default InsightsSyncSwitcher;
@@ -0,0 +1,17 @@
1
+ import { testComponentSnapshotsWithFixtures } from 'react-redux-test-utils';
2
+ import { noop } from 'patternfly-react';
3
+
4
+ import InsightsSyncSwitcher from '../InsightsSyncSwitcher';
5
+
6
+ const fixtures = {
7
+ 'render with props': {
8
+ insightsSyncEnabled: true,
9
+ setInsightsSyncEnabled: noop,
10
+ },
11
+ /** fixtures, props for the component */
12
+ };
13
+
14
+ describe('InsightsSyncSwitcher', () => {
15
+ describe('rendering', () =>
16
+ testComponentSnapshotsWithFixtures(InsightsSyncSwitcher, fixtures));
17
+ });
@@ -0,0 +1,38 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`InsightsSyncSwitcher rendering render with props 1`] = `
4
+ <div
5
+ className="insights_sync_switcher"
6
+ >
7
+ <span>
8
+ Synchronize Automatically
9
+ </span>
10
+ <FieldLevelHelp
11
+ buttonClass=""
12
+ content="Enable automatic synchronization of Insights recommendations from the Red Hat cloud"
13
+ placement="top"
14
+ rootClose={true}
15
+ />
16
+ <Switch
17
+ animate={true}
18
+ baseClass="bootstrap-switch"
19
+ bsSize={null}
20
+ defaultValue={true}
21
+ disabled={false}
22
+ handleWidth="auto"
23
+ inverse={false}
24
+ labelText=" "
25
+ labelWidth="auto"
26
+ offColor="default"
27
+ offText="OFF"
28
+ onChange={[Function]}
29
+ onColor="primary"
30
+ onText="ON"
31
+ readonly={false}
32
+ size="mini"
33
+ tristate={false}
34
+ value={true}
35
+ wrapperClass="wrapper"
36
+ />
37
+ </div>
38
+ `;
@@ -0,0 +1 @@
1
+ export { default } from './InsightsSyncSwitcher';
@@ -0,0 +1,3 @@
1
+ .insights_sync_switcher {
2
+ margin-bottom: 5px;
3
+ }
@@ -4,6 +4,7 @@ import PropTypes from 'prop-types';
4
4
  import { translate as __ } from 'foremanReact/common/I18n';
5
5
  import { Button, Icon } from 'patternfly-react';
6
6
  import { INSIGHTS_SYNC_PAGE_TITLE } from './InsightsCloudSyncConstants';
7
+ import InsightsSettings from './Components/InsightsSettings';
7
8
 
8
9
  const InsightsCloudSync = ({ data: { settingsUrl }, syncInsights }) => {
9
10
  document.title = INSIGHTS_SYNC_PAGE_TITLE;
@@ -11,34 +12,37 @@ const InsightsCloudSync = ({ data: { settingsUrl }, syncInsights }) => {
11
12
  <IntlProvider locale={navigator.language}>
12
13
  <div className="insights-cloud-sync">
13
14
  <h1>{__('Red Hat Insights Sync')}</h1>
14
- <p>
15
- {__(`Insights synchronization process is used to provide Insights
16
- recommendations output for hosts managed here`)}
17
- </p>
18
- <p>
19
- {__(`1. Obtain an RHSM API token: `)}
20
- <a
21
- href="https://access.redhat.com/management/api"
22
- target="_blank"
23
- rel="noopener noreferrer"
24
- >
25
- access.redhat.com <Icon name="external-link" size="xs" />
26
- </a>
27
- <br />
28
- {__("2. Copy the token to 'Red Hat Cloud token' setting: ")}
29
- <a href={settingsUrl} target="_blank" rel="noopener noreferrer">
30
- {__('Red Hat Cloud token ')}
31
- <Icon name="external-link" size="xs" />
32
- </a>
33
- <br />
34
- {__(
35
- '3. Now you can syncronize recommendations manually using the "Sync now" button.'
36
- )}
37
- </p>
38
- <div>
39
- <Button bsStyle="primary" onClick={syncInsights}>
40
- {__('Sync now')}
41
- </Button>
15
+ <div className="insights-cloud-sync-body">
16
+ <InsightsSettings />
17
+ <p>
18
+ {__(`Insights synchronization process is used to provide Insights
19
+ recommendations output for hosts managed here`)}
20
+ </p>
21
+ <p>
22
+ {__(`1. Obtain an RHSM API token: `)}
23
+ <a
24
+ href="https://access.redhat.com/management/api"
25
+ target="_blank"
26
+ rel="noopener noreferrer"
27
+ >
28
+ access.redhat.com <Icon name="external-link" size="xs" />
29
+ </a>
30
+ <br />
31
+ {__("2. Copy the token to 'Red Hat Cloud token' setting: ")}
32
+ <a href={settingsUrl} target="_blank" rel="noopener noreferrer">
33
+ {__('Red Hat Cloud token ')}
34
+ <Icon name="external-link" size="xs" />
35
+ </a>
36
+ <br />
37
+ {__(
38
+ '3. Now you can synchronize recommendations manually using the "Sync now" button.'
39
+ )}
40
+ </p>
41
+ <div>
42
+ <Button bsStyle="primary" onClick={syncInsights}>
43
+ {__('Sync now')}
44
+ </Button>
45
+ </div>
42
46
  </div>
43
47
  </div>
44
48
  </IntlProvider>