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.