mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 01:17:37 -02:30
Removes fetching of default instance groups in the UI on launch and schedule/node creation
This commit is contained in:
@@ -42,7 +42,6 @@ function LaunchButton({ resource, children }) {
|
|||||||
const [launchConfig, setLaunchConfig] = useState(null);
|
const [launchConfig, setLaunchConfig] = useState(null);
|
||||||
const [surveyConfig, setSurveyConfig] = useState(null);
|
const [surveyConfig, setSurveyConfig] = useState(null);
|
||||||
const [labels, setLabels] = useState([]);
|
const [labels, setLabels] = useState([]);
|
||||||
const [instanceGroups, setInstanceGroups] = useState([]);
|
|
||||||
const [isLaunching, setIsLaunching] = useState(false);
|
const [isLaunching, setIsLaunching] = useState(false);
|
||||||
const [error, setError] = useState(null);
|
const [error, setError] = useState(null);
|
||||||
|
|
||||||
@@ -71,26 +70,12 @@ function LaunchButton({ resource, children }) {
|
|||||||
setSurveyConfig(data);
|
setSurveyConfig(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
const relatedPromises = [];
|
|
||||||
|
|
||||||
if (launch.ask_labels_on_launch) {
|
if (launch.ask_labels_on_launch) {
|
||||||
relatedPromises.push(readLabels);
|
const {
|
||||||
} else {
|
data: { results },
|
||||||
relatedPromises.push(null);
|
} = await readLabels;
|
||||||
}
|
|
||||||
|
|
||||||
if (launch.ask_instance_groups_on_launch) {
|
const allLabels = results.map((label) => ({
|
||||||
relatedPromises.push(JobTemplatesAPI.readInstanceGroups(resource.id));
|
|
||||||
} else {
|
|
||||||
relatedPromises.push(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
const [labelsResponse, instanceGroupsResponse] = await Promise.all(
|
|
||||||
relatedPromises
|
|
||||||
);
|
|
||||||
|
|
||||||
if (launch.ask_labels_on_launch) {
|
|
||||||
const allLabels = labelsResponse?.data?.results.map((label) => ({
|
|
||||||
...label,
|
...label,
|
||||||
isReadOnly: true,
|
isReadOnly: true,
|
||||||
}));
|
}));
|
||||||
@@ -98,10 +83,6 @@ function LaunchButton({ resource, children }) {
|
|||||||
setLabels(allLabels);
|
setLabels(allLabels);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (launch.ask_instance_groups_on_launch) {
|
|
||||||
setInstanceGroups(instanceGroupsResponse?.data?.results);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (canLaunchWithoutPrompt(launch)) {
|
if (canLaunchWithoutPrompt(launch)) {
|
||||||
await launchWithParams({});
|
await launchWithParams({});
|
||||||
} else {
|
} else {
|
||||||
@@ -216,7 +197,6 @@ function LaunchButton({ resource, children }) {
|
|||||||
labels={labels}
|
labels={labels}
|
||||||
onLaunch={launchWithParams}
|
onLaunch={launchWithParams}
|
||||||
onCancel={() => setShowLaunchPrompt(false)}
|
onCancel={() => setShowLaunchPrompt(false)}
|
||||||
instanceGroups={instanceGroups}
|
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -170,7 +170,6 @@ function LaunchPrompt({
|
|||||||
labels = [],
|
labels = [],
|
||||||
surveyConfig,
|
surveyConfig,
|
||||||
resourceDefaultCredentials = [],
|
resourceDefaultCredentials = [],
|
||||||
instanceGroups = [],
|
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<Formik initialValues={{}} onSubmit={(values) => onLaunch(values)}>
|
<Formik initialValues={{}} onSubmit={(values) => onLaunch(values)}>
|
||||||
@@ -182,7 +181,7 @@ function LaunchPrompt({
|
|||||||
resource={resource}
|
resource={resource}
|
||||||
labels={labels}
|
labels={labels}
|
||||||
resourceDefaultCredentials={resourceDefaultCredentials}
|
resourceDefaultCredentials={resourceDefaultCredentials}
|
||||||
instanceGroups={instanceGroups}
|
instanceGroups={[]}
|
||||||
/>
|
/>
|
||||||
</Formik>
|
</Formik>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -31,8 +31,9 @@ function ScheduleEdit({
|
|||||||
values,
|
values,
|
||||||
launchConfiguration,
|
launchConfiguration,
|
||||||
surveyConfiguration,
|
surveyConfiguration,
|
||||||
scheduleCredentials = [],
|
originalInstanceGroups,
|
||||||
originalLabels = []
|
originalLabels,
|
||||||
|
scheduleCredentials = []
|
||||||
) => {
|
) => {
|
||||||
const {
|
const {
|
||||||
execution_environment,
|
execution_environment,
|
||||||
@@ -160,8 +161,8 @@ function ScheduleEdit({
|
|||||||
),
|
),
|
||||||
SchedulesAPI.orderInstanceGroups(
|
SchedulesAPI.orderInstanceGroups(
|
||||||
scheduleId,
|
scheduleId,
|
||||||
instance_groups,
|
instance_groups || [],
|
||||||
resource?.summary_fields.instance_groups || []
|
originalInstanceGroups
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import React, { useEffect, useCallback, useState } from 'react';
|
import React, { useEffect, useCallback, useState, useRef } from 'react';
|
||||||
import { shape, func } from 'prop-types';
|
import { shape, func } from 'prop-types';
|
||||||
import { DateTime } from 'luxon';
|
import { DateTime } from 'luxon';
|
||||||
import { t } from '@lingui/macro';
|
import { t } from '@lingui/macro';
|
||||||
@@ -40,6 +40,8 @@ function ScheduleForm({
|
|||||||
}) {
|
}) {
|
||||||
const [isWizardOpen, setIsWizardOpen] = useState(false);
|
const [isWizardOpen, setIsWizardOpen] = useState(false);
|
||||||
const [isSaveDisabled, setIsSaveDisabled] = useState(false);
|
const [isSaveDisabled, setIsSaveDisabled] = useState(false);
|
||||||
|
const originalLabels = useRef([]);
|
||||||
|
const originalInstanceGroups = useRef([]);
|
||||||
|
|
||||||
let rruleError;
|
let rruleError;
|
||||||
const now = DateTime.now();
|
const now = DateTime.now();
|
||||||
@@ -54,7 +56,7 @@ function ScheduleForm({
|
|||||||
request: loadScheduleData,
|
request: loadScheduleData,
|
||||||
error: contentError,
|
error: contentError,
|
||||||
isLoading: contentLoading,
|
isLoading: contentLoading,
|
||||||
result: { zoneOptions, zoneLinks, credentials, labels, instanceGroups },
|
result: { zoneOptions, zoneLinks, credentials },
|
||||||
} = useRequest(
|
} = useRequest(
|
||||||
useCallback(async () => {
|
useCallback(async () => {
|
||||||
const { data } = await SchedulesAPI.readZoneInfo();
|
const { data } = await SchedulesAPI.readZoneInfo();
|
||||||
@@ -95,13 +97,6 @@ function ScheduleForm({
|
|||||||
} = await JobTemplatesAPI.readAllLabels(resource.id);
|
} = await JobTemplatesAPI.readAllLabels(resource.id);
|
||||||
allLabels = results;
|
allLabels = results;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (launchConfig.ask_instance_groups_on_launch) {
|
|
||||||
const {
|
|
||||||
data: { results },
|
|
||||||
} = await JobTemplatesAPI.readInstanceGroups(resource.id);
|
|
||||||
allInstanceGroups = results;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
resource.type === 'workflow_job_template' &&
|
resource.type === 'workflow_job_template' &&
|
||||||
@@ -120,12 +115,13 @@ function ScheduleForm({
|
|||||||
label: zone,
|
label: zone,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
originalLabels.current = allLabels;
|
||||||
|
originalInstanceGroups.current = allInstanceGroups;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
zoneOptions: zones,
|
zoneOptions: zones,
|
||||||
zoneLinks: data.links,
|
zoneLinks: data.links,
|
||||||
credentials: creds,
|
credentials: creds,
|
||||||
labels: allLabels,
|
|
||||||
instanceGroups: allInstanceGroups,
|
|
||||||
};
|
};
|
||||||
}, [
|
}, [
|
||||||
schedule,
|
schedule,
|
||||||
@@ -140,8 +136,6 @@ function ScheduleForm({
|
|||||||
zoneLinks: {},
|
zoneLinks: {},
|
||||||
credentials: [],
|
credentials: [],
|
||||||
isLoading: true,
|
isLoading: true,
|
||||||
labels: [],
|
|
||||||
instanceGroups: [],
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -490,8 +484,9 @@ function ScheduleForm({
|
|||||||
values,
|
values,
|
||||||
launchConfig,
|
launchConfig,
|
||||||
surveyConfig,
|
surveyConfig,
|
||||||
credentials,
|
originalInstanceGroups.current,
|
||||||
labels
|
originalLabels.current,
|
||||||
|
credentials
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
validate={validate}
|
validate={validate}
|
||||||
@@ -519,8 +514,8 @@ function ScheduleForm({
|
|||||||
setIsSaveDisabled(false);
|
setIsSaveDisabled(false);
|
||||||
}}
|
}}
|
||||||
resourceDefaultCredentials={resourceDefaultCredentials}
|
resourceDefaultCredentials={resourceDefaultCredentials}
|
||||||
labels={labels}
|
labels={originalLabels.current}
|
||||||
instanceGroups={instanceGroups}
|
instanceGroups={originalInstanceGroups.current}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<FormSubmitError error={submitError} />
|
<FormSubmitError error={submitError} />
|
||||||
|
|||||||
@@ -245,13 +245,7 @@ const NodeModalInner = ({ title, ...rest }) => {
|
|||||||
const {
|
const {
|
||||||
request: readLaunchConfigs,
|
request: readLaunchConfigs,
|
||||||
error: launchConfigError,
|
error: launchConfigError,
|
||||||
result: {
|
result: { launchConfig, surveyConfig, resourceDefaultCredentials, labels },
|
||||||
launchConfig,
|
|
||||||
surveyConfig,
|
|
||||||
resourceDefaultCredentials,
|
|
||||||
labels,
|
|
||||||
instanceGroups,
|
|
||||||
},
|
|
||||||
isLoading,
|
isLoading,
|
||||||
} = useRequest(
|
} = useRequest(
|
||||||
useCallback(async () => {
|
useCallback(async () => {
|
||||||
@@ -271,7 +265,6 @@ const NodeModalInner = ({ title, ...rest }) => {
|
|||||||
surveyConfig: {},
|
surveyConfig: {},
|
||||||
resourceDefaultCredentials: [],
|
resourceDefaultCredentials: [],
|
||||||
labels: [],
|
labels: [],
|
||||||
instanceGroups: [],
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -318,27 +311,11 @@ const NodeModalInner = ({ title, ...rest }) => {
|
|||||||
defaultLabels = results;
|
defaultLabels = results;
|
||||||
}
|
}
|
||||||
|
|
||||||
let defaultInstanceGroups = [];
|
|
||||||
|
|
||||||
if (launch.ask_instance_groups_on_launch) {
|
|
||||||
const {
|
|
||||||
data: { results },
|
|
||||||
} = await await JobTemplatesAPI.readInstanceGroups(
|
|
||||||
values?.nodeResource?.id,
|
|
||||||
{
|
|
||||||
page_size: 200,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
defaultInstanceGroups = results;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
launchConfig: launch,
|
launchConfig: launch,
|
||||||
surveyConfig: survey,
|
surveyConfig: survey,
|
||||||
resourceDefaultCredentials: defaultCredentials,
|
resourceDefaultCredentials: defaultCredentials,
|
||||||
labels: defaultLabels,
|
labels: defaultLabels,
|
||||||
instanceGroups: defaultInstanceGroups,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
@@ -392,7 +369,7 @@ const NodeModalInner = ({ title, ...rest }) => {
|
|||||||
isLaunchLoading={isLoading}
|
isLaunchLoading={isLoading}
|
||||||
title={wizardTitle}
|
title={wizardTitle}
|
||||||
labels={labels}
|
labels={labels}
|
||||||
instanceGroups={instanceGroups}
|
instanceGroups={[]}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user