Skip to content
Snippets Groups Projects
Commit 297d9608 authored by Denis Moiseev's avatar Denis Moiseev Committed by openshift-cherrypick-robot
Browse files

Fix user-agent in vCenter sessions list

For some reason vCenter using user-agent from first
login request and does not respect it's change after.
Moved login step into our code with setting user-agent
for soap client beforehand.
Info log message for new vCenter session creation added
by the way.
parent 90906899
No related branches found
No related tags found
No related merge requests found
...@@ -67,6 +67,7 @@ func GetOrCreate( ...@@ -67,6 +67,7 @@ func GetOrCreate(
return &session, nil return &session, nil
} }
} }
klog.Infof("No existing vCenter session found, creating new session")
soapURL, err := soap.ParseURL(server) soapURL, err := soap.ParseURL(server)
if err != nil { if err != nil {
...@@ -76,20 +77,26 @@ func GetOrCreate( ...@@ -76,20 +77,26 @@ func GetOrCreate(
return nil, fmt.Errorf("error parsing vSphere URL %q", server) return nil, fmt.Errorf("error parsing vSphere URL %q", server)
} }
soapURL.User = url.UserPassword(username, password) // Set user to nil there for prevent login during client creation.
// See https://github.com/vmware/govmomi/blob/master/client.go#L91
soapURL.User = nil
client, err := govmomi.NewClient(ctx, soapURL, insecure) client, err := govmomi.NewClient(ctx, soapURL, insecure)
if err != nil { if err != nil {
return nil, fmt.Errorf("error setting up new vSphere SOAP client: %w", err) return nil, fmt.Errorf("error setting up new vSphere SOAP client: %w", err)
} }
// Set up user agent before login for being able to track mapi component in vcenter sessions list
client.UserAgent = "machineAPIvSphereProvider"
if err := client.Login(ctx, url.UserPassword(username, password)); err != nil {
return nil, fmt.Errorf("unable to login to vCenter: %w", err)
}
session := Session{ session := Session{
Client: client, Client: client,
username: username, username: username,
password: password, password: password,
} }
session.UserAgent = "machineAPIvSphereProvider"
session.Finder = find.NewFinder(session.Client.Client, false) session.Finder = find.NewFinder(session.Client.Client, false)
dc, err := session.Finder.DatacenterOrDefault(ctx, datacenter) dc, err := session.Finder.DatacenterOrDefault(ctx, datacenter)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment