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.