func (flag *ClientFlag) loadClient() (*vim25.Client, error) { c := new(vim25.Client) ok, err := flag.restoreClient(c) if err != nil { return nil, err } if !ok || !c.Valid() { return nil, nil } // Add retry functionality before making any calls c.RoundTripper = attachRetries(c.RoundTripper) m := session.NewManager(c) u, err := m.UserSession(context.TODO()) if err != nil { return nil, err } // If the session is nil, the client is not authenticated if u == nil { return nil, nil } return c, nil }
func (flag *ClientFlag) loadClient() (*vim25.Client, error) { c := new(vim25.Client) ok, err := flag.restoreClient(c) if err != nil { return nil, err } if !ok || !c.Valid() { return nil, nil } // Add retry functionality before making any calls c.RoundTripper = attachRetries(c.RoundTripper) m := session.NewManager(c) u, err := m.UserSession(context.TODO()) if err != nil { if soap.IsSoapFault(err) { fault := soap.ToSoapFault(err).VimFault() // If the PropertyCollector is not found, the saved session for this URL is not valid if _, ok := fault.(types.ManagedObjectNotFound); ok { return nil, nil } } return nil, err } // If the session is nil, the client is not authenticated if u == nil { return nil, nil } return c, nil }