Documentation ¶
Index ¶
- Constants
- Variables
- func IsRegularError(err error) bool
- func IsSoapFault(err error) bool
- func IsVimFault(err error) bool
- func ParseURL(s string) (*url.URL, error)
- func ThumbprintSHA1(cert *x509.Certificate) string
- func ToRegularError(err error) error
- func ToVimFault(err error) types.BaseMethodFault
- func Wrap(err error) error
- func WrapRegularError(err error) error
- func WrapSoapFault(f *Fault) error
- func WrapVimFault(v types.BaseMethodFault) error
- type Client
- func (c *Client) Certificate() *tls.Certificate
- func (c *Client) CloseIdleConnections()
- func (c *Client) Do(ctx context.Context, req *http.Request, f func(*http.Response) error) error
- func (c *Client) Download(ctx context.Context, u *url.URL, param *Download) (io.ReadCloser, int64, error)
- func (c *Client) DownloadFile(ctx context.Context, file string, u *url.URL, param *Download) error
- func (c *Client) DownloadRequest(ctx context.Context, u *url.URL, param *Download) (*http.Response, error)
- func (c *Client) LoadThumbprints(file string) error
- func (c *Client) MarshalJSON() ([]byte, error)
- func (c *Client) NewServiceClient(path string, namespace string) *Client
- func (c *Client) ParseURL(urlStr string) (*url.URL, error)
- func (c *Client) RoundTrip(ctx context.Context, reqBody, resBody HasFault) error
- func (c *Client) SetCertificate(cert tls.Certificate)
- func (c *Client) SetRootCAs(file string) error
- func (c *Client) SetThumbprint(host string, thumbprint string)
- func (c *Client) Thumbprint(host string) string
- func (c *Client) Tunnel() *Client
- func (c *Client) URL() *url.URL
- func (c *Client) UnmarshalJSON(b []byte) error
- func (c *Client) Upload(ctx context.Context, f io.Reader, u *url.URL, param *Upload) error
- func (c *Client) UploadFile(ctx context.Context, file string, u *url.URL, param *Upload) error
- func (c *Client) WithHeader(ctx context.Context, header Header) context.Context
- func (c *Client) WriteFile(ctx context.Context, file string, src io.Reader, size int64, s progress.Sinker, ...) error
- type Download
- type Envelope
- type Fault
- type HasFault
- type Header
- type RoundTripper
- type Signer
- type Upload
Constants ¶
const (
SessionCookieName = "vmware_soap_session"
)
Variables ¶
var DefaultDownload = Download{
Method: "GET",
}
var DefaultUpload = Upload{
Type: "application/octet-stream",
Method: "PUT",
}
Functions ¶
func IsRegularError ¶
func IsSoapFault ¶
func IsVimFault ¶
func ParseURL ¶
ParseURL is wrapper around url.Parse, where Scheme defaults to "https" and Path defaults to "/sdk"
func ThumbprintSHA1 ¶
func ThumbprintSHA1(cert *x509.Certificate) string
ThumbprintSHA1 returns the thumbprint of the given cert in the same format used by the SDK and Client.SetThumbprint.
See: SSLVerifyFault.Thumbprint, SessionManagerGenericServiceTicket.Thumbprint, HostConnectSpec.SslThumbprint
func ToRegularError ¶
func ToVimFault ¶
func ToVimFault(err error) types.BaseMethodFault
func WrapRegularError ¶
func WrapSoapFault ¶
func WrapVimFault ¶
func WrapVimFault(v types.BaseMethodFault) error
Types ¶
type Client ¶
type Client struct { http.Client Namespace string // Vim namespace Version string // Vim version UserAgent string // contains filtered or unexported fields }
func (*Client) Certificate ¶
func (c *Client) Certificate() *tls.Certificate
func (*Client) CloseIdleConnections ¶
func (c *Client) CloseIdleConnections()
func (*Client) Download ¶
func (c *Client) Download(ctx context.Context, u *url.URL, param *Download) (io.ReadCloser, int64, error)
Download GETs the remote file from the given URL
func (*Client) DownloadFile ¶
DownloadFile GETs the given URL to a local file
func (*Client) DownloadRequest ¶
func (c *Client) DownloadRequest(ctx context.Context, u *url.URL, param *Download) (*http.Response, error)
DownloadRequest wraps http.Client.Do, returning the http.Response without checking its StatusCode
func (*Client) LoadThumbprints ¶
LoadThumbprints from file with the give name. If name is empty or name does not exist this function will return nil.
func (*Client) MarshalJSON ¶
func (*Client) NewServiceClient ¶
NewServiceClient creates a NewClient with the given URL.Path and namespace.
func (*Client) ParseURL ¶
ParseURL wraps url.Parse to rewrite the URL.Host field In the case of VM guest uploads or NFC lease URLs, a Host field with a value of "*" is rewritten to the Client's URL.Host.
func (*Client) SetCertificate ¶
func (c *Client) SetCertificate(cert tls.Certificate)
func (*Client) SetRootCAs ¶
SetRootCAs defines the set of root certificate authorities that clients use when verifying server certificates. By default TLS uses the host's root CA set.
See: http.Client.Transport.TLSClientConfig.RootCAs
func (*Client) SetThumbprint ¶
SetThumbprint sets the known certificate thumbprint for the given host. A custom DialTLS function is used to support thumbprint based verification. We first try tls.Dial with the default tls.Config, only falling back to thumbprint verification if it fails with an x509.UnknownAuthorityError or x509.HostnameError
See: http.Client.Transport.DialTLS
func (*Client) Thumbprint ¶
Thumbprint returns the certificate thumbprint for the given host if known to this client.
func (*Client) Tunnel ¶
Tunnel returns a Client configured to proxy requests through vCenter's http port 80, to the SDK tunnel virtual host. Use of the SDK tunnel is required by LoginExtensionByCertificate() and optional for other methods.
func (*Client) UnmarshalJSON ¶
func (*Client) UploadFile ¶
UploadFile PUTs the local file to the given URL
func (*Client) WithHeader ¶
WithHeader can be used to modify the outgoing request soap.Header fields.
type Fault ¶
type Fault struct { XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault"` Code string `xml:"faultcode"` String string `xml:"faultstring"` Detail struct { Fault types.AnyType `xml:",any,typeattr"` } `xml:"detail"` }
func ToSoapFault ¶
type Header ¶
type Header struct { Action string `xml:"-"` // Action is the 'SOAPAction' HTTP header value. Defaults to "Client.Namespace/Client.Version". Cookie string `xml:"vcSessionCookie,omitempty"` // Cookie is a vCenter session cookie that can be used with other SDK endpoints (e.g. pbm). ID string `xml:"operationID,omitempty"` // ID is the operationID used by ESX/vCenter logging for correlation. Security interface{} `xml:",omitempty"` // Security is used for SAML token authentication and request signing. }
Header includes optional soap Header fields.