executor

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 28, 2020 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrPropSSHCommand is ErrPropSSHCommand
	ErrPropSSHCommand = errorx.RegisterPrintableProperty("ssh_command")
	// ErrPropSSHStdout is ErrPropSSHStdout
	ErrPropSSHStdout = errorx.RegisterPrintableProperty("ssh_stdout")
	// ErrPropSSHStderr is ErrPropSSHStderr
	ErrPropSSHStderr = errorx.RegisterPrintableProperty("ssh_stderr")

	// ErrSSHExecuteFailed is ErrSSHExecuteFailed
	ErrSSHExecuteFailed = errNSSSH.NewType("execute_failed")
	// ErrSSHExecuteTimedout is ErrSSHExecuteTimedout
	ErrSSHExecuteTimedout = errNSSSH.NewType("execute_timedout")
)

Functions

This section is empty.

Types

type SSHConfig

type SSHConfig struct {
	Host       string // hostname of the SSH server
	Port       int    // port of the SSH server
	User       string // username to login to the SSH server
	Password   string // password of the user
	KeyFile    string // path to the private key file
	Passphrase string // passphrase of the private key file
	// Timeout is the maximum amount of time for the TCP connection to establish.
	Timeout time.Duration
}

SSHConfig is the configuration needed to establish SSH connection.

type SSHExecutor

type SSHExecutor struct {
	Config *easyssh.MakeConfig
	Sudo   bool // all commands run with this executor will be using sudo
}

SSHExecutor implements TiOpsExecutor with SSH as transportation layer.

func NewSSHExecutor

func NewSSHExecutor(c SSHConfig, sudo bool) *SSHExecutor

NewSSHExecutor create a ssh executor.

func (*SSHExecutor) Execute

func (e *SSHExecutor) Execute(cmd string, sudo bool, timeout ...time.Duration) ([]byte, []byte, error)

Execute run the command via SSH, it's not invoking any specific shell by default.

func (*SSHExecutor) Initialize

func (e *SSHExecutor) Initialize(config SSHConfig)

Initialize builds and initializes a SSHExecutor

func (*SSHExecutor) Transfer

func (e *SSHExecutor) Transfer(src string, dst string, download bool) error

Transfer copies files via SCP This function depends on `scp` (a tool from OpenSSH or other SSH implementation) This function is based on easyssh.MakeConfig.Scp() but with support of copying file from remote to local.

type TiOpsExecutor

type TiOpsExecutor interface {
	// Execute run the command, then return it's stdout and stderr
	// NOTE: stdin is not supported as it seems we don't need it (for now). If
	// at some point in the future we need to pass stdin to a command, we'll
	// need to refactor this function and its implementations.
	// If the cmd can't quit in timeout, it will return error, the default timeout is 60 seconds.
	Execute(cmd string, sudo bool, timeout ...time.Duration) (stdout []byte, stderr []byte, err error)

	// Transfer copies files from or to a target
	Transfer(src string, dst string, download bool) error
}

TiOpsExecutor is the executor interface for TiOps, all tasks will in the end be passed to a executor and then be actually performed.

Jump to

Keyboard shortcuts

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