in frontend/src/pages/Configure/Queues.js [231:286]
function Queue({index}) {
const queues = useState(queuesPath);
const [ editingName, setEditingName ] = React.useState(false);
const queue = useState([...queuesPath, index]);
const enablePlacementGroupPath = [...queuesPath, index, 'Networking', 'PlacementGroup', 'Enabled'];
const enablePlacementGroup = useState(enablePlacementGroupPath);
const subnetError = useState([...queuesErrorsPath, index, 'subnet']);
const capacityTypes = [
["ONDEMAND", "On-Demand", "/img/od.svg"],
["SPOT", "Spot", "/img/spot.svg"],
];
const capacityTypePath = [queuesPath, index, "CapacityType"];
const capacityType = useState(capacityTypePath) || "ONDEMAND";
const subnetPath = [...queuesPath, index, "Networking", "SubnetIds"];
const subnetValue = useState([...subnetPath, 0]) || "";
const remove = () => {
setState([...queuesPath], [...queues.slice(0, index), ...queues.slice(index + 1)]);
}
const addComputeResource = () => {
setState([...queuesPath, index], {...queue, ComputeResources: [...(queue.ComputeResources || []),
{
Name: `queue${index}-c5n-large`,
InstanceType: 'c5n-large',
MinCount: 0,
MaxCount: 4
}]});
}
const setEnablePG = (enable) => {
setState(enablePlacementGroupPath, enable);
}
const renameQueue = (newName) => {
const computeResources = getState([...queuesPath, index, 'ComputeResources']);
for(let i = 0; i < computeResources.length; i++)
{
const cr = computeResources[i];
const crName = `${newName}-${cr.InstanceType.replace(".", "")}`;
setState([...queuesPath, index, 'ComputeResources', i, "Name"], crName);
}
setState([...queuesPath, index, 'Name'], newName);
}
return (
<div className="queue">
<div className="queue-properties">
<Box margin={{bottom: "xs"}} >
<Header variant="h4"
actions={<SpaceBetween direction="horizontal" size="xs">
<Button disabled={queue.ComputeResources.length >= 3} onClick={addComputeResource}>Add Resource</Button>
{index > 0 && <Button onClick={remove}>Remove Queue</Button>}
</SpaceBetween>}>