package session
import "github.com/vmware/govmomi/session"
Index ¶
- Variables
- func KeepAlive(roundTripper soap.RoundTripper, idleTime time.Duration) soap.RoundTripper
- func KeepAliveHandler(roundTripper soap.RoundTripper, idleTime time.Duration, handler func(soap.RoundTripper) error) soap.RoundTripper
- func Secret(value string) (string, error)
- type Manager
- func NewManager(client *vim25.Client) *Manager
- func (sm *Manager) AcquireCloneTicket(ctx context.Context) (string, error)
- func (sm *Manager) AcquireGenericServiceTicket(ctx context.Context, spec types.BaseSessionManagerServiceRequestSpec) (*types.SessionManagerGenericServiceTicket, error)
- func (sm *Manager) AcquireLocalTicket(ctx context.Context, userName string) (*types.SessionManagerLocalTicket, error)
- func (sm *Manager) CloneSession(ctx context.Context, ticket string) error
- func (sm *Manager) ImpersonateUser(ctx context.Context, name string) error
- func (sm *Manager) Login(ctx context.Context, u *url.Userinfo) error
- func (sm *Manager) LoginByToken(ctx context.Context) error
- func (sm *Manager) LoginExtensionByCertificate(ctx context.Context, key string) error
- func (sm *Manager) Logout(ctx context.Context) error
- func (sm *Manager) Reference() types.ManagedObjectReference
- func (sm *Manager) SessionIsActive(ctx context.Context) (bool, error)
- func (sm *Manager) SetLocale(ctx context.Context, locale string) error
- func (sm *Manager) TerminateSession(ctx context.Context, sessionId []string) error
- func (sm *Manager) UpdateServiceMessage(ctx context.Context, message string) error
- func (sm *Manager) UserSession(ctx context.Context) (*types.UserSession, error)
Examples ¶
Variables ¶
Locale defaults to "en_US" and can be overridden via this var or the GOVMOMI_LOCALE env var. A value of "_" uses the server locale setting.
Functions ¶
func KeepAlive ¶
func KeepAlive(roundTripper soap.RoundTripper, idleTime time.Duration) soap.RoundTripper
KeepAlive is a backward compatible wrapper around KeepAliveHandler.
func KeepAliveHandler ¶
func KeepAliveHandler(roundTripper soap.RoundTripper, idleTime time.Duration, handler func(soap.RoundTripper) error) soap.RoundTripper
KeepAliveHandler is a backward compatible wrapper around keepalive.NewHandlerSOAP.
func Secret ¶
Secret returns the contents if a file path value is given, otherwise returns value itself.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func (*Manager) AcquireCloneTicket ¶
func (*Manager) AcquireGenericServiceTicket ¶
func (sm *Manager) AcquireGenericServiceTicket(ctx context.Context, spec types.BaseSessionManagerServiceRequestSpec) (*types.SessionManagerGenericServiceTicket, error)
func (*Manager) AcquireLocalTicket ¶
func (sm *Manager) AcquireLocalTicket(ctx context.Context, userName string) (*types.SessionManagerLocalTicket, error)
func (*Manager) CloneSession ¶
func (*Manager) ImpersonateUser ¶
func (*Manager) Login ¶
func (*Manager) LoginByToken ¶
Example¶
Code:play
package main import ( "context" "fmt" "net/url" _ "github.com/vmware/govmomi/lookup/simulator" "github.com/vmware/govmomi/session" "github.com/vmware/govmomi/simulator" "github.com/vmware/govmomi/sts" "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/soap" _ "github.com/vmware/govmomi/sts/simulator" ) func main() { simulator.Run(func(ctx context.Context, vc *vim25.Client) error { c, err := sts.NewClient(ctx, vc) if err != nil { return err } // Issue a bearer token req := sts.TokenRequest{ Userinfo: url.UserPassword("Administrator@VSPHERE.LOCAL", "password"), } signer, err := c.Issue(ctx, req) if err != nil { return err } // Create a new un-authenticated client and LoginByToken vc2, err := vim25.NewClient(ctx, soap.NewClient(vc.URL(), true)) if err != nil { return err } m := session.NewManager(vc2) header := soap.Header{Security: signer} err = m.LoginByToken(vc2.WithHeader(ctx, header)) if err != nil { return err } session, err := m.UserSession(ctx) if err != nil { return err } fmt.Println(session.UserName) return nil }) }
Output:
Administrator@VSPHERE.LOCAL
func (*Manager) LoginExtensionByCertificate ¶
LoginExtensionByCertificate uses the vCenter SDK tunnel to login using a client certificate. The client certificate can be set using the soap.Client.SetCertificate method. See: https://kb.vmware.com/s/article/2004305
func (*Manager) Logout ¶
func (*Manager) Reference ¶
func (sm *Manager) Reference() types.ManagedObjectReference
func (*Manager) SessionIsActive ¶
SessionIsActive checks whether the session that was created at login is still valid. This function only works against vCenter.
func (*Manager) SetLocale ¶
func (*Manager) TerminateSession ¶
func (*Manager) UpdateServiceMessage ¶
func (*Manager) UserSession ¶
UserSession retrieves and returns the SessionManager's CurrentSession field. Nil is returned if the session is not authenticated.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
session/cache | |
session/keepalive |
- Version
- v0.48.1 (latest)
- Published
- Feb 11, 2025
- Platform
- linux/amd64
- Imports
- 14 packages
- Last checked
- 2 months ago –
Tools for package owners.