Documentation ¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { ProcessManager *guest.ProcessManager FileManager *guest.FileManager Authentication types.BaseGuestAuthentication GuestFamily types.VirtualMachineGuestOsFamily }
Client attempts to expose guest.OperationsManager as idiomatic Go interfaces
func NewClient ¶ added in v0.26.0
func NewClient(ctx context.Context, c *vim25.Client, vm mo.Reference, auth types.BaseGuestAuthentication) (*Client, error)
NewClient initializes a Client's ProcessManager, FileManager and GuestFamily
func (*Client) Run ¶
Run implements exec.Cmd.Run over vmx guest RPC against standard vmware-tools or toolbox.
Example ¶
package main import ( "context" "fmt" "os" "os/exec" "github.com/vmware/govmomi/find" "github.com/vmware/govmomi/guest/toolbox" "github.com/vmware/govmomi/simulator" "github.com/vmware/govmomi/test" "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/types" ) func main() { simulator.Run(func(ctx context.Context, c *vim25.Client) error { if !test.HasDocker() { fmt.Println("Linux") return nil } vm, err := find.NewFinder(c).VirtualMachine(ctx, "DC0_H0_VM0") if err != nil { return err } err = simulator.RunContainer(ctx, c, vm, "nginx") if err != nil { return err } tools, err := toolbox.NewClient(ctx, c, vm, &types.NamePasswordAuthentication{ Username: "user", Password: "pass", }) cmd := &exec.Cmd{ Path: "uname", Stdout: os.Stdout, Stderr: os.Stderr, } return tools.Run(ctx, cmd) }) }
Output: Linux
Click to show internal directories.
Click to hide internal directories.