manirajv06 commented on a change in pull request #216:
URL: 
https://github.com/apache/incubator-yunikorn-core/pull/216#discussion_r529201050



##########
File path: pkg/webservice/handlers.go
##########
@@ -527,3 +527,45 @@ func updateConfiguration(conf string) (string, error) {
        }
        return "", fmt.Errorf("config plugin not found")
 }
+
+func getPartitions(w http.ResponseWriter, r *http.Request) {
+       writeHeaders(w)
+
+       lists := gClusterInfo.ListPartitions()
+       for _, k := range lists {
+               partitionInfo := getPartition(k)
+
+               if err := json.NewEncoder(w).Encode(partitionInfo); err != nil {
+                       http.Error(w, err.Error(), 
http.StatusInternalServerError)
+               }
+       }
+}
+
+func getPartition(name string) *dao.PartitionInfo {
+       partitionInfo := &dao.PartitionInfo{}
+       partitionContext := gClusterInfo.GetPartition(name)
+       partitionInfo.Name = partitionContext.Name
+       partitionInfo.State = partitionContext.StateMachine.Current()
+       partitionInfo.LastStateTransitionTime = 
partitionContext.StateTime.String()
+
+       capacityInfo := dao.PartitionCapacity{}
+       capacityInfo.Capacity = 
partitionContext.GetTotalPartitionResource().String()
+       capacityInfo.UsedCapacity = 
partitionContext.Root.GetAllocatedResource().String()
+       partitionInfo.Capacity = capacityInfo
+       partitionInfo.NodeSortingPolicy = 
partitionContext.GetNodeSortingPolicy().String()
+
+       applicationsInfo := dao.Applications{}
+       appList := partitionContext.GetApplications()
+       applicationsState := make(map[string]int)
+
+       for _, app := range appList {
+               applicationsState[app.GetApplicationState()]++
+       }
+       applicationsInfo.Running = applicationsState["Running"]

Review comment:
       hi @yangwwei  Sorry for the delay. 
   
   applicationsState in handlers#getPartition() is a map contains the state 
wise count. 
   
   applicationsInfo ( dao.Applications{} ) in handlers#getPartition() has been 
used to display the state wise count (after aggregating some app states. For 
ex, Killed and Rejected as Failed) in JSON output.
   
   I am not sure how defining appCounts map[string]int in PartitionInfo struct 
helps in this case as we are manipulating some app states. Please correct my 
understanding if needed.




----------------------------------------------------------------
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.

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


Reply via email to