mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 10:58:35 +08:00
54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package common
|
|
|
|
import (
|
|
api "k8s.io/api/core/v1"
|
|
)
|
|
|
|
// PodInfo represents aggregate information about controller's pods.
|
|
type PodInfo struct {
|
|
// Number of pods that are created.
|
|
Current int32 `json:"current"`
|
|
|
|
// Number of pods that are desired.
|
|
Desired *int32 `json:"desired,omitempty"`
|
|
|
|
// Number of pods that are currently running.
|
|
Running int32 `json:"running"`
|
|
|
|
// Number of pods that are currently waiting.
|
|
Pending int32 `json:"pending"`
|
|
|
|
// Number of pods that are failed.
|
|
Failed int32 `json:"failed"`
|
|
|
|
// Number of pods that are succeeded.
|
|
Succeeded int32 `json:"succeeded"`
|
|
|
|
// Unique warning messages related to pods in this resource.
|
|
Warnings []Event `json:"warnings"`
|
|
}
|
|
|
|
// GetPodInfo returns aggregate information about a group of pods.
|
|
func GetPodInfo(current int32, desired *int32, pods []api.Pod) PodInfo {
|
|
result := PodInfo{
|
|
Current: current,
|
|
Desired: desired,
|
|
Warnings: make([]Event, 0),
|
|
}
|
|
|
|
for _, pod := range pods {
|
|
switch pod.Status.Phase {
|
|
case api.PodRunning:
|
|
result.Running++
|
|
case api.PodPending:
|
|
result.Pending++
|
|
case api.PodFailed:
|
|
result.Failed++
|
|
case api.PodSucceeded:
|
|
result.Succeeded++
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|