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