Removes fetching of default instance groups in the UI on launch and schedule/node creation

This commit is contained in:
mabashian 2022-09-20 16:31:49 -04:00 committed by Alan Rominger
parent 61093b2532
commit e069150fbf
No known key found for this signature in database
GPG Key ID: C2D7EAAA12B63559
5 changed files with 24 additions and 72 deletions

View File

@ -42,7 +42,6 @@ function LaunchButton({ resource, children }) {
const [launchConfig, setLaunchConfig] = useState(null);
const [surveyConfig, setSurveyConfig] = useState(null);
const [labels, setLabels] = useState([]);
const [instanceGroups, setInstanceGroups] = useState([]);
const [isLaunching, setIsLaunching] = useState(false);
const [error, setError] = useState(null);
@ -71,26 +70,12 @@ function LaunchButton({ resource, children }) {
setSurveyConfig(data);
}
const relatedPromises = [];
if (launch.ask_labels_on_launch) {
relatedPromises.push(readLabels);
} else {
relatedPromises.push(null);
}
const {
data: { results },
} = await readLabels;
if (launch.ask_instance_groups_on_launch) {
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) => ({
const allLabels = results.map((label) => ({
...label,
isReadOnly: true,
}));
@ -98,10 +83,6 @@ function LaunchButton({ resource, children }) {
setLabels(allLabels);
}
if (launch.ask_instance_groups_on_launch) {
setInstanceGroups(instanceGroupsResponse?.data?.results);
}
if (canLaunchWithoutPrompt(launch)) {
await launchWithParams({});
} else {
@ -216,7 +197,6 @@ function LaunchButton({ resource, children }) {
labels={labels}
onLaunch={launchWithParams}
onCancel={() => setShowLaunchPrompt(false)}
instanceGroups={instanceGroups}
/>
)}
</>

View File

@ -170,7 +170,6 @@ function LaunchPrompt({
labels = [],
surveyConfig,
resourceDefaultCredentials = [],
instanceGroups = [],
}) {
return (
<Formik initialValues={{}} onSubmit={(values) => onLaunch(values)}>
@ -182,7 +181,7 @@ function LaunchPrompt({
resource={resource}
labels={labels}
resourceDefaultCredentials={resourceDefaultCredentials}
instanceGroups={instanceGroups}
instanceGroups={[]}
/>
</Formik>
);

View File

@ -31,8 +31,9 @@ function ScheduleEdit({
values,
launchConfiguration,
surveyConfiguration,
scheduleCredentials = [],
originalLabels = []
originalInstanceGroups,
originalLabels,
scheduleCredentials = []
) => {
const {
execution_environment,
@ -160,8 +161,8 @@ function ScheduleEdit({
),
SchedulesAPI.orderInstanceGroups(
scheduleId,
instance_groups,
resource?.summary_fields.instance_groups || []
instance_groups || [],
originalInstanceGroups
),
]);

View File

@ -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 { DateTime } from 'luxon';
import { t } from '@lingui/macro';
@ -40,6 +40,8 @@ function ScheduleForm({
}) {
const [isWizardOpen, setIsWizardOpen] = useState(false);
const [isSaveDisabled, setIsSaveDisabled] = useState(false);
const originalLabels = useRef([]);
const originalInstanceGroups = useRef([]);
let rruleError;
const now = DateTime.now();
@ -54,7 +56,7 @@ function ScheduleForm({
request: loadScheduleData,
error: contentError,
isLoading: contentLoading,
result: { zoneOptions, zoneLinks, credentials, labels, instanceGroups },
result: { zoneOptions, zoneLinks, credentials },
} = useRequest(
useCallback(async () => {
const { data } = await SchedulesAPI.readZoneInfo();
@ -95,13 +97,6 @@ function ScheduleForm({
} = await JobTemplatesAPI.readAllLabels(resource.id);
allLabels = results;
}
if (launchConfig.ask_instance_groups_on_launch) {
const {
data: { results },
} = await JobTemplatesAPI.readInstanceGroups(resource.id);
allInstanceGroups = results;
}
}
if (
resource.type === 'workflow_job_template' &&
@ -120,12 +115,13 @@ function ScheduleForm({
label: zone,
}));
originalLabels.current = allLabels;
originalInstanceGroups.current = allInstanceGroups;
return {
zoneOptions: zones,
zoneLinks: data.links,
credentials: creds,
labels: allLabels,
instanceGroups: allInstanceGroups,
};
}, [
schedule,
@ -140,8 +136,6 @@ function ScheduleForm({
zoneLinks: {},
credentials: [],
isLoading: true,
labels: [],
instanceGroups: [],
}
);
@ -490,8 +484,9 @@ function ScheduleForm({
values,
launchConfig,
surveyConfig,
credentials,
labels
originalInstanceGroups.current,
originalLabels.current,
credentials
);
}}
validate={validate}
@ -519,8 +514,8 @@ function ScheduleForm({
setIsSaveDisabled(false);
}}
resourceDefaultCredentials={resourceDefaultCredentials}
labels={labels}
instanceGroups={instanceGroups}
labels={originalLabels.current}
instanceGroups={originalInstanceGroups.current}
/>
)}
<FormSubmitError error={submitError} />

View File

@ -245,13 +245,7 @@ const NodeModalInner = ({ title, ...rest }) => {
const {
request: readLaunchConfigs,
error: launchConfigError,
result: {
launchConfig,
surveyConfig,
resourceDefaultCredentials,
labels,
instanceGroups,
},
result: { launchConfig, surveyConfig, resourceDefaultCredentials, labels },
isLoading,
} = useRequest(
useCallback(async () => {
@ -271,7 +265,6 @@ const NodeModalInner = ({ title, ...rest }) => {
surveyConfig: {},
resourceDefaultCredentials: [],
labels: [],
instanceGroups: [],
};
}
@ -318,27 +311,11 @@ const NodeModalInner = ({ title, ...rest }) => {
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 {
launchConfig: launch,
surveyConfig: survey,
resourceDefaultCredentials: defaultCredentials,
labels: defaultLabels,
instanceGroups: defaultInstanceGroups,
};
// eslint-disable-next-line react-hooks/exhaustive-deps
@ -392,7 +369,7 @@ const NodeModalInner = ({ title, ...rest }) => {
isLaunchLoading={isLoading}
title={wizardTitle}
labels={labels}
instanceGroups={instanceGroups}
instanceGroups={[]}
/>
);
};