diff --git a/awx/ui/src/screens/InstanceGroup/Instances/InstanceList.js b/awx/ui/src/screens/InstanceGroup/Instances/InstanceList.js index d4c86af647..5f511a29fd 100644 --- a/awx/ui/src/screens/InstanceGroup/Instances/InstanceList.js +++ b/awx/ui/src/screens/InstanceGroup/Instances/InstanceList.js @@ -89,9 +89,14 @@ function InstanceList() { useCallback( () => Promise.all( - selected.map((instance) => - InstanceGroupsAPI.disassociateInstance(instanceGroupId, instance.id) - ) + selected + .filter((s) => s.node_type !== 'control') + .map((instance) => + InstanceGroupsAPI.disassociateInstance( + instanceGroupId, + instance.id + ) + ) ), [instanceGroupId, selected] ), @@ -106,9 +111,11 @@ function InstanceList() { useCallback( async (instancesToAssociate) => { await Promise.all( - instancesToAssociate.map((instance) => - InstanceGroupsAPI.associateInstance(instanceGroupId, instance.id) - ) + instancesToAssociate + .filter((i) => i.node_type !== 'control') + .map((instance) => + InstanceGroupsAPI.associateInstance(instanceGroupId, instance.id) + ) ); fetchInstances(); }, @@ -186,7 +193,9 @@ function InstanceList() { verifyCannotDisassociate={false} key="disassociate" onDisassociate={handleDisassociate} - itemsToDisassociate={selected} + itemsToDisassociate={selected.filter( + (s) => s.node_type !== 'control' + )} modalTitle={t`Disassociate instance from instance group?`} />, ]} diff --git a/awx/ui/src/screens/InstanceGroup/Instances/InstanceListItem.js b/awx/ui/src/screens/InstanceGroup/Instances/InstanceListItem.js index 442f3b464f..d3891e3755 100644 --- a/awx/ui/src/screens/InstanceGroup/Instances/InstanceListItem.js +++ b/awx/ui/src/screens/InstanceGroup/Instances/InstanceListItem.js @@ -106,9 +106,9 @@ function InstanceListItem({