vtworkerclient

package
v0.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package vtworkerclient contains the generic client side of the remote vtworker protocol.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterFactory

func RegisterFactory(name string, factory Factory)

RegisterFactory allows a client implementation to register itself.

func RunCommandAndWait

func RunCommandAndWait(ctx context.Context, server string, args []string, recv func(*logutilpb.Event)) error

RunCommandAndWait executes a single command on a given vtworker and blocks until the command did return or timed out. Output from vtworker is streamed as logutil.Event messages which have to be consumed by the caller who has to specify a "recv" function.

func UnregisterFactoryForTest

func UnregisterFactoryForTest(name string)

UnregisterFactoryForTest allows to unregister a client implementation from the static map. This function is used by unit tests to cleanly unregister any fake implementations. This way, a test package can use the same name for different fakes and no dangling fakes are left behind in the static factories map after the test.

Types

type Client

type Client interface {
	// ExecuteVtworkerCommand will execute the command remotely.
	ExecuteVtworkerCommand(ctx context.Context, args []string) (logutil.EventStream, error)

	// Close will terminate the connection. This object won't be
	// used after this.
	Close()
}

Client defines the interface used to send remote vtworker commands

func New

func New(addr string) (Client, error)

New allows a user of the client library to get its implementation.

type Factory

type Factory func(addr string) (Client, error)

Factory functions are registered by client implementations.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL