package toolbox
import "github.com/vmware/govmomi/guest/toolbox"
Index ¶
- type Client
- func NewClient(ctx context.Context, c *vim25.Client, vm mo.Reference, auth types.BaseGuestAuthentication) (*Client, error)
- func (c *Client) Download(ctx context.Context, src string) (io.ReadCloser, int64, error)
- func (c *Client) Run(ctx context.Context, cmd *exec.Cmd) error
- func (c *Client) Upload(ctx context.Context, src io.Reader, dst string, p soap.Upload, attr types.BaseGuestFileAttributes, force bool) error
Examples ¶
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 ¶
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) Download ¶
Download initiates a file transfer from the guest
func (*Client) Run ¶
Run implements exec.Cmd.Run over vmx guest RPC against standard vmware-tools or toolbox.
Code:play
Output: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)
})
}
Linux
func (*Client) Upload ¶
func (c *Client) Upload(ctx context.Context, src io.Reader, dst string, p soap.Upload, attr types.BaseGuestFileAttributes, force bool) error
Upload transfers a file to the guest
Source Files ¶
- Version
- v0.48.1 (latest)
- Published
- Feb 11, 2025
- Platform
- linux/amd64
- Imports
- 17 packages
- Last checked
- 2 months ago –
Tools for package owners.