- )};
+ );
+ }
}
ApplicationInstanceReport.defaultProps = {
- error: {},
- appInstanceName: '',
- deployTaskUrl: '',
- configureJobUrl: '',
- hosts: [],
- report: [],
+ data: {
+ initialConfigureJobUrl: undefined,
+ },
activeHostId: 0,
+ configureJobUrl: '',
deploymentState: 'unknown',
- initialConfigureState: 'unknown',
+ deployTaskUrl: '',
+ hosts: [],
initialConfigureJobUrl: '',
+ initialConfigureState: 'unknown',
+ loading: false,
showInitialConfigureJob: false,
-}
+};
ApplicationInstanceReport.propTypes = {
- initApplicationInstanceReport: PropTypes.func,
- appInstanceName: PropTypes.string,
- deployTaskUrl: PropTypes.string,
+ data: PropTypes.shape({
+ hosts: PropTypes.array.isRequired,
+ deploymentState: PropTypes.string.isRequired,
+ appInstanceId: PropTypes.number.isRequired,
+ reportDataUrl: PropTypes.string.isRequired,
+ deployTaskUrl: PropTypes.string.isRequired,
+ configureJobUrl: PropTypes.string.isRequired,
+ initialConfigureState: PropTypes.string.isRequired,
+ initialConfigureJobUrl: PropTypes.string,
+ }),
+ activeHostId: PropTypes.number,
configureJobUrl: PropTypes.string,
deploymentState: PropTypes.string,
- initialConfigureState: PropTypes.string,
+ deployTaskUrl: PropTypes.string,
+ hosts: PropTypes.array,
initialConfigureJobUrl: PropTypes.string,
+ initialConfigureState: PropTypes.string,
+ loading: PropTypes.bool,
showInitialConfigureJob: PropTypes.bool,
- hosts: PropTypes.array,
- deploymentState: PropTypes.string,
- report: PropTypes.array,
- setActiveHost: PropTypes.func,
- loadReportData: PropTypes.func,
- activeHostId: PropTypes.number,
+ initApplicationInstanceReport: PropTypes.func.isRequired,
+ loadReportData: PropTypes.func.isRequired,
+ setActiveHost: PropTypes.func.isRequired,
};
export default ApplicationInstanceReport;
diff --git a/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportActions.js b/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportActions.js
index 60fc5dca..a0628b44 100644
--- a/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportActions.js
+++ b/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportActions.js
@@ -1,15 +1,5 @@
-import React from 'react';
import api from 'foremanReact/API';
-import {
- actionHeaderCellFormatter,
-} from 'patternfly-react';
-
-import {
- propsToSnakeCase,
- propsToCamelCase,
-} from 'foremanReact/common/helpers';
-
import {
APPLICATION_INSTANCE_REPORT_INIT,
APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST,
@@ -19,7 +9,10 @@ import {
} from './ApplicationInstanceReportConstants';
export const initApplicationInstanceReport = (
- hosts, deploymentState, initialConfigureState, initialConfigureJobUrl,
+ hosts,
+ deploymentState,
+ initialConfigureState,
+ initialConfigureJobUrl
) => dispatch => {
const initialState = {};
@@ -30,7 +23,7 @@ export const initApplicationInstanceReport = (
// Decide if it should show only the initial Configure job state + URL or
// the URL to all configuration jobs
- if (initialConfigureState == 'unconfigured') {
+ if (initialConfigureState === 'unconfigured') {
initialState.showInitialConfigureJob = true;
} else {
initialState.showInitialConfigureJob = false;
@@ -44,22 +37,24 @@ export const initApplicationInstanceReport = (
export const loadReportData = (
reportDataUrl,
- appInstanceId,
-) => dispatch => {
+ appInstanceId
+) => async dispatch => {
dispatch({ type: APPLICATION_INSTANCE_REPORT_LOAD_REPORT_REQUEST });
const baseUrl = reportDataUrl;
- const realUrl = baseUrl.replace("__id__", appInstanceId);
+ const realUrl = baseUrl.replace('__id__', appInstanceId);
- return api
- .get(realUrl, {}, {})
- .then(({ data }) =>
- dispatch({
- type: APPLICATION_INSTANCE_REPORT_LOAD_REPORT_SUCCESS,
- payload: { ...data }
- })
- )
- .catch(error => dispatch(errorHandler(APPLICATION_INSTANCE_REPORT_LOAD_REPORT_FAILURE, error)));
+ try {
+ const { data } = await api.get(realUrl, {}, {});
+ dispatch({
+ type: APPLICATION_INSTANCE_REPORT_LOAD_REPORT_SUCCESS,
+ payload: { ...data },
+ });
+ } catch (error) {
+ dispatch(
+ errorHandler(APPLICATION_INSTANCE_REPORT_LOAD_REPORT_FAILURE, error)
+ );
+ }
};
const errorHandler = (msg, err) => {
@@ -70,7 +65,7 @@ const errorHandler = (msg, err) => {
return { type: msg, payload: { error } };
};
-export const setActiveHost = (id) => ({
+export const setActiveHost = id => ({
type: APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST,
payload: { activeHostId: id },
});
diff --git a/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportConstants.js b/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportConstants.js
index 85b007ab..0a769db7 100644
--- a/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportConstants.js
+++ b/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportConstants.js
@@ -1,5 +1,10 @@
-export const APPLICATION_INSTANCE_REPORT_INIT = 'APPLICATION_INSTANCE_REPORT_INIT';
-export const APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST = 'APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST';
-export const APPLICATION_INSTANCE_REPORT_LOAD_REPORT_REQUEST = 'APPLICATION_INSTANCE_REPORT_LOAD_REPORT_REQUEST';
-export const APPLICATION_INSTANCE_REPORT_LOAD_REPORT_SUCCESS = 'APPLICATION_INSTANCE_REPORT_LOAD_REPORT_SUCCESS';
-export const APPLICATION_INSTANCE_REPORT_LOAD_REPORT_FAILURE = 'APPLICATION_INSTANCE_REPORT_LOAD_REPORT_FAILURE';
+export const APPLICATION_INSTANCE_REPORT_INIT =
+ 'APPLICATION_INSTANCE_REPORT_INIT';
+export const APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST =
+ 'APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST';
+export const APPLICATION_INSTANCE_REPORT_LOAD_REPORT_REQUEST =
+ 'APPLICATION_INSTANCE_REPORT_LOAD_REPORT_REQUEST';
+export const APPLICATION_INSTANCE_REPORT_LOAD_REPORT_SUCCESS =
+ 'APPLICATION_INSTANCE_REPORT_LOAD_REPORT_SUCCESS';
+export const APPLICATION_INSTANCE_REPORT_LOAD_REPORT_FAILURE =
+ 'APPLICATION_INSTANCE_REPORT_LOAD_REPORT_FAILURE';
diff --git a/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportReducer.js b/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportReducer.js
index 480fbdcf..964bb160 100644
--- a/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportReducer.js
+++ b/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportReducer.js
@@ -1,11 +1,5 @@
import Immutable from 'seamless-immutable';
-import {
- cloneDeep,
- findIndex,
- findLastIndex,
-} from 'lodash';
-
import {
APPLICATION_INSTANCE_REPORT_INIT,
APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST,
@@ -28,13 +22,13 @@ const applicationInstanceReport = (state = initialState, action) => {
}
case APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST: {
return state.merge({
- loading: true,
activeHostId: payload.activeHostId,
- })
+ });
}
case APPLICATION_INSTANCE_REPORT_LOAD_REPORT_REQUEST: {
- // Nothing to do
- return state;
+ return state.merge({
+ loading: true,
+ });
}
case APPLICATION_INSTANCE_REPORT_LOAD_REPORT_SUCCESS: {
return state.merge({
@@ -42,11 +36,14 @@ const applicationInstanceReport = (state = initialState, action) => {
initialConfigureState: payload.initialConfigureState,
initialConfigureJobUrl: payload.initialConfigureJobUrl,
hosts: payload.hosts,
+ loading: false,
});
}
case APPLICATION_INSTANCE_REPORT_LOAD_REPORT_FAILURE: {
- console.log("Error while loading report data: "+ payload.error);
- return state.merge({ error: payload.error});
+ return state.merge({
+ error: payload.error,
+ loading: false,
+ });
}
default: {
return state;
diff --git a/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportSelectors.js b/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportSelectors.js
index 57651a28..901d4b44 100644
--- a/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportSelectors.js
+++ b/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportSelectors.js
@@ -1,8 +1,14 @@
-const applicationInstanceReport = state => state.foremanAcd.applicationInstanceReport;
+const applicationInstanceReport = state =>
+ state.foremanAcd.applicationInstanceReport;
export const selectHosts = state => applicationInstanceReport(state).hosts;
-export const selectActiveHostId = state => applicationInstanceReport(state).activeHostId;
-export const selectDeploymentState = state => applicationInstanceReport(state).deploymentState;
-export const selectInitialConfigureState = state => applicationInstanceReport(state).initialConfigureState;
-export const selectInitialConfigureJobUrl = state => applicationInstanceReport(state).initialConfigureJobUrl;
-export const selectShowInitialConfigureJob = state => applicationInstanceReport(state).showInitialConfigureJob;
+export const selectActiveHostId = state =>
+ applicationInstanceReport(state).activeHostId;
+export const selectDeploymentState = state =>
+ applicationInstanceReport(state).deploymentState;
+export const selectInitialConfigureState = state =>
+ applicationInstanceReport(state).initialConfigureState;
+export const selectInitialConfigureJobUrl = state =>
+ applicationInstanceReport(state).initialConfigureJobUrl;
+export const selectShowInitialConfigureJob = state =>
+ applicationInstanceReport(state).showInitialConfigureJob;
diff --git a/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportData_1.fixtures.js b/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportData1.fixtures.js
similarity index 55%
rename from webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportData_1.fixtures.js
rename to webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportData1.fixtures.js
index 5b35c4e5..2175682f 100644
--- a/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportData_1.fixtures.js
+++ b/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportData1.fixtures.js
@@ -1,9 +1,9 @@
-export const applicationInstanceReportData_1 = {
+export const applicationInstanceReportData1 = {
name: false,
error: {
errorMsg: '',
status: '',
- statusText: ''
+ statusText: '',
},
hosts: [
{
@@ -18,15 +18,16 @@ export const applicationInstanceReportData_1 = {
timestamp: '2021-03-12T09:52:10.190Z',
status: 'completed',
priority: 3,
- created: 1615542728.8466988
+ created: 1615542728.8466988,
},
{
id: 'Query instance details for great-web-app-db-1.deploy3.dev.atix',
- name: 'Query instance details for great-web-app-db-1.deploy3.dev.atix',
+ name:
+ 'Query instance details for great-web-app-db-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:10.385Z',
status: 'completed',
priority: 5,
- created: 1615542728.8474095
+ created: 1615542728.8474095,
},
{
id: 'dhcp_create_192.168.171.103',
@@ -34,55 +35,65 @@ export const applicationInstanceReportData_1 = {
timestamp: '2021-03-12T09:52:10.584Z',
status: 'completed',
priority: 10,
- created: 1615542728.0081317
+ created: 1615542728.0081317,
},
{
id: 'Create IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix',
- name: 'Create IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix',
+ name:
+ 'Create IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:10.679Z',
status: 'completed',
priority: 10,
- created: 1615542728.04177
+ created: 1615542728.04177,
},
{
- id: 'Create Reverse IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix',
- name: 'Create Reverse IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix',
+ id:
+ 'Create Reverse IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix',
+ name:
+ 'Create Reverse IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:10.798Z',
status: 'completed',
priority: 10,
- created: 1615542728.0424814
+ created: 1615542728.0424814,
},
{
- id: 'Deploy TFTP PXELinux config for great-web-app-db-1.deploy3.dev.atix',
- name: 'Deploy TFTP PXELinux config for great-web-app-db-1.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP PXELinux config for great-web-app-db-1.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP PXELinux config for great-web-app-db-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:11.178Z',
status: 'completed',
priority: 20,
- created: 1615542728.0881674
+ created: 1615542728.0881674,
},
{
- id: 'Deploy TFTP PXEGrub2 config for great-web-app-db-1.deploy3.dev.atix',
- name: 'Deploy TFTP PXEGrub2 config for great-web-app-db-1.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP PXEGrub2 config for great-web-app-db-1.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP PXEGrub2 config for great-web-app-db-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:11.615Z',
status: 'completed',
priority: 20,
- created: 1615542728.0883749
+ created: 1615542728.0883749,
},
{
- id: 'Deploy TFTP PXEGrub config for great-web-app-db-1.deploy3.dev.atix',
- name: 'Deploy TFTP PXEGrub config for great-web-app-db-1.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP PXEGrub config for great-web-app-db-1.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP PXEGrub config for great-web-app-db-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:11.642Z',
status: 'completed',
priority: 20,
- created: 1615542728.088634
+ created: 1615542728.088634,
},
{
id: 'Deploy TFTP iPXE config for great-web-app-db-1.deploy3.dev.atix',
- name: 'Deploy TFTP iPXE config for great-web-app-db-1.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP iPXE config for great-web-app-db-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:11.874Z',
status: 'completed',
priority: 20,
- created: 1615542728.0888274
+ created: 1615542728.0888274,
},
{
id: 'Fetch TFTP boot files for great-web-app-db-1.deploy3.dev.atix',
@@ -90,7 +101,7 @@ export const applicationInstanceReportData_1 = {
timestamp: '2021-03-12T09:52:11.981Z',
status: 'completed',
priority: 25,
- created: 1615542728.0894718
+ created: 1615542728.0894718,
},
{
id: 'Power up compute instance great-web-app-db-1.deploy3.dev.atix',
@@ -98,26 +109,30 @@ export const applicationInstanceReportData_1 = {
timestamp: '2021-03-12T09:52:12.950Z',
status: 'completed',
priority: 1000,
- created: 1615542728.8482428
+ created: 1615542728.8482428,
},
{
- id: 'Cleanup PuppetCA certificates for great-web-app-db-1.deploy3.dev.atix',
- name: 'Cleanup PuppetCA certificates for great-web-app-db-1.deploy3.dev.atix',
+ id:
+ 'Cleanup PuppetCA certificates for great-web-app-db-1.deploy3.dev.atix',
+ name:
+ 'Cleanup PuppetCA certificates for great-web-app-db-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:13.390Z',
status: 'completed',
priority: 51,
- created: 1615542728.8508224
+ created: 1615542728.8508224,
},
{
- id: 'Enable PuppetCA autosigning for great-web-app-db-1.deploy3.dev.atix',
- name: 'Enable PuppetCA autosigning for great-web-app-db-1.deploy3.dev.atix',
+ id:
+ 'Enable PuppetCA autosigning for great-web-app-db-1.deploy3.dev.atix',
+ name:
+ 'Enable PuppetCA autosigning for great-web-app-db-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:13.442Z',
status: 'completed',
priority: 55,
- created: 1615542728.8514216
- }
+ created: 1615542728.8514216,
+ },
],
- powerStatusUrl: '/api/v2/hosts/great-web-app-db-1.deploy3.dev.atix/power'
+ powerStatusUrl: '/api/v2/hosts/great-web-app-db-1.deploy3.dev.atix/power',
},
{
id: 9,
@@ -131,15 +146,16 @@ export const applicationInstanceReportData_1 = {
timestamp: '2021-03-12T09:52:14.825Z',
status: 'completed',
priority: 3,
- created: 1615542733.824889
+ created: 1615542733.824889,
},
{
id: 'Query instance details for great-web-app-web-1.deploy3.dev.atix',
- name: 'Query instance details for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Query instance details for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:15.007Z',
status: 'completed',
priority: 5,
- created: 1615542733.825672
+ created: 1615542733.825672,
},
{
id: 'dhcp_create_192.168.171.104',
@@ -147,90 +163,108 @@ export const applicationInstanceReportData_1 = {
timestamp: '2021-03-12T09:52:15.181Z',
status: 'completed',
priority: 10,
- created: 1615542733.5710943
+ created: 1615542733.5710943,
},
{
id: 'Create IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix',
- name: 'Create IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Create IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:15.251Z',
status: 'completed',
priority: 10,
- created: 1615542733.599793
+ created: 1615542733.599793,
},
{
- id: 'Create Reverse IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix',
- name: 'Create Reverse IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix',
+ id:
+ 'Create Reverse IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Create Reverse IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:15.328Z',
status: 'completed',
priority: 10,
- created: 1615542733.600369
+ created: 1615542733.600369,
},
{
- id: 'Deploy TFTP PXELinux config for great-web-app-web-1.deploy3.dev.atix',
- name: 'Deploy TFTP PXELinux config for great-web-app-web-1.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP PXELinux config for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP PXELinux config for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:15.681Z',
status: 'completed',
priority: 20,
- created: 1615542733.6356068
+ created: 1615542733.6356068,
},
{
- id: 'Deploy TFTP PXEGrub2 config for great-web-app-web-1.deploy3.dev.atix',
- name: 'Deploy TFTP PXEGrub2 config for great-web-app-web-1.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP PXEGrub2 config for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP PXEGrub2 config for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:16.152Z',
status: 'completed',
priority: 20,
- created: 1615542733.635817
+ created: 1615542733.635817,
},
{
- id: 'Deploy TFTP PXEGrub config for great-web-app-web-1.deploy3.dev.atix',
- name: 'Deploy TFTP PXEGrub config for great-web-app-web-1.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP PXEGrub config for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP PXEGrub config for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:16.183Z',
status: 'completed',
priority: 20,
- created: 1615542733.6360064
+ created: 1615542733.6360064,
},
{
- id: 'Deploy TFTP iPXE config for great-web-app-web-1.deploy3.dev.atix',
- name: 'Deploy TFTP iPXE config for great-web-app-web-1.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP iPXE config for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP iPXE config for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:16.417Z',
status: 'completed',
priority: 20,
- created: 1615542733.6362345
+ created: 1615542733.6362345,
},
{
id: 'Fetch TFTP boot files for great-web-app-web-1.deploy3.dev.atix',
- name: 'Fetch TFTP boot files for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Fetch TFTP boot files for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:16.523Z',
status: 'completed',
priority: 25,
- created: 1615542733.6365006
+ created: 1615542733.6365006,
},
{
id: 'Power up compute instance great-web-app-web-1.deploy3.dev.atix',
- name: 'Power up compute instance great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Power up compute instance great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:17.533Z',
status: 'completed',
priority: 1000,
- created: 1615542733.8267431
+ created: 1615542733.8267431,
},
{
- id: 'Cleanup PuppetCA certificates for great-web-app-web-1.deploy3.dev.atix',
- name: 'Cleanup PuppetCA certificates for great-web-app-web-1.deploy3.dev.atix',
+ id:
+ 'Cleanup PuppetCA certificates for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Cleanup PuppetCA certificates for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:17.944Z',
status: 'completed',
priority: 51,
- created: 1615542733.8292165
+ created: 1615542733.8292165,
},
{
- id: 'Enable PuppetCA autosigning for great-web-app-web-1.deploy3.dev.atix',
- name: 'Enable PuppetCA autosigning for great-web-app-web-1.deploy3.dev.atix',
+ id:
+ 'Enable PuppetCA autosigning for great-web-app-web-1.deploy3.dev.atix',
+ name:
+ 'Enable PuppetCA autosigning for great-web-app-web-1.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:17.995Z',
status: 'completed',
priority: 55,
- created: 1615542733.8294067
- }
+ created: 1615542733.8294067,
+ },
],
- powerStatusUrl: '/api/v2/hosts/great-web-app-web-1.deploy3.dev.atix/power'
+ powerStatusUrl:
+ '/api/v2/hosts/great-web-app-web-1.deploy3.dev.atix/power',
},
{
id: 10,
@@ -244,15 +278,16 @@ export const applicationInstanceReportData_1 = {
timestamp: '2021-03-12T09:52:19.221Z',
status: 'completed',
priority: 3,
- created: 1615542738.3446305
+ created: 1615542738.3446305,
},
{
id: 'Query instance details for great-web-app-web-2.deploy3.dev.atix',
- name: 'Query instance details for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Query instance details for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:19.419Z',
status: 'completed',
priority: 5,
- created: 1615542738.3449144
+ created: 1615542738.3449144,
},
{
id: 'dhcp_create_192.168.171.105',
@@ -260,90 +295,108 @@ export const applicationInstanceReportData_1 = {
timestamp: '2021-03-12T09:52:19.668Z',
status: 'completed',
priority: 10,
- created: 1615542738.1321318
+ created: 1615542738.1321318,
},
{
id: 'Create IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix',
- name: 'Create IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Create IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:19.749Z',
status: 'completed',
priority: 10,
- created: 1615542738.1576574
+ created: 1615542738.1576574,
},
{
- id: 'Create Reverse IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix',
- name: 'Create Reverse IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix',
+ id:
+ 'Create Reverse IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Create Reverse IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:19.859Z',
status: 'completed',
priority: 10,
- created: 1615542738.1582346
+ created: 1615542738.1582346,
},
{
- id: 'Deploy TFTP PXELinux config for great-web-app-web-2.deploy3.dev.atix',
- name: 'Deploy TFTP PXELinux config for great-web-app-web-2.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP PXELinux config for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP PXELinux config for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:20.221Z',
status: 'completed',
priority: 20,
- created: 1615542738.1885784
+ created: 1615542738.1885784,
},
{
- id: 'Deploy TFTP PXEGrub2 config for great-web-app-web-2.deploy3.dev.atix',
- name: 'Deploy TFTP PXEGrub2 config for great-web-app-web-2.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP PXEGrub2 config for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP PXEGrub2 config for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:20.604Z',
status: 'completed',
priority: 20,
- created: 1615542738.1888642
+ created: 1615542738.1888642,
},
{
- id: 'Deploy TFTP PXEGrub config for great-web-app-web-2.deploy3.dev.atix',
- name: 'Deploy TFTP PXEGrub config for great-web-app-web-2.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP PXEGrub config for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP PXEGrub config for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:20.636Z',
status: 'completed',
priority: 20,
- created: 1615542738.1890883
+ created: 1615542738.1890883,
},
{
- id: 'Deploy TFTP iPXE config for great-web-app-web-2.deploy3.dev.atix',
- name: 'Deploy TFTP iPXE config for great-web-app-web-2.deploy3.dev.atix',
+ id:
+ 'Deploy TFTP iPXE config for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Deploy TFTP iPXE config for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:20.895Z',
status: 'completed',
priority: 20,
- created: 1615542738.1892834
+ created: 1615542738.1892834,
},
{
id: 'Fetch TFTP boot files for great-web-app-web-2.deploy3.dev.atix',
- name: 'Fetch TFTP boot files for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Fetch TFTP boot files for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:20.992Z',
status: 'completed',
priority: 25,
- created: 1615542738.1898031
+ created: 1615542738.1898031,
},
{
id: 'Power up compute instance great-web-app-web-2.deploy3.dev.atix',
- name: 'Power up compute instance great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Power up compute instance great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:21.864Z',
status: 'completed',
priority: 1000,
- created: 1615542738.3453662
+ created: 1615542738.3453662,
},
{
- id: 'Cleanup PuppetCA certificates for great-web-app-web-2.deploy3.dev.atix',
- name: 'Cleanup PuppetCA certificates for great-web-app-web-2.deploy3.dev.atix',
+ id:
+ 'Cleanup PuppetCA certificates for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Cleanup PuppetCA certificates for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:22.316Z',
status: 'completed',
priority: 51,
- created: 1615542738.34748
+ created: 1615542738.34748,
},
{
- id: 'Enable PuppetCA autosigning for great-web-app-web-2.deploy3.dev.atix',
- name: 'Enable PuppetCA autosigning for great-web-app-web-2.deploy3.dev.atix',
+ id:
+ 'Enable PuppetCA autosigning for great-web-app-web-2.deploy3.dev.atix',
+ name:
+ 'Enable PuppetCA autosigning for great-web-app-web-2.deploy3.dev.atix',
timestamp: '2021-03-12T09:52:22.368Z',
status: 'completed',
priority: 55,
- created: 1615542738.3476808
- }
+ created: 1615542738.3476808,
+ },
],
- powerStatusUrl: '/api/v2/hosts/great-web-app-web-2.deploy3.dev.atix/power'
- }
- ]
-}
+ powerStatusUrl:
+ '/api/v2/hosts/great-web-app-web-2.deploy3.dev.atix/power',
+ },
+ ],
+};
diff --git a/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportReducer.fixtures.js b/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportReducer.fixtures.js
index b3db199b..ad3be9a2 100644
--- a/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportReducer.fixtures.js
+++ b/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportReducer.fixtures.js
@@ -1,20 +1,13 @@
import Immutable from 'seamless-immutable';
-import {
- cloneDeep,
- findIndex,
- findLastIndex,
-} from 'lodash';
-import {
- applicationInstanceReportData_1,
-} from '../__fixtures__/applicationInstanceReportData_1.fixtures';
+import { applicationInstanceReportData1 } from '../__fixtures__/applicationInstanceReportData1.fixtures';
-export const successState = Immutable(applicationInstanceReportData_1);
+export const successState = Immutable(applicationInstanceReportData1);
const ACTIVE_HOST_ID = 2;
// Payload Data
-export const initApplicationInstanceReportPayload = applicationInstanceReportData_1;
+export const initApplicationInstanceReportPayload = applicationInstanceReportData1;
export const setActiveHostPayload = {
activeHostId: ACTIVE_HOST_ID,
};
diff --git a/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReport.test.js b/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReport.test.js
index 9dbda820..14a70a7e 100644
--- a/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReport.test.js
+++ b/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReport.test.js
@@ -6,40 +6,46 @@ const noop = () => {};
const hostData = [
{
- "id": 8,
- "name": "great-web-app-db-1",
- "build": false,
- "hostUrl": "/hosts/great-web-app-db-1.deploy3.dev.atix",
- "progress_report": [],
- "powerStatusUrl": "/api/v2/hosts/great-web-app-db-1.deploy3.dev.atix/power"
+ id: 8,
+ name: 'great-web-app-db-1',
+ build: false,
+ hostUrl: '/hosts/great-web-app-db-1.deploy3.dev.atix',
+ progress_report: [],
+ powerStatusUrl: '/api/v2/hosts/great-web-app-db-1.deploy3.dev.atix/power',
},
{
- "id": 9,
- "name": "great-web-app-web-1",
- "build": false,
- "hostUrl": "/hosts/great-web-app-web-1.deploy3.dev.atix",
- "progress_report": [],
- "powerStatusUrl": "/api/v2/hosts/great-web-app-web-1.deploy3.dev.atix/power"
+ id: 9,
+ name: 'great-web-app-web-1',
+ build: false,
+ hostUrl: '/hosts/great-web-app-web-1.deploy3.dev.atix',
+ progress_report: [],
+ powerStatusUrl: '/api/v2/hosts/great-web-app-web-1.deploy3.dev.atix/power',
},
{
- "id": 10,
- "name": "great-web-app-web-2",
- "build": false,
- "hostUrl": "/hosts/great-web-app-web-2.deploy3.dev.atix",
- "progress_report": [],
- "powerStatusUrl": "/api/v2/hosts/great-web-app-web-2.deploy3.dev.atix/power"
- }
+ id: 10,
+ name: 'great-web-app-web-2',
+ build: false,
+ hostUrl: '/hosts/great-web-app-web-2.deploy3.dev.atix',
+ progress_report: [],
+ powerStatusUrl: '/api/v2/hosts/great-web-app-web-2.deploy3.dev.atix/power',
+ },
];
const fixtures = {
'should render application instance report': {
data: {
- appInstanceName: "instance name",
- deployTaskUrl: "deploy/task/url",
- configureJobUrl: "configure/job/url",
+ appInstanceName: 'instance name',
+ deployTaskUrl: 'deploy/task/url',
+ configureJobUrl: 'configure/job/url',
hosts: hostData,
+ deploymentState: 'finished',
+ appInstanceId: 1,
+ reportDataUrl: '/acd/ui_acd_report_data/__id__',
+ initialConfigureState: 'unconfigured',
},
initApplicationInstanceReport: noop,
+ loadReportData: noop,
+ setActiveHost: noop,
},
};
diff --git a/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReportSelectors.test.js b/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReportSelectors.test.js
index 7a0218bb..d20d6222 100644
--- a/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReportSelectors.test.js
+++ b/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReportSelectors.test.js
@@ -5,9 +5,7 @@ import {
selectActiveHostId,
} from '../ApplicationInstanceReportSelectors';
-import {
- applicationInstanceReportData_1,
-} from '../__fixtures__/applicationInstanceReportData_1.fixtures';
+import { applicationInstanceReportData1 } from '../__fixtures__/applicationInstanceReportData1.fixtures';
const stateFactory = obj => ({
foremanAcd: {
@@ -16,10 +14,10 @@ const stateFactory = obj => ({
});
const fixtures = {
- 'should return hosts from applicationInstanceReportData_1 fixtures': () =>
- selectHosts(stateFactory(applicationInstanceReportData_1)),
- 'should return activeHostId from applicationInstanceReportData_1 fixtures': () =>
- selectActiveHostId(stateFactory(applicationInstanceReportData_1)),
+ 'should return hosts from applicationInstanceReportData1 fixtures': () =>
+ selectHosts(stateFactory(applicationInstanceReportData1)),
+ 'should return activeHostId from applicationInstanceReportData1 fixtures': () =>
+ selectActiveHostId(stateFactory(applicationInstanceReportData1)),
};
describe('ApplicationInstanceSelectors', () =>
diff --git a/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportReducer.test.js.snap b/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportReducer.test.js.snap
index 9e3335f3..fb434582 100644
--- a/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportReducer.test.js.snap
+++ b/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportReducer.test.js.snap
@@ -712,7 +712,6 @@ Object {
],
},
],
- "loading": true,
"name": false,
}
`;
diff --git a/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportSelectors.test.js.snap b/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportSelectors.test.js.snap
index 71b823b9..7b3065ba 100644
--- a/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportSelectors.test.js.snap
+++ b/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportSelectors.test.js.snap
@@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`ApplicationInstanceSelectors should return activeHostId from applicationInstanceReportData_1 fixtures 1`] = `undefined`;
+exports[`ApplicationInstanceSelectors should return activeHostId from applicationInstanceReportData1 fixtures 1`] = `undefined`;
-exports[`ApplicationInstanceSelectors should return hosts from applicationInstanceReportData_1 fixtures 1`] = `
+exports[`ApplicationInstanceSelectors should return hosts from applicationInstanceReportData1 fixtures 1`] = `
Array [
Object {
"build": false,
diff --git a/webpack/components/ApplicationInstanceReport/components/ReportViewer.js b/webpack/components/ApplicationInstanceReport/components/ReportViewer.js
index bfd33aff..83efcf6a 100644
--- a/webpack/components/ApplicationInstanceReport/components/ReportViewer.js
+++ b/webpack/components/ApplicationInstanceReport/components/ReportViewer.js
@@ -1,10 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
-const ReportViewer= ({
- hidden,
- report,
-}) =>{
+const ReportViewer = ({ hidden, report }) => {
if (hidden) {
return null;
}
@@ -14,7 +11,9 @@ const ReportViewer= ({
}
return report.map((task, id) => (
-
));
};
@@ -23,4 +22,9 @@ ReportViewer.propTypes = {
report: PropTypes.array,
};
+ReportViewer.defaultProps = {
+ hidden: false,
+ report: undefined,
+};
+
export default ReportViewer;
diff --git a/webpack/components/ApplicationInstanceReport/components/__tests__/ReportViewer.test.js b/webpack/components/ApplicationInstanceReport/components/__tests__/ReportViewer.test.js
index bebbf5f9..db51cf16 100644
--- a/webpack/components/ApplicationInstanceReport/components/__tests__/ReportViewer.test.js
+++ b/webpack/components/ApplicationInstanceReport/components/__tests__/ReportViewer.test.js
@@ -2,11 +2,9 @@ import { testComponentSnapshotsWithFixtures } from 'react-redux-test-utils';
import ReportViewer from '../ReportViewer';
-const noop = () => {};
-
const data = [
{ name: 'report 1', status: 'done' },
- { name: 'report 2', status: 'pending' }
+ { name: 'report 2', status: 'pending' },
];
const fixtures = {
diff --git a/webpack/components/ExistingHostSelection/ExistingHostSelection.js b/webpack/components/ExistingHostSelection/ExistingHostSelection.js
index d75e7954..2c7cf99f 100644
--- a/webpack/components/ExistingHostSelection/ExistingHostSelection.js
+++ b/webpack/components/ExistingHostSelection/ExistingHostSelection.js
@@ -1,41 +1,20 @@
import React from 'react';
import PropTypes from 'prop-types';
-import { orderBy } from 'lodash';
+import { cloneDeep } from 'lodash';
+import { DualListControlled } from 'patternfly-react';
+import { translate as __ } from 'foremanReact/common/I18n';
import ServiceSelector from './components/ServiceSelector';
import { arrayToObject } from '../../helper';
-import {
- cloneDeep,
-} from 'lodash';
-
-import {
- Icon,
- Button,
- DualListControlled,
-} from 'patternfly-react';
-
class ExistingHostSelection extends React.Component {
-
- constructor(props) {
- super(props);
- }
-
componentDidMount() {
- const {
- location,
- organization,
- services,
- initExistingHostSelection,
- allHosts,
- } = this.props;
+ const { allHosts, initExistingHostSelection } = this.props;
initExistingHostSelection(allHosts);
}
render() {
const {
- location,
- organization,
services,
serviceId,
availableHosts,
@@ -44,35 +23,39 @@ class ExistingHostSelection extends React.Component {
hostSelectionChanged,
} = this.props;
- const serviceList = arrayToObject(services, "id", "name");
- const load_hostgroup_url = "/api/v2/hostgroups/__hostgroup_id__/hosts"
+ const serviceList = arrayToObject(services, 'id', 'name');
+ const loadHostgroupUrl = '/api/v2/hostgroups/__hostgroup_id__/hosts';
- return(
+ return (
);
@@ -80,25 +63,21 @@ class ExistingHostSelection extends React.Component {
}
ExistingHostSelection.defaultProps = {
+ allHosts: [],
serviceId: undefined,
- hostsInHostgroup: {},
availableHosts: [],
alreadyUsedHosts: [],
- selectedHosts: [],
};
ExistingHostSelection.propTypes = {
- location: PropTypes.string.isRequired,
- organization: PropTypes.string.isRequired,
+ allHosts: PropTypes.array,
services: PropTypes.array.isRequired,
- initExistingHostSelection: PropTypes.func,
+ initExistingHostSelection: PropTypes.func.isRequired,
serviceId: PropTypes.number,
- hostsInHostgroup: PropTypes.object,
availableHosts: PropTypes.array,
alreadyUsedHosts: PropTypes.array,
- selectedHosts: PropTypes.array,
- loadHostsOfHostgroup: PropTypes.func,
- hostSelectionChanged: PropTypes.func,
+ loadHostsOfHostgroup: PropTypes.func.isRequired,
+ hostSelectionChanged: PropTypes.func.isRequired,
};
export default ExistingHostSelection;
diff --git a/webpack/components/ExistingHostSelection/ExistingHostSelectionActions.js b/webpack/components/ExistingHostSelection/ExistingHostSelectionActions.js
index 5ec273da..b3dea650 100644
--- a/webpack/components/ExistingHostSelection/ExistingHostSelectionActions.js
+++ b/webpack/components/ExistingHostSelection/ExistingHostSelectionActions.js
@@ -1,14 +1,7 @@
-import React from 'react';
-import * as sort from 'sortabular';
import { translate as __ } from 'foremanReact/common/I18n';
import api from 'foremanReact/API';
-import {
- propsToSnakeCase,
- propsToCamelCase,
-} from 'foremanReact/common/helpers';
-
import {
EXISTING_HOST_SELECTION_INIT,
EXISTING_HOST_SELECTION_LOAD_HOSTS_SUCCESS,
@@ -16,9 +9,7 @@ import {
EXISTING_HOST_SELECTION_SELECTION_CHANGED,
} from './ExistingHostSelectionConstants';
-export const initExistingHostSelection = (
- allHosts,
-) => dispatch => {
+export const initExistingHostSelection = allHosts => dispatch => {
const initialState = {};
initialState.alreadyUsedHosts = undefined;
@@ -31,35 +22,37 @@ export const initExistingHostSelection = (
type: EXISTING_HOST_SELECTION_INIT,
payload: initialState,
});
-}
+};
export const loadHostsOfHostgroup = (
serviceId,
additionalData
-) => dispatch => {
+) => async dispatch => {
+ const selService = additionalData.services.filter(s => s.id === serviceId)[0];
+ const realUrl = additionalData.url.replace(
+ '__hostgroup_id__',
+ selService.hostgroup
+ );
- const selService = additionalData.services.filter(s => (s.id == serviceId))[0];
- const realUrl = additionalData.url.replace("__hostgroup_id__", selService.hostgroup);
-
- return api
- .get(realUrl, {}, {})
- .then(({ data }) =>
- dispatch({
- type: EXISTING_HOST_SELECTION_LOAD_HOSTS_SUCCESS,
- payload: {
- hosts: data.results,
- serviceId: parseInt(serviceId),
- }
- })
- )
- .catch(error => dispatch(errorHandler(EXISTING_HOST_SELECTION_LOAD_HOSTS_FAILURE, error)));
+ try {
+ const { data } = await api.get(realUrl, {}, {});
+ dispatch({
+ type: EXISTING_HOST_SELECTION_LOAD_HOSTS_SUCCESS,
+ payload: {
+ hosts: data.results,
+ serviceId: parseInt(serviceId, 10),
+ },
+ });
+ } catch (error) {
+ dispatch(errorHandler(EXISTING_HOST_SELECTION_LOAD_HOSTS_FAILURE, error));
+ }
};
export const hostSelectionChanged = ({ left, right }) => ({
type: EXISTING_HOST_SELECTION_SELECTION_CHANGED,
payload: {
selection: right.items,
- }
+ },
});
const errorHandler = (msg, err) => {
diff --git a/webpack/components/ExistingHostSelection/ExistingHostSelectionConstants.js b/webpack/components/ExistingHostSelection/ExistingHostSelectionConstants.js
index 90050c4a..d2e43610 100644
--- a/webpack/components/ExistingHostSelection/ExistingHostSelectionConstants.js
+++ b/webpack/components/ExistingHostSelection/ExistingHostSelectionConstants.js
@@ -1,4 +1,7 @@
export const EXISTING_HOST_SELECTION_INIT = 'EXISTING_HOST_SELECTION_INIT';
-export const EXISTING_HOST_SELECTION_LOAD_HOSTS_SUCCESS = 'EXISTING_HOST_SELECTION_LOAD_HOSTS_SUCCESS';
-export const EXISTING_HOST_SELECTION_LOAD_HOSTS_FAILURE = 'EXISTING_HOST_SELECTION_LOAD_HOSTS_FAILURE';
-export const EXISTING_HOST_SELECTION_SELECTION_CHANGED = 'EXISTING_HOST_SELECTION_SELECTION_CHANGED';
+export const EXISTING_HOST_SELECTION_LOAD_HOSTS_SUCCESS =
+ 'EXISTING_HOST_SELECTION_LOAD_HOSTS_SUCCESS';
+export const EXISTING_HOST_SELECTION_LOAD_HOSTS_FAILURE =
+ 'EXISTING_HOST_SELECTION_LOAD_HOSTS_FAILURE';
+export const EXISTING_HOST_SELECTION_SELECTION_CHANGED =
+ 'EXISTING_HOST_SELECTION_SELECTION_CHANGED';
diff --git a/webpack/components/ExistingHostSelection/ExistingHostSelectionReducer.js b/webpack/components/ExistingHostSelection/ExistingHostSelectionReducer.js
index 61a41669..5bb86ab6 100644
--- a/webpack/components/ExistingHostSelection/ExistingHostSelectionReducer.js
+++ b/webpack/components/ExistingHostSelection/ExistingHostSelectionReducer.js
@@ -1,13 +1,7 @@
import Immutable from 'seamless-immutable';
-
-import {
- cloneDeep,
- findIndex,
- findLastIndex,
-} from 'lodash';
+import { translate as __ } from 'foremanReact/common/I18n';
import { shortHostname } from '../../helper';
-import * as sort from 'sortabular';
import {
EXISTING_HOST_SELECTION_INIT,
@@ -29,10 +23,13 @@ const existingHostSelectionConf = (state = initialState, action) => {
return state.merge(payload);
}
case EXISTING_HOST_SELECTION_LOAD_HOSTS_SUCCESS: {
- let alreadyUsedHosts = [];
+ const alreadyUsedHosts = [];
state.allHosts.forEach(host => {
- if ((host.service == payload.serviceId) && (host.isExistingHost == true)) {
+ if (
+ host.service === payload.serviceId &&
+ host.isExistingHost === true
+ ) {
alreadyUsedHosts.push({
value: host.hostname,
label: host.hostname,
@@ -42,11 +39,11 @@ const existingHostSelectionConf = (state = initialState, action) => {
}
});
- let availableHosts = [];
- let hostsInHostgroup = {};
+ const availableHosts = [];
+ const hostsInHostgroup = {};
payload.hosts.forEach(host => {
- let shortName = shortHostname(host.name);
- if (state.allHosts.find(h => h.hostname == shortName) == undefined) {
+ const shortName = shortHostname(host.name);
+ if (state.allHosts.find(h => h.hostname === shortName) === undefined) {
availableHosts.push({
value: shortName,
label: shortName,
@@ -56,9 +53,9 @@ const existingHostSelectionConf = (state = initialState, action) => {
});
return state.merge({
- hostsInHostgroup: hostsInHostgroup,
- availableHosts: availableHosts,
- alreadyUsedHosts: alreadyUsedHosts,
+ hostsInHostgroup,
+ availableHosts,
+ alreadyUsedHosts,
serviceId: payload.serviceId,
});
}
@@ -66,10 +63,10 @@ const existingHostSelectionConf = (state = initialState, action) => {
return state.merge({ error: payload.error });
}
case EXISTING_HOST_SELECTION_SELECTION_CHANGED: {
- let selectedHosts = [];
+ const selectedHosts = [];
payload.selection.forEach(selHost => {
- let hostData = state.hostsInHostgroup[selHost.value];
+ const hostData = state.hostsInHostgroup[selHost.value];
selectedHosts.push({
fqdn: hostData.name,
hostname: shortHostname(hostData.name),
@@ -79,7 +76,7 @@ const existingHostSelectionConf = (state = initialState, action) => {
});
return state.merge({
- selectedHosts: selectedHosts,
+ selectedHosts,
});
}
default:
diff --git a/webpack/components/ExistingHostSelection/ExistingHostSelectionSelectors.js b/webpack/components/ExistingHostSelection/ExistingHostSelectionSelectors.js
index 53536be1..fd227632 100644
--- a/webpack/components/ExistingHostSelection/ExistingHostSelectionSelectors.js
+++ b/webpack/components/ExistingHostSelection/ExistingHostSelectionSelectors.js
@@ -2,7 +2,11 @@ const existingHostState = state => state.foremanAcd.existingHostSelectionConf;
export const selectServiceId = state => existingHostState(state).serviceId;
export const selectAllHosts = state => existingHostState(state).allHosts;
-export const selectHostsInHostgroup = state => existingHostState(state).selectHostsInHostgroup;
-export const selectAvailableHosts = state => existingHostState(state).availableHosts;
-export const selectAlreadyUsedHosts = state => existingHostState(state).alreadyUsedHosts;
-export const selectSelectedHosts = state => existingHostState(state).selectedHosts;
+export const selectHostsInHostgroup = state =>
+ existingHostState(state).selectHostsInHostgroup;
+export const selectAvailableHosts = state =>
+ existingHostState(state).availableHosts;
+export const selectAlreadyUsedHosts = state =>
+ existingHostState(state).alreadyUsedHosts;
+export const selectSelectedHosts = state =>
+ existingHostState(state).selectedHosts;
diff --git a/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionConfData1.fixtures.js b/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionConfData1.fixtures.js
new file mode 100644
index 00000000..e895a4cd
--- /dev/null
+++ b/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionConfData1.fixtures.js
@@ -0,0 +1,187 @@
+export const existingHostSelectionConfData1 = {
+ serviceId: 2,
+ error: {
+ errorMsg: '',
+ status: '',
+ statusText: '',
+ },
+ allHosts: [
+ {
+ id: 5,
+ hostname: 'isaac-anselm',
+ service: '1',
+ description: '',
+ foremanParameters: [],
+ ansibleParameters: [],
+ },
+ ],
+ alreadyUsedHosts: [
+ {
+ value: 'isaac-anselm',
+ label: 'isaac-anselm',
+ disabled: true,
+ tooltipText: 'Host already used for this application instance',
+ },
+ ],
+ selectedHosts: [],
+ hostsInHostgroup: {
+ '3': {
+ ip: null,
+ ip6: '',
+ environment_id: null,
+ environment_name: null,
+ last_report: null,
+ mac: '00:11:22:33:44:a1',
+ realm_id: null,
+ realm_name: null,
+ sp_mac: null,
+ sp_ip: null,
+ sp_name: null,
+ domain_id: 1,
+ domain_name: 'mylocal',
+ architecture_id: 1,
+ architecture_name: 'x86_64',
+ operatingsystem_id: 1,
+ operatingsystem_name: 'centos 7',
+ subnet_id: 1,
+ subnet_name: 'mylocal',
+ subnet6_id: null,
+ subnet6_name: null,
+ sp_subnet_id: null,
+ ptable_id: 118,
+ ptable_name: 'Kickstart default',
+ medium_id: 1,
+ medium_name: 'CentOS 7 mirror',
+ pxe_loader: 'PXELinux BIOS',
+ build: true,
+ comment: '',
+ disk: '',
+ installed_at: null,
+ model_id: null,
+ hostgroup_id: 1,
+ owner_id: 4,
+ owner_name: 'Admin User',
+ owner_type: 'User',
+ enabled: true,
+ managed: true,
+ use_image: null,
+ image_file: '',
+ uuid: null,
+ compute_resource_id: null,
+ compute_resource_name: null,
+ compute_profile_id: null,
+ compute_profile_name: null,
+ capabilities: ['build'],
+ provision_method: 'build',
+ certname: 'isaac-anselm.mylocal',
+ image_id: null,
+ image_name: null,
+ created_at: '2021-08-05 11:16:34 +0200',
+ updated_at: '2021-08-05 11:16:34 +0200',
+ last_compile: null,
+ global_status: 0,
+ global_status_label: 'Error',
+ uptime_seconds: null,
+ organization_id: 1,
+ organization_name: 'Default Organization',
+ location_id: 2,
+ location_name: 'Default Location',
+ puppet_status: 0,
+ model_name: null,
+ build_status: 2,
+ build_status_label: 'Token expired',
+ name: 'isaac-anselm.mylocal',
+ id: 3,
+ puppet_proxy_id: null,
+ puppet_proxy_name: null,
+ puppet_ca_proxy_id: null,
+ puppet_ca_proxy_name: null,
+ puppet_proxy: null,
+ puppet_ca_proxy: null,
+ hostgroup_name: 'base',
+ hostgroup_title: 'base',
+ },
+ '7': {
+ ip: null,
+ ip6: null,
+ environment_id: null,
+ environment_name: null,
+ last_report: null,
+ mac: '00:11:22:33:60:15',
+ realm_id: null,
+ realm_name: null,
+ sp_mac: null,
+ sp_ip: null,
+ sp_name: null,
+ domain_id: 1,
+ domain_name: 'mylocal',
+ architecture_id: 1,
+ architecture_name: 'x86_64',
+ operatingsystem_id: 1,
+ operatingsystem_name: 'centos 7',
+ subnet_id: 1,
+ subnet_name: 'mylocal',
+ subnet6_id: null,
+ subnet6_name: null,
+ sp_subnet_id: null,
+ ptable_id: 118,
+ ptable_name: 'Kickstart default',
+ medium_id: 1,
+ medium_name: 'CentOS 7 mirror',
+ pxe_loader: 'PXELinux BIOS',
+ build: true,
+ comment: null,
+ disk: null,
+ installed_at: null,
+ model_id: null,
+ hostgroup_id: 1,
+ owner_id: 4,
+ owner_name: 'Admin User',
+ owner_type: 'User',
+ enabled: true,
+ managed: true,
+ use_image: null,
+ image_file: '',
+ uuid: null,
+ compute_resource_id: null,
+ compute_resource_name: null,
+ compute_profile_id: null,
+ compute_profile_name: null,
+ capabilities: ['build'],
+ provision_method: 'build',
+ certname: 'lllllll.mylocal',
+ image_id: null,
+ image_name: null,
+ created_at: '2021-08-19 14:00:20 +0200',
+ updated_at: '2021-08-19 14:00:20 +0200',
+ last_compile: null,
+ global_status: 0,
+ global_status_label: 'Error',
+ uptime_seconds: null,
+ organization_id: 1,
+ organization_name: 'Default Organization',
+ location_id: 2,
+ location_name: 'Default Location',
+ puppet_status: 0,
+ model_name: null,
+ build_status: 2,
+ build_status_label: 'Token expired',
+ name: 'lllllll.mylocal',
+ id: 7,
+ puppet_proxy_id: null,
+ puppet_proxy_name: null,
+ puppet_ca_proxy_id: null,
+ puppet_ca_proxy_name: null,
+ puppet_proxy: null,
+ puppet_ca_proxy: null,
+ hostgroup_name: 'base',
+ hostgroup_title: 'base',
+ },
+ },
+ availableHosts: [
+ {
+ value: 'lllllll',
+ label: 'lllllll',
+ },
+ ],
+};
diff --git a/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionConfData_1.fixtures.js b/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionConfData_1.fixtures.js
deleted file mode 100644
index de4fd979..00000000
--- a/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionConfData_1.fixtures.js
+++ /dev/null
@@ -1,191 +0,0 @@
-export const existingHostSelectionConfData_1 = {
- serviceId: 2,
- error: {
- errorMsg: '',
- status: '',
- statusText: ''
- },
- allHosts: [
- {
- id: 5,
- hostname: 'isaac-anselm',
- service: '1',
- description: '',
- foremanParameters: [],
- ansibleParameters: [],
- }
- ],
- alreadyUsedHosts: [
- {
- value: 'isaac-anselm',
- label: 'isaac-anselm',
- disabled: true,
- tooltipText: 'Host already used for this application instance'
- }
- ],
- selectedHosts: [],
- hostsInHostgroup: {
- '3': {
- ip: null,
- ip6: '',
- environment_id: null,
- environment_name: null,
- last_report: null,
- mac: '00:11:22:33:44:a1',
- realm_id: null,
- realm_name: null,
- sp_mac: null,
- sp_ip: null,
- sp_name: null,
- domain_id: 1,
- domain_name: 'mylocal',
- architecture_id: 1,
- architecture_name: 'x86_64',
- operatingsystem_id: 1,
- operatingsystem_name: 'centos 7',
- subnet_id: 1,
- subnet_name: 'mylocal',
- subnet6_id: null,
- subnet6_name: null,
- sp_subnet_id: null,
- ptable_id: 118,
- ptable_name: 'Kickstart default',
- medium_id: 1,
- medium_name: 'CentOS 7 mirror',
- pxe_loader: 'PXELinux BIOS',
- build: true,
- comment: '',
- disk: '',
- installed_at: null,
- model_id: null,
- hostgroup_id: 1,
- owner_id: 4,
- owner_name: 'Admin User',
- owner_type: 'User',
- enabled: true,
- managed: true,
- use_image: null,
- image_file: '',
- uuid: null,
- compute_resource_id: null,
- compute_resource_name: null,
- compute_profile_id: null,
- compute_profile_name: null,
- capabilities: [
- 'build'
- ],
- provision_method: 'build',
- certname: 'isaac-anselm.mylocal',
- image_id: null,
- image_name: null,
- created_at: '2021-08-05 11:16:34 +0200',
- updated_at: '2021-08-05 11:16:34 +0200',
- last_compile: null,
- global_status: 0,
- global_status_label: 'Error',
- uptime_seconds: null,
- organization_id: 1,
- organization_name: 'Default Organization',
- location_id: 2,
- location_name: 'Default Location',
- puppet_status: 0,
- model_name: null,
- build_status: 2,
- build_status_label: 'Token expired',
- name: 'isaac-anselm.mylocal',
- id: 3,
- puppet_proxy_id: null,
- puppet_proxy_name: null,
- puppet_ca_proxy_id: null,
- puppet_ca_proxy_name: null,
- puppet_proxy: null,
- puppet_ca_proxy: null,
- hostgroup_name: 'base',
- hostgroup_title: 'base'
- },
- '7': {
- ip: null,
- ip6: null,
- environment_id: null,
- environment_name: null,
- last_report: null,
- mac: '00:11:22:33:60:15',
- realm_id: null,
- realm_name: null,
- sp_mac: null,
- sp_ip: null,
- sp_name: null,
- domain_id: 1,
- domain_name: 'mylocal',
- architecture_id: 1,
- architecture_name: 'x86_64',
- operatingsystem_id: 1,
- operatingsystem_name: 'centos 7',
- subnet_id: 1,
- subnet_name: 'mylocal',
- subnet6_id: null,
- subnet6_name: null,
- sp_subnet_id: null,
- ptable_id: 118,
- ptable_name: 'Kickstart default',
- medium_id: 1,
- medium_name: 'CentOS 7 mirror',
- pxe_loader: 'PXELinux BIOS',
- build: true,
- comment: null,
- disk: null,
- installed_at: null,
- model_id: null,
- hostgroup_id: 1,
- owner_id: 4,
- owner_name: 'Admin User',
- owner_type: 'User',
- enabled: true,
- managed: true,
- use_image: null,
- image_file: '',
- uuid: null,
- compute_resource_id: null,
- compute_resource_name: null,
- compute_profile_id: null,
- compute_profile_name: null,
- capabilities: [
- 'build'
- ],
- provision_method: 'build',
- certname: 'lllllll.mylocal',
- image_id: null,
- image_name: null,
- created_at: '2021-08-19 14:00:20 +0200',
- updated_at: '2021-08-19 14:00:20 +0200',
- last_compile: null,
- global_status: 0,
- global_status_label: 'Error',
- uptime_seconds: null,
- organization_id: 1,
- organization_name: 'Default Organization',
- location_id: 2,
- location_name: 'Default Location',
- puppet_status: 0,
- model_name: null,
- build_status: 2,
- build_status_label: 'Token expired',
- name: 'lllllll.mylocal',
- id: 7,
- puppet_proxy_id: null,
- puppet_proxy_name: null,
- puppet_ca_proxy_id: null,
- puppet_ca_proxy_name: null,
- puppet_proxy: null,
- puppet_ca_proxy: null,
- hostgroup_name: 'base',
- hostgroup_title: 'base'
- }
- },
- availableHosts: [
- {
- value: 'lllllll',
- label: 'lllllll'
- }
- ]
-}
diff --git a/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionReducer.fixtures.js b/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionReducer.fixtures.js
index a7a0ec45..eeb1cbdc 100644
--- a/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionReducer.fixtures.js
+++ b/webpack/components/ExistingHostSelection/__fixtures__/existingHostSelectionReducer.fixtures.js
@@ -1,15 +1,8 @@
import Immutable from 'seamless-immutable';
-import {
- cloneDeep,
- findIndex,
- findLastIndex,
-} from 'lodash';
-import {
- existingHostSelectionConfData_1,
-} from '../__fixtures__/existingHostSelectionConfData_1.fixtures';
+import { existingHostSelectionConfData1 } from '../__fixtures__/existingHostSelectionConfData1.fixtures';
-export const successState = Immutable(existingHostSelectionConfData_1);
+export const successState = Immutable(existingHostSelectionConfData1);
export const initExistingHostSelectionPayload = {
payload: {
@@ -19,12 +12,12 @@ export const initExistingHostSelectionPayload = {
value: 5,
label: 'isaac-anselm',
disabled: true,
- tooltipText: 'Host already used for this application instance'
- }
+ tooltipText: 'Host already used for this application instance',
+ },
],
selectedHosts: [],
hostsInHostgroup: {},
- }
+ },
};
export const existingHostSelectionSelectionChangedPayload = {
@@ -33,7 +26,7 @@ export const existingHostSelectionSelectionChangedPayload = {
label: 'isaar-anselm',
value: 3,
},
- ]
+ ],
};
export const loadExistingHostSelectionSuccessPayload = {
@@ -84,9 +77,7 @@ export const loadExistingHostSelectionSuccessPayload = {
compute_resource_name: null,
compute_profile_id: null,
compute_profile_name: null,
- capabilities: [
- 'build'
- ],
+ capabilities: ['build'],
provision_method: 'build',
certname: 'isaac-anselm.mylocal',
image_id: null,
@@ -114,7 +105,7 @@ export const loadExistingHostSelectionSuccessPayload = {
puppet_proxy: null,
puppet_ca_proxy: null,
hostgroup_name: 'base',
- hostgroup_title: 'base'
+ hostgroup_title: 'base',
},
{
ip: null,
@@ -162,9 +153,7 @@ export const loadExistingHostSelectionSuccessPayload = {
compute_resource_name: null,
compute_profile_id: null,
compute_profile_name: null,
- capabilities: [
- 'build'
- ],
+ capabilities: ['build'],
provision_method: 'build',
certname: 'lllllll.mylocal',
image_id: null,
@@ -192,12 +181,12 @@ export const loadExistingHostSelectionSuccessPayload = {
puppet_proxy: null,
puppet_ca_proxy: null,
hostgroup_name: 'base',
- hostgroup_title: 'base'
- }
+ hostgroup_title: 'base',
+ },
],
- serviceId: 1
+ serviceId: 1,
};
export const loadExistingHostSelectionFailurePayload = {
- error: "Something really bad happend",
+ error: 'Something really bad happend',
};
diff --git a/webpack/components/ExistingHostSelection/__tests__/ExistingHostSelection.test.js b/webpack/components/ExistingHostSelection/__tests__/ExistingHostSelection.test.js
index 1b2443e5..2db4e1f0 100644
--- a/webpack/components/ExistingHostSelection/__tests__/ExistingHostSelection.test.js
+++ b/webpack/components/ExistingHostSelection/__tests__/ExistingHostSelection.test.js
@@ -6,12 +6,13 @@ const noop = () => {};
const fixtures = {
'should render existing host selection': {
- location: "Default Location",
- organization: "Default Organization",
+ location: 'Default Location',
+ organization: 'Default Organization',
services: [],
allHosts: [],
initExistingHostSelection: noop,
loadHostsOfHostgroup: noop,
+ hostSelectionChanged: noop,
},
};
diff --git a/webpack/components/ExistingHostSelection/__tests__/ExistingHostSelectionSelectors.test.js b/webpack/components/ExistingHostSelection/__tests__/ExistingHostSelectionSelectors.test.js
index 0fbbcef1..dd0b04a4 100644
--- a/webpack/components/ExistingHostSelection/__tests__/ExistingHostSelectionSelectors.test.js
+++ b/webpack/components/ExistingHostSelection/__tests__/ExistingHostSelectionSelectors.test.js
@@ -8,9 +8,7 @@ import {
selectHostsInHostgroup,
} from '../ExistingHostSelectionSelectors';
-import {
- existingHostSelectionConfData_1,
-} from '../__fixtures__/existingHostSelectionConfData_1.fixtures';
+import { existingHostSelectionConfData1 } from '../__fixtures__/existingHostSelectionConfData1.fixtures';
const stateFactory = obj => ({
foremanAcd: {
@@ -19,18 +17,17 @@ const stateFactory = obj => ({
});
const fixtures = {
- 'should return serviceId from existingHostSelectionConfData_1 fixtures': () =>
- selectServiceId(stateFactory(existingHostSelectionConfData_1)),
- 'should return availableHosts from existingHostSelectionConfData_1 fixtures': () =>
- selectAvailableHosts(stateFactory(existingHostSelectionConfData_1)),
- 'should return alreadyUsedHosts from existingHostSelectionConfData_1 fixtures': () =>
- selectAlreadyUsedHosts(stateFactory(existingHostSelectionConfData_1)),
- 'should return selectedHosts from existingHostSelectionConfData_1 fixtures': () =>
- selectSelectedHosts(stateFactory(existingHostSelectionConfData_1)),
- 'should return hostsInHostgroup from existingHostSelectionConfData_1 fixtures': () =>
- selectHostsInHostgroup(stateFactory(existingHostSelectionConfData_1)),
+ 'should return serviceId from existingHostSelectionConfData1 fixtures': () =>
+ selectServiceId(stateFactory(existingHostSelectionConfData1)),
+ 'should return availableHosts from existingHostSelectionConfData1 fixtures': () =>
+ selectAvailableHosts(stateFactory(existingHostSelectionConfData1)),
+ 'should return alreadyUsedHosts from existingHostSelectionConfData1 fixtures': () =>
+ selectAlreadyUsedHosts(stateFactory(existingHostSelectionConfData1)),
+ 'should return selectedHosts from existingHostSelectionConfData1 fixtures': () =>
+ selectSelectedHosts(stateFactory(existingHostSelectionConfData1)),
+ 'should return hostsInHostgroup from existingHostSelectionConfData1 fixtures': () =>
+ selectHostsInHostgroup(stateFactory(existingHostSelectionConfData1)),
};
describe('ExistingHostSelectionSelectors', () =>
testSelectorsSnapshotWithFixtures(fixtures));
-
diff --git a/webpack/components/ExistingHostSelection/__tests__/__snapshots__/ExistingHostSelectionSelectors.test.js.snap b/webpack/components/ExistingHostSelection/__tests__/__snapshots__/ExistingHostSelectionSelectors.test.js.snap
index 83ed10c7..79e8227f 100644
--- a/webpack/components/ExistingHostSelection/__tests__/__snapshots__/ExistingHostSelectionSelectors.test.js.snap
+++ b/webpack/components/ExistingHostSelection/__tests__/__snapshots__/ExistingHostSelectionSelectors.test.js.snap
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`ExistingHostSelectionSelectors should return alreadyUsedHosts from existingHostSelectionConfData_1 fixtures 1`] = `
+exports[`ExistingHostSelectionSelectors should return alreadyUsedHosts from existingHostSelectionConfData1 fixtures 1`] = `
Array [
Object {
"disabled": true,
@@ -11,7 +11,7 @@ Array [
]
`;
-exports[`ExistingHostSelectionSelectors should return availableHosts from existingHostSelectionConfData_1 fixtures 1`] = `
+exports[`ExistingHostSelectionSelectors should return availableHosts from existingHostSelectionConfData1 fixtures 1`] = `
Array [
Object {
"label": "lllllll",
@@ -20,8 +20,8 @@ Array [
]
`;
-exports[`ExistingHostSelectionSelectors should return hostsInHostgroup from existingHostSelectionConfData_1 fixtures 1`] = `undefined`;
+exports[`ExistingHostSelectionSelectors should return hostsInHostgroup from existingHostSelectionConfData1 fixtures 1`] = `undefined`;
-exports[`ExistingHostSelectionSelectors should return selectedHosts from existingHostSelectionConfData_1 fixtures 1`] = `Array []`;
+exports[`ExistingHostSelectionSelectors should return selectedHosts from existingHostSelectionConfData1 fixtures 1`] = `Array []`;
-exports[`ExistingHostSelectionSelectors should return serviceId from existingHostSelectionConfData_1 fixtures 1`] = `2`;
+exports[`ExistingHostSelectionSelectors should return serviceId from existingHostSelectionConfData1 fixtures 1`] = `2`;
diff --git a/webpack/components/ExistingHostSelection/components/ServiceSelector.js b/webpack/components/ExistingHostSelection/components/ServiceSelector.js
index 658cbaf4..229c7394 100644
--- a/webpack/components/ExistingHostSelection/components/ServiceSelector.js
+++ b/webpack/components/ExistingHostSelection/components/ServiceSelector.js
@@ -1,9 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import ExtSelect from '../../common/ExtSelect';
-import RailsData from '../../common/RailsData'
+import RailsData from '../../common/RailsData';
-const ServiceSelector= ({
+const ServiceSelector = ({
label,
hidden,
viewText,
@@ -11,32 +11,31 @@ const ServiceSelector= ({
onChange,
options,
additionalData,
-}) =>{
- return (
-
-
-
-
-
-
+}) => (
+
+
+
+
+
- );
-};
+
+);
ServiceSelector.propTypes = {
+ hidden: PropTypes.bool.isRequired,
label: PropTypes.string.isRequired,
viewText: PropTypes.string,
selectValue: PropTypes.string,
@@ -45,4 +44,11 @@ ServiceSelector.propTypes = {
additionalData: PropTypes.object,
};
+ServiceSelector.defaultProps = {
+ additionalData: {},
+ options: {},
+ selectValue: '',
+ viewText: undefined,
+};
+
export default ServiceSelector;
diff --git a/webpack/components/ExistingHostSelection/components/__tests__/ServiceSelector.test.js b/webpack/components/ExistingHostSelection/components/__tests__/ServiceSelector.test.js
index a814bb21..55d0af33 100644
--- a/webpack/components/ExistingHostSelection/components/__tests__/ServiceSelector.test.js
+++ b/webpack/components/ExistingHostSelection/components/__tests__/ServiceSelector.test.js
@@ -4,11 +4,6 @@ import ServiceSelector from '../ServiceSelector';
const noop = () => {};
-const data = [
- { name: 'report 1', status: 'done' },
- { name: 'report 2', status: 'pending' }
-];
-
const fixtures = {
'should render the service selector': {
hidden: false,
@@ -16,7 +11,7 @@ const fixtures = {
viewText: 'view service',
selectValue: '1',
onChange: noop,
- options: { first: 'first', second: 'second'},
+ options: { first: 'first', second: 'second' },
additionalData: { moreData: 'moooore' },
},
'should render the hidden service selector': {
@@ -25,11 +20,10 @@ const fixtures = {
viewText: 'view service',
selectValue: '1',
onChange: noop,
- options: { first: 'first', second: 'second'},
- additionalData: { },
+ options: { first: 'first', second: 'second' },
+ additionalData: {},
},
};
describe('ServiceSelector', () =>
testComponentSnapshotsWithFixtures(ServiceSelector, fixtures));
-
diff --git a/webpack/components/ParameterSelection/ParameterSelection.js b/webpack/components/ParameterSelection/ParameterSelection.js
index 2eb9792f..9808740f 100644
--- a/webpack/components/ParameterSelection/ParameterSelection.js
+++ b/webpack/components/ParameterSelection/ParameterSelection.js
@@ -1,85 +1,68 @@
-import $ from 'jquery';
import React from 'react';
import PropTypes from 'prop-types';
import * as sort from 'sortabular';
-import { orderBy } from 'lodash';
+import { orderBy, findIndex, cloneDeep } from 'lodash';
import * as resolve from 'table-resolver';
+import {
+ Button,
+ Table,
+ FormControl,
+ InputGroup,
+ customHeaderFormattersDefinition,
+ inlineEditFormatterFactory,
+} from 'patternfly-react';
+
import Select from 'foremanReact/components/common/forms/Select';
+import { translate as __ } from 'foremanReact/common/I18n';
+import ForemanModal from 'foremanReact/components/ForemanModal';
+
import AddTableEntry from '../common/AddTableEntry';
import EditTableEntry from '../common/EditTableEntry';
import DeleteTableEntry from '../common/DeleteTableEntry';
import LockTableEntry from '../common/LockTableEntry';
-import ForemanModal from 'foremanReact/components/ForemanModal';
import * as YamlValidator from '../../js-yaml';
-import {
- transformForemanData,
-} from './ParameterSelectionHelper';
-
-import {
- dropRight,
- findIndex,
- cloneDeep,
-} from 'lodash';
+import { transformForemanData } from './ParameterSelectionHelper';
import {
PARAMETER_SELECTION_TYPES,
PARAMETER_SELECTION_PARAM_TYPE_FOREMAN,
- PARAMETER_SELECTION_PARAM_TYPE_ANSIBLE,
} from './ParameterSelectionConstants';
-import {
- Icon,
- Button,
- Table,
- FormControl,
- InputGroup,
- defaultSortingOrder,
- customHeaderFormattersDefinition,
- inlineEditFormatterFactory,
-} from 'patternfly-react';
-
-const theme = {
- scheme: 'foreman',
- backgroundColor: 'rgba(0, 0, 0, 255)',
- base00: 'rgba(0, 0, 0, 0)',
-};
-
class ParameterSelection extends React.Component {
-
constructor(props) {
super(props);
- this.state = {textValue: ''};
+ this.state = { textValue: '' };
}
handleChange = event => {
- this.setState({textValue: event.target.value});
+ this.setState({ textValue: event.target.value });
};
- isEditing({rowData}) {
- return (rowData.backup !== undefined);
+ static isEditing({ rowData }) {
+ return rowData.backup !== undefined;
}
yamlValidator() {
let result = true;
- let msg = "";
+ let msg = '';
try {
- const doc = YamlValidator.load(this.state.textValue);
+ YamlValidator.load(this.state.textValue);
} catch (e) {
result = false;
- msg = "Invalid Yaml: " + e.name + ": " + e.message;
+ msg = `Invalid Yaml: ${e.name}: ${e.message}`;
}
return {
validateResult: result,
- validateMsg: msg
- }
+ validateMsg: msg,
+ };
}
yamlValue() {
- if (this.props.editParamsRowIndex != undefined) {
- let id = this.props.editParamsRowIndex;
- if (this.props.parameters[id] != undefined) {
- return this.props.parameters[id]['value'];
+ if (this.props.editParamsRowIndex !== undefined) {
+ const id = this.props.editParamsRowIndex;
+ if (this.props.parameters[id] !== undefined) {
+ return this.props.parameters[id].value;
}
}
return '';
@@ -90,9 +73,14 @@ class ParameterSelection extends React.Component {
componentDidMount() {
const {
- data: { useDefaultValue, allowRowAdjustment, allowNameAdjustment, allowDescriptionAdjustment, parameters, paramDefinition },
- location,
- organization,
+ data: {
+ useDefaultValue,
+ allowRowAdjustment,
+ allowNameAdjustment,
+ allowDescriptionAdjustment,
+ parameters,
+ paramDefinition,
+ },
paramType,
paramDataUrl,
hiddenParameterTypes,
@@ -103,17 +91,21 @@ class ParameterSelection extends React.Component {
activateEditParameter,
changeEditParameter,
openParameterSelectionDialogBox,
- closeParameterSelectionDialogBox,
loadParamData,
} = this.props;
if (paramDataUrl !== undefined) {
switch (paramType) {
case PARAMETER_SELECTION_PARAM_TYPE_FOREMAN: {
- loadParamData({ paramDefinition: paramDefinition, url: paramDataUrl, dataType: paramType, clearParameters: false });
+ loadParamData({
+ paramDefinition,
+ url: paramDataUrl,
+ dataType: paramType,
+ clearParameters: false,
+ });
break;
}
- default: { }
+ default:
}
}
@@ -146,26 +138,28 @@ class ParameterSelection extends React.Component {
renderEdit: (value, additionalData) => (
activateEditParameter(additionalData)}
additionalData={additionalData}
/>
|
- )
+ ),
});
this.inlineEditButtonsFormatter = inlineEditButtonsFormatter;
@@ -173,7 +167,8 @@ class ParameterSelection extends React.Component {
const sortableTransform = sort.sort({
getSortingColumns,
- onSort: (selectedColumn, defaultSortingOrder) => sortParameter(selectedColumn, defaultSortingOrder),
+ onSort: (selectedColumn, defaultSortingOrder) =>
+ sortParameter(selectedColumn, defaultSortingOrder),
strategy: sort.strategies.byProperty,
});
this.sortableTransform = sortableTransform;
@@ -191,36 +186,39 @@ class ParameterSelection extends React.Component {
{value}
),
- renderEditText: (value, additionalData, subtype='text') => (
+ renderEditText: (value, additionalData, subtype = 'text') => (
changeEditParameter(e.target.value, additionalData) }
+ onBlur={e => changeEditParameter(e.target.value, additionalData)}
/>
|
),
- renderEditComplexText: (value, additionalData, subtype='text') => (
+ renderEditComplexText: (value, additionalData, subtype = 'text') => (
-
- changeEditParameter(e.target.value, additionalData) }
- readOnly={additionalData.rowData.isYaml}
- placeholder={'Press YAML button for Yaml Data'}
- />
-
-
-
-
+
+ changeEditParameter(e.target.value, additionalData)}
+ readOnly={additionalData.rowData.isYaml}
+ placeholder="Press YAML button for Yaml Data"
+ />
+
+
+
+
|
),
renderEditSelect: (value, additionalData, options) => (
|