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
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 [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}
/> />
)} )}
</> </>

View File

@@ -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>
); );

View File

@@ -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
), ),
]); ]);

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 { 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} />

View File

@@ -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={[]}
/> />
); );
}; };