Hean-Chhinling commented on code in PR #8674:
URL: https://github.com/apache/hadoop/pull/8674#discussion_r3864346010


##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-capacity-scheduler-ui/src/main/webapp/src/features/queue-management/hooks/useQueueTreeData.ts:
##########
@@ -247,11 +247,59 @@ function getAutoCreationStatus(
 }
 
 function transformToCardData(queueInfo: QueueInfo, stagedChanges: 
StagedChange[]): QueueCardData {
-  const getQueuePropertyValue = 
useSchedulerStore.getState().getQueuePropertyValue;
+  const { getQueuePropertyValue, getQueuePartitionCapacities } = 
useSchedulerStore.getState();
 
   const capacityDisplay = getQueuePropertyValue(queueInfo.queuePath, 
'capacity');
   const maxCapacityDisplay = getQueuePropertyValue(queueInfo.queuePath, 
'maximum-capacity');
 
+  let capacityConfig = capacityDisplay.value;
+  let maxCapacityConfig = maxCapacityDisplay.value;
+
+  const isAutoCreatedQueue =
+    queueInfo.creationMethod === 'dynamicLegacy' ||
+    queueInfo.creationMethod === 'dynamicFlexible' ||
+    (queueInfo as { isAutoCreatedLeafQueue?: boolean }).isAutoCreatedLeafQueue 
=== true;
+
+  if (isAutoCreatedQueue) {
+    const defaultResourcePartition =
+      getQueuePartitionCapacities(queueInfo.queuePath, '') ??
+      queueInfo.capacities?.queueCapacitiesByPartition?.find((entry) => 
!entry.partitionName) ??
+      queueInfo.capacities?.queueCapacitiesByPartition?.[0];
+    const configuredMinResource = 
defaultResourcePartition?.configuredMinResource;
+
+    if (!capacityDisplay.isStaged) {
+      const configuredWeight = queueInfo.weight ?? 
defaultResourcePartition?.weight;
+      const configuredCapacity =
+        queueInfo.capacity ?? defaultResourcePartition?.capacity ?? 0;
+
+      if (configuredWeight !== undefined && configuredWeight > 0) {
+        capacityConfig = `${configuredWeight}w`;
+      } else if (
+        configuredMinResource &&
+        (configuredMinResource.memory > 0 || configuredMinResource.vCores > 0)
+      ) {
+        capacityConfig = 
`[memory-mb=${configuredMinResource.memory},vcores=${configuredMinResource.vCores}]`;

Review Comment:
   Thank you so much for the help, @brumi1024!
   
   That is really nice approach to handle the logic at /store instead of 
/hooks. Also exposing the maxCapacityVector at the backend.
   
   I have applied your patch, added a unit test then did a manual testing and 
all seems to be working as expected:
   
   <img width="1949" height="1214" alt="Screenshot 2026-08-26 at 16 42 39" 
src="https://github.com/user-attachments/assets/4467c8bd-1682-4c1f-bceb-022c88ed974c";
 />
   
   ```
   <queueCapacitiesByPartition>
        <partitionName/>
        <queueCapacityVectorInfo>
                
<configuredCapacityVector>[memory-mb=2048.0,vcores=2.0]</configuredCapacityVector>
                <capacityVectorEntries>
                        <resourceName>memory-mb</resourceName>
                        <resourceValue>2048.0</resourceValue>
                </capacityVectorEntries>
                <capacityVectorEntries>
                        <resourceName>vcores</resourceName>
                        <resourceValue>2.0</resourceValue>
                </capacityVectorEntries>
        </queueCapacityVectorInfo>
        <maximumQueueCapacityVectorInfo>
                
<configuredCapacityVector>[memory-mb=4096.0,vcores=4.0]</configuredCapacityVector>
                <capacityVectorEntries>
                        <resourceName>memory-mb</resourceName>
                        <resourceValue>4096.0</resourceValue>
                </capacityVectorEntries>
                <capacityVectorEntries>
                        <resourceName>vcores</resourceName>
                        <resourceValue>4.0</resourceValue>
                </capacityVectorEntries>
        </maximumQueueCapacityVectorInfo>
   </queueCapacitiesByPartition>
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to