func GetConditionFromPods()

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
}