in shardingsphere-operator/pkg/reconcile/computenode/utils.go [52:97]
func GetConditionFromPods(podlist *corev1.PodList) []v1alpha1.ComputeNodeCondition {
conds := []v1alpha1.ComputeNodeCondition{}
if len(podlist.Items) == 0 {
conds = append(conds, newCondition(v1alpha1.ComputeNodeConditionUnknown, "PodNotFound", "No pod was found"))
return conds
}
result := map[v1alpha1.ComputeNodeConditionType]int{}
for i := range podlist.Items {
pcs := getPreferedConditionFromPod(&podlist.Items[i])
for idx := range pcs {
result[pcs[idx].Type]++
}
}
if result[v1alpha1.ComputeNodeConditionUnknown] == len(podlist.Items) {
conds = append(conds, newCondition(v1alpha1.ComputeNodeConditionUnknown, "PodUnknown", "All pods are unknown"))
}
if result[v1alpha1.ComputeNodeConditionReady] > 0 {
conds = append(conds, newCondition(v1alpha1.ComputeNodeConditionReady, "PodReady", "Some pods are ready"))
}
if result[v1alpha1.ComputeNodeConditionStarted] > 0 {
conds = append(conds, newCondition(v1alpha1.ComputeNodeConditionStarted, "PodStarted", "Some pods are started"))
}
if result[v1alpha1.ComputeNodeConditionInitialized] > 0 {
conds = append(conds, newCondition(v1alpha1.ComputeNodeConditionInitialized, "PodInitialized", "Some pods are initialized"))
}
if result[v1alpha1.ComputeNodeConditionDeployed] > 0 {
conds = append(conds, newCondition(v1alpha1.ComputeNodeConditionDeployed, "PodDeployed", "Some pods are deployed"))
}
if result[v1alpha1.ComputeNodeConditionPending] > 0 {
conds = append(conds, newCondition(v1alpha1.ComputeNodeConditionPending, "PodPending", "Some pods are pending"))
}
if result[v1alpha1.ComputeNodeConditionFailed] > 0 {
conds = append(conds, newCondition(v1alpha1.ComputeNodeConditionFailed, "PodFailed", "Some pods are failed"))
}
return conds
}