mirror of
https://github.com/ansible/awx.git
synced 2026-02-27 07:56:06 -03:30
Fixes bug where page would crash on preview step if extra vars was malformed
This commit is contained in:
@@ -6,10 +6,10 @@ import { Formik, useFormikContext } from 'formik';
|
|||||||
import ContentError from '../ContentError';
|
import ContentError from '../ContentError';
|
||||||
import ContentLoading from '../ContentLoading';
|
import ContentLoading from '../ContentLoading';
|
||||||
import { useDismissableError } from '../../util/useRequest';
|
import { useDismissableError } from '../../util/useRequest';
|
||||||
import mergeExtraVars from './mergeExtraVars';
|
import mergeExtraVars from '../../util/prompt/mergeExtraVars';
|
||||||
|
import getSurveyValues from '../../util/prompt/getSurveyValues';
|
||||||
import useLaunchSteps from './useLaunchSteps';
|
import useLaunchSteps from './useLaunchSteps';
|
||||||
import AlertModal from '../AlertModal';
|
import AlertModal from '../AlertModal';
|
||||||
import getSurveyValues from './getSurveyValues';
|
|
||||||
|
|
||||||
function PromptModalForm({
|
function PromptModalForm({
|
||||||
launchConfig,
|
launchConfig,
|
||||||
|
|||||||
@@ -6,9 +6,10 @@ import { t } from '@lingui/macro';
|
|||||||
import { useFormikContext } from 'formik';
|
import { useFormikContext } from 'formik';
|
||||||
import { withI18n } from '@lingui/react';
|
import { withI18n } from '@lingui/react';
|
||||||
import yaml from 'js-yaml';
|
import yaml from 'js-yaml';
|
||||||
import { parseVariableField } from '../../../util/yaml';
|
import mergeExtraVars, {
|
||||||
import mergeExtraVars, { maskPasswords } from '../mergeExtraVars';
|
maskPasswords,
|
||||||
import getSurveyValues from '../getSurveyValues';
|
} from '../../../util/prompt/mergeExtraVars';
|
||||||
|
import getSurveyValues from '../../../util/prompt/getSurveyValues';
|
||||||
import PromptDetail from '../../PromptDetail';
|
import PromptDetail from '../../PromptDetail';
|
||||||
|
|
||||||
const ExclamationCircleIcon = styled(PFExclamationCircleIcon)`
|
const ExclamationCircleIcon = styled(PFExclamationCircleIcon)`
|
||||||
@@ -54,9 +55,6 @@ function PreviewStep({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
values.extra_data =
|
|
||||||
overrides.extra_vars && parseVariableField(overrides?.extra_vars);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
{formErrors && (
|
{formErrors && (
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { useHistory } from 'react-router-dom';
|
|||||||
import { withI18n } from '@lingui/react';
|
import { withI18n } from '@lingui/react';
|
||||||
import { t } from '@lingui/macro';
|
import { t } from '@lingui/macro';
|
||||||
import { Formik, useFormikContext } from 'formik';
|
import { Formik, useFormikContext } from 'formik';
|
||||||
|
import yaml from 'js-yaml';
|
||||||
import { bool, node, func } from 'prop-types';
|
import { bool, node, func } from 'prop-types';
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@@ -18,6 +18,9 @@ import ContentLoading from '../../../../../components/ContentLoading';
|
|||||||
import useRequest, {
|
import useRequest, {
|
||||||
useDismissableError,
|
useDismissableError,
|
||||||
} from '../../../../../util/useRequest';
|
} from '../../../../../util/useRequest';
|
||||||
|
import mergeExtraVars from '../../../../../util/prompt/mergeExtraVars';
|
||||||
|
import getSurveyValues from '../../../../../util/prompt/getSurveyValues';
|
||||||
|
import { parseVariableField } from '../../../../../util/yaml';
|
||||||
import {
|
import {
|
||||||
WorkflowDispatchContext,
|
WorkflowDispatchContext,
|
||||||
WorkflowStateContext,
|
WorkflowStateContext,
|
||||||
@@ -76,6 +79,25 @@ function NodeModalForm({
|
|||||||
delete values.timeoutMinutes;
|
delete values.timeoutMinutes;
|
||||||
delete values.timeoutSeconds;
|
delete values.timeoutSeconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
['job_template', 'workflow_job_template'].includes(values.nodeType) &&
|
||||||
|
(launchConfig.ask_variables_on_launch || launchConfig.survey_enabled)
|
||||||
|
) {
|
||||||
|
let extraVars;
|
||||||
|
const surveyValues = getSurveyValues(values);
|
||||||
|
const initialExtraVars =
|
||||||
|
launchConfig.ask_variables_on_launch && (values.extra_vars || '---');
|
||||||
|
if (surveyConfig?.spec) {
|
||||||
|
extraVars = yaml.safeDump(
|
||||||
|
mergeExtraVars(initialExtraVars, surveyValues)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
extraVars = initialExtraVars;
|
||||||
|
}
|
||||||
|
values.extra_data = extraVars && parseVariableField(extraVars);
|
||||||
|
}
|
||||||
|
|
||||||
onSave(values, launchConfig);
|
onSave(values, launchConfig);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user