From e57dea8a48f0b26365fe8da08651bd20c8bbe7ae Mon Sep 17 00:00:00 2001 From: Robert Roland Date: Thu, 3 Nov 2016 09:12:28 -0700 Subject: [PATCH 1/2] Bad conditional in vSphereLogin function With this conditional being == instead of !=, a login would never actually be attempted by this provider, and disk attachments would fail. --- pkg/cloudprovider/providers/vsphere/vsphere.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cloudprovider/providers/vsphere/vsphere.go b/pkg/cloudprovider/providers/vsphere/vsphere.go index 804931a96bbd..b4bfdc42fac7 100644 --- a/pkg/cloudprovider/providers/vsphere/vsphere.go +++ b/pkg/cloudprovider/providers/vsphere/vsphere.go @@ -360,7 +360,7 @@ func vSphereLogin(vs *VSphere, ctx context.Context) error { m := session.NewManager(vs.client.Client) // retrieve client's current session u, err := m.UserSession(ctx) - if err == nil && u == nil { + if err == nil && u != nil { // current session is valid return nil } From fc1d0bb167e77970185571b1526452ca5e998825 Mon Sep 17 00:00:00 2001 From: Robert Roland Date: Tue, 6 Dec 2016 13:12:49 -0800 Subject: [PATCH 2/2] Applying changes per PR feedback - Check for error conditions from the vSphere API and return the err if one occurs. The vSphere API does not return an err for unauthenticated users, it just returns a nil user object. --- pkg/cloudprovider/providers/vsphere/vsphere.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/cloudprovider/providers/vsphere/vsphere.go b/pkg/cloudprovider/providers/vsphere/vsphere.go index b4bfdc42fac7..9aef4d053fae 100644 --- a/pkg/cloudprovider/providers/vsphere/vsphere.go +++ b/pkg/cloudprovider/providers/vsphere/vsphere.go @@ -360,8 +360,11 @@ func vSphereLogin(vs *VSphere, ctx context.Context) error { m := session.NewManager(vs.client.Client) // retrieve client's current session u, err := m.UserSession(ctx) - if err == nil && u != nil { - // current session is valid + if err != nil { + glog.Errorf("Error while obtaining user session. err: %q", err) + return err + } + if u != nil { return nil }