Documentation
¶
Overview ¶
Package ssh contains abstractions which manage SSH connections for the user, allowing for faster and easier remote execution
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
// MultiRun provides an easy shorthand for multiple calls to sshExec
MultiRun(commands ...string) ([]string, error)
// FastMultiRun speeds up remote execution by chaining commands together
FastMultiRun(commands ...string) (string, error)
// Run executes a given command on the connected remote machine.
Run(command string) (string, error)
// KeepTryRun attempts to run a command successfully multiple times. It will
// keep trying until it reaches the max amount of tries or it is successful once.
KeepTryRun(command string) (string, error)
// DockerExec executes a command inside of a node
DockerExec(node Node, command string) (string, error)
// DockerCp copies a file on a remote machine from source to the dest in the node
DockerCp(node Node, source string, dest string) error
// KeepTryDockerExec is like KeepTryRun for nodes
KeepTryDockerExec(node Node, command string) (string, error)
// KeepTryDockerExecAll is like KeepTryRun for nodes, but can handle more than one command.
// Executes the given commands in order.
KeepTryDockerExecAll(node Node, commands ...string) ([]string, error)
// DockerExecd runs the given command, and then returns immediately.
// This function will not return the output of the command.
// This is useful if you are starting a persistent process inside a container
DockerExecd(node Node, command string) (string, error)
// DockerExecdit runs the given command, and then returns immediately.
// This function will not return the output of the command.
// This is useful if you are starting a persistent process inside a container.
// Also flags the session as interactive and sets up a virtual tty.
DockerExecdit(node Node, command string) (string, error)
//DockerRunMainDaemon should be used to start the main daemon process
DockerRunMainDaemon(node Node, command string) error
// DockerExecdLog will cause the stdout and stderr of the command to be stored in the logs.
// Should only be used for the blockchain process.
DockerExecdLog(node Node, command string) error
// DockerExecdLogAppend will cause the stdout and stderr of the command to be stored in the logs.
// Should only be used for the blockchain process. Will append to existing logs.
DockerExecdLogAppend(node Node, command string) error
// DockerRead will read a file on a node, if lines > -1 then
// it will return the last `lines` lines of the file
DockerRead(node Node, file string, lines int) (string, error)
// DockerMultiExec will run all of the given commands strung together with && on
// the given node.
DockerMultiExec(node Node, commands []string) (string, error)
// KTDockerMultiExec is like DockerMultiExec, except it keeps attempting the command after
// failure
KTDockerMultiExec(node Node, commands []string) (string, error)
// Scp is a wrapper for the scp command. Can be used to copy
// a file over to a remote machine.
Scp(src string, dest string) error
// Close cleans up the resources used by sshClient object
Close()
}
Client maintains a persistent connect with a server, allowing commands to be run on that server. This object is thread safe.
type Node ¶ added in v1.7.1
type Node interface {
GetID() string
GetAbsoluteNumber() int
GetIP() string
GetRelativeNumber() int
GetServerID() int
GetTestNetID() string
GetNodeName() string
}
Node represents the interface which all nodes must follow.
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
Session is a simple wrapper for golang's ssh.Session, which decrements a semaphore on destruction.
func NewSession ¶
NewSession creates a new session from a native library ssh session and a semaphore
Click to show internal directories.
Click to hide internal directories.