diff --git a/awx/ui/src/screens/InstanceGroup/InstanceGroup.js b/awx/ui/src/screens/InstanceGroup/InstanceGroup.js
index 67793759e4..b17d6f3bc6 100644
--- a/awx/ui/src/screens/InstanceGroup/InstanceGroup.js
+++ b/awx/ui/src/screens/InstanceGroup/InstanceGroup.js
@@ -31,24 +31,29 @@ function InstanceGroup({ setBreadcrumb }) {
isLoading,
error: contentError,
request: fetchInstanceGroups,
- result: { instanceGroup, defaultControlPlane },
+ result: { instanceGroup, defaultControlPlane, defaultExecution },
} = useRequest(
useCallback(async () => {
const [
{ data },
{
- data: { DEFAULT_CONTROL_PLANE_QUEUE_NAME },
+ data: {
+ DEFAULT_CONTROL_PLANE_QUEUE_NAME,
+ DEFAULT_EXECUTION_QUEUE_NAME,
+ },
},
] = await Promise.all([
InstanceGroupsAPI.readDetail(id),
SettingsAPI.readAll(),
]);
+
return {
instanceGroup: data,
defaultControlPlane: DEFAULT_CONTROL_PLANE_QUEUE_NAME,
+ defaultExecution: DEFAULT_EXECUTION_QUEUE_NAME,
};
}, [id]),
- { instanceGroup: null, defaultControlPlane: '' }
+ { instanceGroup: null, defaultControlPlane: '', defaultExecution: '' }
);
useEffect(() => {
@@ -130,11 +135,13 @@ function InstanceGroup({ setBreadcrumb }) {
diff --git a/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js b/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js
index c427146c3a..ce80faeabe 100644
--- a/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js
+++ b/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js
@@ -23,7 +23,11 @@ const Unavailable = styled.span`
color: var(--pf-global--danger-color--200);
`;
-function InstanceGroupDetails({ instanceGroup, defaultControlPlane }) {
+function InstanceGroupDetails({
+ instanceGroup,
+ defaultControlPlane,
+ defaultExecution,
+}) {
const { id, name } = instanceGroup;
const history = useHistory();
@@ -42,7 +46,8 @@ function InstanceGroupDetails({ instanceGroup, defaultControlPlane }) {
const { error, dismissError } = useDismissableError(deleteError);
const deleteDetailsRequests =
relatedResourceDeleteRequests.instanceGroup(instanceGroup);
-
+ const isDefaultInstanceGroup =
+ name === defaultControlPlane || name === defaultExecution;
return (
@@ -110,7 +115,7 @@ function InstanceGroupDetails({ instanceGroup, defaultControlPlane }) {
{t`Edit`}
)}
- {name !== defaultControlPlane &&
+ {!isDefaultInstanceGroup &&
instanceGroup.summary_fields.user_capabilities &&
instanceGroup.summary_fields.user_capabilities.delete && (
-
+ {isDisabled ? (
+
+
+
+ ) : (
+
+ )}
', () => {
wrapper.find('button[aria-label="Cancel"]').invoke('onClick')();
expect(onCancel).toBeCalled();
});
+
+ test('Name field should be disabled, default', async () => {
+ let defaultInstanceGroupWrapper;
+ await act(async () => {
+ defaultInstanceGroupWrapper = mountWithContexts(
+
+ );
+ });
+ expect(
+ defaultInstanceGroupWrapper
+ .find('TextInput[name="name"]')
+ .prop('isDisabled')
+ ).toBe(true);
+ });
+
+ test('Name field should be disabled, controlplane', async () => {
+ let defaultInstanceGroupWrapper;
+ await act(async () => {
+ defaultInstanceGroupWrapper = mountWithContexts(
+
+ );
+ });
+ expect(
+ defaultInstanceGroupWrapper
+ .find('TextInput[name="name"]')
+ .prop('isDisabled')
+ ).toBe(true);
+ });
});