From 06d41a485c027263384f8d601e472ee7fe3116ee Mon Sep 17 00:00:00 2001 From: Kenichi Omichi Date: Fri, 11 Oct 2019 22:29:03 +0000 Subject: [PATCH] Move Initialized() to e2e framework util The function is used at e2e framework util module only. So this moves the function to the module for trying to remove dependencies to subpackages from core e2e framework. --- test/e2e/framework/pod/resource.go | 22 ---------------------- test/e2e/framework/util.go | 30 ++++++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/test/e2e/framework/pod/resource.go b/test/e2e/framework/pod/resource.go index 0fb4d8eb5f5..c8963358a6d 100644 --- a/test/e2e/framework/pod/resource.go +++ b/test/e2e/framework/pod/resource.go @@ -175,28 +175,6 @@ func CountRemainingPods(c clientset.Interface, namespace string) (int, int, erro return numPods, missingTimestamp, nil } -// Initialized checks the state of all init containers in the pod. -func Initialized(pod *v1.Pod) (ok bool, failed bool, err error) { - allInit := true - initFailed := false - for _, s := range pod.Status.InitContainerStatuses { - switch { - case initFailed && s.State.Waiting == nil: - return allInit, initFailed, fmt.Errorf("container %s is after a failed container but isn't waiting", s.Name) - case allInit && s.State.Waiting == nil: - return allInit, initFailed, fmt.Errorf("container %s is after an initializing container but isn't waiting", s.Name) - case s.State.Terminated == nil: - allInit = false - case s.State.Terminated.ExitCode != 0: - allInit = false - initFailed = true - case !s.Ready: - return allInit, initFailed, fmt.Errorf("container %s initialized but isn't marked as ready", s.Name) - } - } - return allInit, initFailed, nil -} - func podRunning(c clientset.Interface, podName, namespace string) wait.ConditionFunc { return func() (bool, error) { pod, err := c.CoreV1().Pods(namespace).Get(podName, metav1.GetOptions{}) diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index f450c18e7b2..1a9b9c6b172 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -675,10 +675,10 @@ func ContainerInitInvariant(older, newer runtime.Object) error { if err := initContainersInvariants(newPod); err != nil { return err } - oldInit, _, _ := e2epod.Initialized(oldPod) - newInit, _, _ := e2epod.Initialized(newPod) + oldInit, _, _ := initialized(oldPod) + newInit, _, _ := initialized(newPod) if oldInit && !newInit { - // TODO: we may in the future enable resetting Initialized = false if the kubelet needs to restart it + // TODO: we may in the future enable resetting initialized = false if the kubelet needs to restart it // from scratch return fmt.Errorf("pod cannot be initialized and then regress to not being initialized") } @@ -686,7 +686,7 @@ func ContainerInitInvariant(older, newer runtime.Object) error { } func initContainersInvariants(pod *v1.Pod) error { - allInit, initFailed, err := e2epod.Initialized(pod) + allInit, initFailed, err := initialized(pod) if err != nil { return err } @@ -2837,3 +2837,25 @@ func PrettyPrintJSON(metrics interface{}) string { } return string(formatted.Bytes()) } + +// initialized checks the state of all init containers in the pod. +func initialized(pod *v1.Pod) (ok bool, failed bool, err error) { + allInit := true + initFailed := false + for _, s := range pod.Status.InitContainerStatuses { + switch { + case initFailed && s.State.Waiting == nil: + return allInit, initFailed, fmt.Errorf("container %s is after a failed container but isn't waiting", s.Name) + case allInit && s.State.Waiting == nil: + return allInit, initFailed, fmt.Errorf("container %s is after an initializing container but isn't waiting", s.Name) + case s.State.Terminated == nil: + allInit = false + case s.State.Terminated.ExitCode != 0: + allInit = false + initFailed = true + case !s.Ready: + return allInit, initFailed, fmt.Errorf("container %s initialized but isn't marked as ready", s.Name) + } + } + return allInit, initFailed, nil +}