From e069150fbf3121c9cf93250d52e7f860757ebc75 Mon Sep 17 00:00:00 2001 From: mabashian Date: Tue, 20 Sep 2022 16:31:49 -0400 Subject: [PATCH] Removes fetching of default instance groups in the UI on launch and schedule/node creation --- .../components/LaunchButton/LaunchButton.js | 28 +++--------------- .../components/LaunchPrompt/LaunchPrompt.js | 3 +- .../Schedule/ScheduleEdit/ScheduleEdit.js | 9 +++--- .../Schedule/shared/ScheduleForm.js | 29 ++++++++----------- .../Modals/NodeModals/NodeModal.js | 27 ++--------------- 5 files changed, 24 insertions(+), 72 deletions(-) diff --git a/awx/ui/src/components/LaunchButton/LaunchButton.js b/awx/ui/src/components/LaunchButton/LaunchButton.js index 061462042b..5f207e3be7 100644 --- a/awx/ui/src/components/LaunchButton/LaunchButton.js +++ b/awx/ui/src/components/LaunchButton/LaunchButton.js @@ -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} /> )} diff --git a/awx/ui/src/components/LaunchPrompt/LaunchPrompt.js b/awx/ui/src/components/LaunchPrompt/LaunchPrompt.js index 4bc4c8313c..005c9069e9 100644 --- a/awx/ui/src/components/LaunchPrompt/LaunchPrompt.js +++ b/awx/ui/src/components/LaunchPrompt/LaunchPrompt.js @@ -170,7 +170,6 @@ function LaunchPrompt({ labels = [], surveyConfig, resourceDefaultCredentials = [], - instanceGroups = [], }) { return ( onLaunch(values)}> @@ -182,7 +181,7 @@ function LaunchPrompt({ resource={resource} labels={labels} resourceDefaultCredentials={resourceDefaultCredentials} - instanceGroups={instanceGroups} + instanceGroups={[]} /> ); diff --git a/awx/ui/src/components/Schedule/ScheduleEdit/ScheduleEdit.js b/awx/ui/src/components/Schedule/ScheduleEdit/ScheduleEdit.js index 12420bf023..adc5ff1b97 100644 --- a/awx/ui/src/components/Schedule/ScheduleEdit/ScheduleEdit.js +++ b/awx/ui/src/components/Schedule/ScheduleEdit/ScheduleEdit.js @@ -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 ), ]); diff --git a/awx/ui/src/components/Schedule/shared/ScheduleForm.js b/awx/ui/src/components/Schedule/shared/ScheduleForm.js index ecdb7127b2..96e25ba154 100644 --- a/awx/ui/src/components/Schedule/shared/ScheduleForm.js +++ b/awx/ui/src/components/Schedule/shared/ScheduleForm.js @@ -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} /> )} diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeModal.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeModal.js index df072a067c..572291bf76 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeModal.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeModal.js @@ -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={[]} /> ); };