diff --git a/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.js b/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.js index 1cb608cfb4..7aaf5f80b0 100644 --- a/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.js +++ b/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.js @@ -29,6 +29,10 @@ function ContainerGroupAdd() { try { const { data: response } = await InstanceGroupsAPI.create({ name: values.name, + max_forks: values.max_forks ? values.max_forks : 0, + max_concurrent_jobs: values.max_concurrent_jobs + ? values.max_concurrent_jobs + : 0, credential: values?.credential?.id, pod_spec_override: values.override ? getPodSpecValue(values.pod_spec_override) diff --git a/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.test.js b/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.test.js index aa91b9ef25..223381f7a4 100644 --- a/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.test.js +++ b/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.test.js @@ -33,6 +33,8 @@ const initialPodSpec = { const instanceGroupCreateData = { name: 'Fuz', credential: { id: 71, name: 'CG' }, + max_concurrent_jobs: 0, + max_forks: 0, pod_spec_override: 'apiVersion: v1\nkind: Pod\nmetadata:\n namespace: default\nspec:\n containers:\n - image: ansible/ansible-runner\n tty: true\n stdin: true\n imagePullPolicy: Always\n args:\n - sleep\n - infinity\n - test', }; diff --git a/awx/ui/src/screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.js b/awx/ui/src/screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.js index f7a90603f3..5ae579bc45 100644 --- a/awx/ui/src/screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.js +++ b/awx/ui/src/screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.js @@ -9,7 +9,12 @@ import AlertModal from 'components/AlertModal'; import ErrorDetail from 'components/ErrorDetail'; import { CardBody, CardActionsRow } from 'components/Card'; import DeleteButton from 'components/DeleteButton'; -import { Detail, DetailList, UserDateDetail } from 'components/DetailList'; +import { + Detail, + DetailList, + UserDateDetail, + DetailBadge, +} from 'components/DetailList'; import useRequest, { useDismissableError } from 'hooks/useRequest'; import { jsonToYaml, isJsonString } from 'util/yaml'; import { InstanceGroupsAPI } from 'api'; @@ -47,6 +52,20 @@ function ContainerGroupDetails({ instanceGroup }) { value={t`Container group`} dataCy="container-group-type" /> + + {instanceGroup.summary_fields.credential && ( ', () => { ...updatedInstanceGroup, credential: 12, pod_spec_override: null, + max_concurrent_jobs: 0, + max_forks: 0, is_container_group: true, }); expect(history.location.pathname).toEqual( diff --git a/awx/ui/src/screens/InstanceGroup/InstanceDetails/InstanceDetails.test.js b/awx/ui/src/screens/InstanceGroup/InstanceDetails/InstanceDetails.test.js index d40d49cd7c..68b73a7a98 100644 --- a/awx/ui/src/screens/InstanceGroup/InstanceDetails/InstanceDetails.test.js +++ b/awx/ui/src/screens/InstanceGroup/InstanceDetails/InstanceDetails.test.js @@ -42,6 +42,8 @@ const instanceGroup = { credential: null, policy_instance_percentage: 100, policy_instance_minimum: 0, + max_concurrent_jobs: 0, + max_forks: 0, policy_instance_list: ['receptor-1', 'receptor-2'], pod_spec_override: '', summary_fields: { diff --git a/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js b/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js index 6627081f57..13cc8c40ba 100644 --- a/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js +++ b/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js @@ -73,6 +73,20 @@ function InstanceGroupDetails({ instanceGroup }) { dataCy="instance-group-policy-instance-percentage" content={`${instanceGroup.policy_instance_percentage} %`} /> + + {instanceGroup.capacity ? ( + + @@ -97,6 +117,8 @@ function ContainerGroupForm({ const initialValues = { name: instanceGroup?.name || '', + max_concurrent_jobs: instanceGroup.max_concurrent_jobs || 0, + max_forks: instanceGroup.max_forks || 0, credential: instanceGroup?.summary_fields?.credential, pod_spec_override: isCheckboxChecked ? instanceGroup?.pod_spec_override diff --git a/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js b/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js index a9e2d670f4..0e9396be24 100644 --- a/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js +++ b/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js @@ -42,6 +42,26 @@ function InstanceGroupFormFields() { assigned to this group when new instances come online.`} validate={minMaxValue(0, 100)} /> + + ); } @@ -57,6 +77,8 @@ function InstanceGroupForm({ name: instanceGroup.name || '', policy_instance_minimum: instanceGroup.policy_instance_minimum || 0, policy_instance_percentage: instanceGroup.policy_instance_percentage || 0, + max_concurrent_jobs: instanceGroup.max_concurrent_jobs || 0, + max_forks: instanceGroup.max_forks || 0, }; return (