From 18e07d1b0c419a329c66ec40966af80ad955c033 Mon Sep 17 00:00:00 2001 From: Oleg Bulatov Date: Fri, 7 Aug 2020 10:37:35 +0200 Subject: [PATCH] Print error if watch.Error happens --- .../controller_manager/deploy_trigger.go | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/test/extended/controller_manager/deploy_trigger.go b/test/extended/controller_manager/deploy_trigger.go index 52698331d195..1ab44f4e1189 100644 --- a/test/extended/controller_manager/deploy_trigger.go +++ b/test/extended/controller_manager/deploy_trigger.go @@ -7,6 +7,7 @@ import ( g "github.com/onsi/ginkgo" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" watchapi "k8s.io/apimachinery/pkg/watch" @@ -248,16 +249,24 @@ var _ = g.Describe("[sig-apps][Feature:OpenShiftControllerManager]", func() { for { select { case event := <-imageWatch.ResultChan(): - stream := event.Object.(*imagev1.ImageStream) - tagEventList, ok := imageutil.StatusHasTag(stream, imagev1.DefaultImageTag) - if ok && len(tagEventList.Items) > 0 && tagEventList.Items[0].DockerImageReference == mapping.Image.DockerImageReference { - t.Logf("imagestream %q now has status with tags: %#v", stream.Name, stream.Status.Tags) - return - } - if len(tagEventList.Items) > 0 { - t.Logf("want: %s, got: %s", mapping.Image.DockerImageReference, tagEventList.Items[0].DockerImageReference) + switch event.Type { + case watchapi.Error: + if status, ok := event.Object.(*metav1.Status); ok { + t.Fatalf("unexpected error from watcher: %v", errors.FromObject(status)) + } + t.Fatalf("unexpected object from watcher: %#v", event.Object) + default: + stream := event.Object.(*imagev1.ImageStream) + tagEventList, ok := imageutil.StatusHasTag(stream, imagev1.DefaultImageTag) + if ok && len(tagEventList.Items) > 0 && tagEventList.Items[0].DockerImageReference == mapping.Image.DockerImageReference { + t.Logf("imagestream %q now has status with tags: %#v", stream.Name, stream.Status.Tags) + return + } + if len(tagEventList.Items) > 0 { + t.Logf("want: %s, got: %s", mapping.Image.DockerImageReference, tagEventList.Items[0].DockerImageReference) + } + t.Logf("Still waiting for latest tag status update on imagestream %q with tags: %#v", stream.Name, tagEventList) } - t.Logf("Still waiting for latest tag status update on imagestream %q with tags: %#v", stream.Name, tagEventList) case <-timeout: t.Fatalf("timed out waiting for image stream %q to be updated", imageStream.Name) }