Skip to content

Commit 81db619

Browse files
committed
feat: add poll to user call
this poll will help in situations on SNO where the oauth and apiserver are not ready but the kube-apiserver is Signed-off-by: ehila <[email protected]>
1 parent 7ac94b5 commit 81db619

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

test/extended/util/oc_copy.go

+13-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@ import (
44
"context"
55
"net/url"
66
"strings"
7+
"time"
78

9+
userv1 "github.com/openshift/api/user/v1"
810
kerrors "k8s.io/apimachinery/pkg/api/errors"
911
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
12+
"k8s.io/apimachinery/pkg/util/wait"
1013
"k8s.io/apimachinery/third_party/forked/golang/netutil"
1114
restclient "k8s.io/client-go/rest"
1215
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
@@ -48,7 +51,16 @@ func getUserPartOfNickname(clientCfg *restclient.Config) (string, error) {
4851
if err != nil {
4952
return "", err
5053
}
51-
userInfo, err := userClient.Users().Get(context.Background(), "~", metav1.GetOptions{})
54+
55+
var userInfo *userv1.User
56+
err = wait.PollUntilContextTimeout(context.Background(), time.Second, time.Minute, true, func(ctx context.Context) (done bool, err error) {
57+
userInfo, err = userClient.Users().Get(ctx, "~", metav1.GetOptions{})
58+
if err != nil && strings.Contains(err.Error(), "connect: connection refused") {
59+
return false, nil
60+
}
61+
return true, err
62+
})
63+
5264
if kerrors.IsNotFound(err) || kerrors.IsForbidden(err) {
5365
// if we're talking to kube (or likely talking to kube), take a best guess consistent with login
5466
switch {

0 commit comments

Comments
 (0)