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 Executor ¶ added in v1.0.7
type Executor 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
}
Executor is the executor interface for TiOps, all tasks will in the end be passed to a executor and then be actually performed.
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
Locale string // the locale used when executing the command
Sudo bool // all commands run with this executor will be using sudo
}
SSHExecutor implements Executor 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.
Click to show internal directories.
Click to hide internal directories.