Help us shape the future of Go! Take the 2026 Go Developer Survey

task

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2020 License: Apache-2.0 Imports: 35 Imported by: 1

Documentation

Index

Constants

View Source
const (
	CheckToolsPathDir = "/tmp/tiup"
)

place the check utilities are stored

Variables

View Source
var (
	CheckTypeSystemInfo   = "insight"
	CheckTypeSystemLimits = "limits"
	CheckTypeSystemConfig = "system"
	CheckTypePort         = "port"
	CheckTypeService      = "service"
	CheckTypePackage      = "package"
	CheckTypePartitions   = "partitions"
	CheckTypeFIO          = "fio"
)

the check types

View Source
var (
	// ErrUnsupportedRollback means the task do not support rollback.
	ErrUnsupportedRollback = stderrors.New("unsupported rollback")
	// ErrNoExecutor means not being able to get the executor.
	ErrNoExecutor = stderrors.New("no executor")
	// ErrNoOutput means not being able to get the output of host.
	ErrNoOutput = stderrors.New("no outputs available")
)
View Source
var (

	// ErrEnvInitFailed is ErrEnvInitFailed
	ErrEnvInitFailed = errNSEnvInit.NewType("failed")
)

Functions

This section is empty.

Types

type BackupComponent

type BackupComponent struct {
	// contains filtered or unexported fields
}

BackupComponent is used to copy all files related the specific version a component to the target directory of path

func (*BackupComponent) Execute

func (c *BackupComponent) Execute(ctx *Context) error

Execute implements the Task interface

func (*BackupComponent) Rollback

func (c *BackupComponent) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*BackupComponent) String

func (c *BackupComponent) String() string

String implements the fmt.Stringer interface

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

Builder is used to build TiOps task

func NewBuilder

func NewBuilder() *Builder

NewBuilder returns a *Builder instance

func (*Builder) BackupComponent

func (b *Builder) BackupComponent(component, fromVer string, host, deployDir string) *Builder

BackupComponent appends a BackupComponent task to the current task collection

func (*Builder) Build

func (b *Builder) Build() Task

Build returns a task that contains all tasks appended by previous operation

func (*Builder) BuildAsStep

func (b *Builder) BuildAsStep(prefix string) *StepDisplay

BuildAsStep returns a task that is wrapped by a StepDisplay. The task will print single line progress.

func (*Builder) CheckSys

func (b *Builder) CheckSys(host, dataDir, checkType string, topo meta.Specification, opt *operator.CheckOptions) *Builder

CheckSys checks system information of deploy server

func (*Builder) ClusterOperate

func (b *Builder) ClusterOperate(
	spec meta.Specification,
	op operator.Operation,
	options operator.Options,
) *Builder

ClusterOperate appends a cluster operation task. All the UserSSH needed must be init first.

func (*Builder) ClusterSSH

func (b *Builder) ClusterSSH(spec meta.Specification, deployUser string, sshTimeout int64) *Builder

ClusterSSH init all UserSSH need for the cluster.

func (*Builder) CopyComponent

func (b *Builder) CopyComponent(component, os, arch string,
	version string,
	dstHost, dstDir string,
) *Builder

CopyComponent appends a CopyComponent task to the current task collection

func (*Builder) CopyFile

func (b *Builder) CopyFile(src, dst, server string, download bool) *Builder

CopyFile appends a CopyFile task to the current task collection

func (*Builder) Download

func (b *Builder) Download(component, os, arch string, version string) *Builder

Download appends a Downloader task to the current task collection

func (*Builder) EnvInit

func (b *Builder) EnvInit(host, deployUser string) *Builder

EnvInit appends a EnvInit task to the current task collection

func (*Builder) Func

func (b *Builder) Func(name string, fn func(ctx *Context) error) *Builder

Func append a func task.

func (*Builder) InitConfig

func (b *Builder) InitConfig(clusterName, clusterVersion string, inst meta.Instance, deployUser string, paths meta.DirPaths) *Builder

InitConfig appends a CopyComponent task to the current task collection

func (*Builder) InstallPackage

func (b *Builder) InstallPackage(srcPath, dstHost, dstDir string) *Builder

InstallPackage appends a InstallPackage task to the current task collection

func (*Builder) Limit

func (b *Builder) Limit(host, domain, limit, item, value string) *Builder

Limit set a system limit

func (*Builder) Mkdir

func (b *Builder) Mkdir(user, host string, dirs ...string) *Builder

Mkdir appends a Mkdir task to the current task collection

func (*Builder) MonitoredConfig

func (b *Builder) MonitoredConfig(name, comp, host string, globResCtl meta.ResourceControl, options meta.MonitoredOptions, deployUser string, paths meta.DirPaths) *Builder

MonitoredConfig appends a CopyComponent task to the current task collection

func (*Builder) Parallel

func (b *Builder) Parallel(tasks ...Task) *Builder

Parallel appends a parallel task to the current task collection

func (*Builder) ParallelStep

func (b *Builder) ParallelStep(prefix string, tasks ...*StepDisplay) *Builder

ParallelStep appends a new ParallelStepDisplay task, which will print multi line progress in parallel for inner tasks. Inner tasks must be a StepDisplay task.

func (*Builder) Rmdir

func (b *Builder) Rmdir(host string, dirs ...string) *Builder

Rmdir appends a Rmdir task to the current task collection

func (*Builder) RootSSH

func (b *Builder) RootSSH(
	host string,
	port int,
	user, password, keyFile, passphrase string,
	sshTimeout int64,
) *Builder

RootSSH appends a RootSSH task to the current task collection

func (*Builder) SSHKeyGen

func (b *Builder) SSHKeyGen(keypath string) *Builder

SSHKeyGen appends a SSHKeyGen task to the current task collection

func (*Builder) SSHKeySet

func (b *Builder) SSHKeySet(privKeyPath, pubKeyPath string) *Builder

SSHKeySet appends a SSHKeySet task to the current task collection

func (*Builder) ScaleConfig

func (b *Builder) ScaleConfig(clusterName, clusterVersion string, base meta.Specification, inst meta.Instance, deployUser string, paths meta.DirPaths) *Builder

ScaleConfig generate temporary config on scaling

func (*Builder) Serial

func (b *Builder) Serial(tasks ...Task) *Builder

Serial appends the tasks to the tail of queue

func (*Builder) Shell

func (b *Builder) Shell(host, command string, sudo bool) *Builder

Shell command on cluster host

func (*Builder) Step

func (b *Builder) Step(prefix string, inner Task) *Builder

Step appends a new StepDisplay task, which will print single line progress for inner tasks.

func (*Builder) Sysctl

func (b *Builder) Sysctl(host, key, val string) *Builder

Sysctl set a kernel parameter

func (*Builder) SystemCtl

func (b *Builder) SystemCtl(host, unit, action string) *Builder

SystemCtl run systemctl on host

func (*Builder) UpdateDMMeta

func (b *Builder) UpdateDMMeta(cluster string, metadata *meta.DMMeta, deletedNodeIds []string) *Builder

UpdateDMMeta maintain the dm meta information

func (*Builder) UpdateMeta

func (b *Builder) UpdateMeta(cluster string, metadata *meta.ClusterMeta, deletedNodeIds []string) *Builder

UpdateMeta maintain the meta information

func (*Builder) UpdateTopology

func (b *Builder) UpdateTopology(cluster string, metadata *meta.ClusterMeta, deletedNodeIds []string) *Builder

UpdateTopology maintain the topology information

func (*Builder) UserSSH

func (b *Builder) UserSSH(host string, port int, deployUser string, sshTimeout int64) *Builder

UserSSH append a UserSSH task to the current task collection

type CheckSys

type CheckSys struct {
	// contains filtered or unexported fields
}

CheckSys performs checks of system information

func (*CheckSys) Execute

func (c *CheckSys) Execute(ctx *Context) error

Execute implements the Task interface

func (*CheckSys) Rollback

func (c *CheckSys) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*CheckSys) String

func (c *CheckSys) String() string

String implements the fmt.Stringer interface

type ClusterOperate

type ClusterOperate struct {
	// contains filtered or unexported fields
}

ClusterOperate represents the cluster operation task.

func (*ClusterOperate) Execute

func (c *ClusterOperate) Execute(ctx *Context) error

Execute implements the Task interface

func (*ClusterOperate) Rollback

func (c *ClusterOperate) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*ClusterOperate) String

func (c *ClusterOperate) String() string

String implements the fmt.Stringer interface

type Context

type Context struct {

	// The public/private key is used to access remote server via the user `tidb`
	PrivateKeyPath string
	PublicKeyPath  string
	// contains filtered or unexported fields
}

Context is used to share state while multiple tasks execution. We should use mutex to prevent concurrent R/W for some fields because of the same context can be shared in parallel tasks.

func NewContext

func NewContext() *Context

NewContext create a context instance.

func (*Context) Get

func (ctx *Context) Get(host string) (e executor.TiOpsExecutor)

Get implements operation ExecutorGetter interface.

func (*Context) GetCheckResults

func (ctx *Context) GetCheckResults(host string) (results []*operator.CheckResult, ok bool)

GetCheckResults get the the check result of a host (if has any)

func (*Context) GetExecutor

func (ctx *Context) GetExecutor(host string) (e executor.TiOpsExecutor, ok bool)

GetExecutor get the executor.

func (*Context) GetOutputs

func (ctx *Context) GetOutputs(host string) ([]byte, []byte, bool)

GetOutputs get the outputs of a host (if has any)

func (*Context) SetCheckResults

func (ctx *Context) SetCheckResults(host string, results []*operator.CheckResult)

SetCheckResults append the check result of a host to the list

func (*Context) SetClusterSSH

func (ctx *Context) SetClusterSSH(topo meta.Specification, deployUser string, sshTimeout int64) error

SetClusterSSH set cluster user ssh executor in context.

func (*Context) SetExecutor

func (ctx *Context) SetExecutor(host string, e executor.TiOpsExecutor)

SetExecutor set the executor.

func (*Context) SetOutputs

func (ctx *Context) SetOutputs(host string, stdout []byte, stderr []byte)

SetOutputs set the outputs of a host

func (*Context) SetSSHKeySet

func (ctx *Context) SetSSHKeySet(privateKeyPath string, publicKeyPath string) error

SetSSHKeySet set ssh key set.

type CopyComponent

type CopyComponent struct {
	// contains filtered or unexported fields
}

CopyComponent is used to copy all files related the specific version a component to the target directory of path

func (*CopyComponent) Execute

func (c *CopyComponent) Execute(ctx *Context) error

Execute implements the Task interface

func (*CopyComponent) Rollback

func (c *CopyComponent) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*CopyComponent) String

func (c *CopyComponent) String() string

String implements the fmt.Stringer interface

type CopyFile

type CopyFile struct {
	// contains filtered or unexported fields
}

CopyFile will copy a local file to the target host

func (*CopyFile) Execute

func (c *CopyFile) Execute(ctx *Context) error

Execute implements the Task interface

func (*CopyFile) Rollback

func (c *CopyFile) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*CopyFile) String

func (c *CopyFile) String() string

String implements the fmt.Stringer interface

type Downloader

type Downloader struct {
	// contains filtered or unexported fields
}

Downloader is used to download the specific version of a component from the repository, there is nothing to do if the specified version exists.

func NewDownloader

func NewDownloader(component string, os string, arch string, version string) *Downloader

NewDownloader create a Downloader instance.

func (*Downloader) Execute

func (d *Downloader) Execute(_ *Context) error

Execute implements the Task interface

func (*Downloader) Rollback

func (d *Downloader) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*Downloader) String

func (d *Downloader) String() string

String implements the fmt.Stringer interface

type EnvInit

type EnvInit struct {
	// contains filtered or unexported fields
}

EnvInit is used to initialize the remote environment, e.g: 1. Generate SSH key 2. ssh-copy-id

func (*EnvInit) Execute

func (e *EnvInit) Execute(ctx *Context) error

Execute implements the Task interface

func (*EnvInit) Rollback

func (e *EnvInit) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*EnvInit) String

func (e *EnvInit) String() string

String implements the fmt.Stringer interface

type EventBus

type EventBus struct {
	// contains filtered or unexported fields
}

EventBus is an event bus for task events.

func NewEventBus

func NewEventBus() EventBus

NewEventBus creates a new EventBus.

func (*EventBus) PublishTaskBegin

func (ev *EventBus) PublishTaskBegin(task Task)

PublishTaskBegin publishes a TaskBegin event. This should be called only by Parallel or Serial.

func (*EventBus) PublishTaskFinish

func (ev *EventBus) PublishTaskFinish(task Task, err error)

PublishTaskFinish publishes a TaskFinish event. This should be called only by Parallel or Serial.

func (*EventBus) PublishTaskProgress

func (ev *EventBus) PublishTaskProgress(task Task, progress string)

PublishTaskProgress publishes a TaskProgress event.

func (*EventBus) Subscribe

func (ev *EventBus) Subscribe(eventName EventKind, handler interface{})

Subscribe subscribes events.

func (*EventBus) Unsubscribe

func (ev *EventBus) Unsubscribe(eventName EventKind, handler interface{})

Unsubscribe unsubscribes events.

type EventKind

type EventKind string

EventKind is the task event kind.

const (
	// EventTaskBegin is emitted when a task is going to be executed.
	EventTaskBegin EventKind = "task_begin"
	// EventTaskFinish is emitted when a task finishes executing.
	EventTaskFinish EventKind = "task_finish"
	// EventTaskProgress is emitted when a task has made some progress.
	EventTaskProgress EventKind = "task_progress"
)

type Func

type Func struct {
	// contains filtered or unexported fields
}

Func wrap a closure.

func NewFunc

func NewFunc(name string, fn func(ctx *Context) error) *Func

NewFunc create a Func task

func (*Func) Execute

func (m *Func) Execute(ctx *Context) error

Execute implements the Task interface

func (*Func) Rollback

func (m *Func) Rollback(_ *Context) error

Rollback implements the Task interface

func (*Func) String

func (m *Func) String() string

String implements the fmt.Stringer interface

type InitConfig

type InitConfig struct {
	// contains filtered or unexported fields
}

InitConfig is used to copy all configurations to the target directory of path

func (*InitConfig) Execute

func (c *InitConfig) Execute(ctx *Context) error

Execute implements the Task interface

func (*InitConfig) Rollback

func (c *InitConfig) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*InitConfig) String

func (c *InitConfig) String() string

String implements the fmt.Stringer interface

type InstallPackage

type InstallPackage struct {
	// contains filtered or unexported fields
}

InstallPackage is used to copy all files related the specific version a component to the target directory of path

func (*InstallPackage) Execute

func (c *InstallPackage) Execute(ctx *Context) error

Execute implements the Task interface

func (*InstallPackage) Rollback

func (c *InstallPackage) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*InstallPackage) String

func (c *InstallPackage) String() string

String implements the fmt.Stringer interface

type Limit

type Limit struct {
	// contains filtered or unexported fields
}

Limit set a system limit on host

func (*Limit) Execute

func (l *Limit) Execute(ctx *Context) error

Execute implements the Task interface

func (*Limit) Rollback

func (l *Limit) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*Limit) String

func (l *Limit) String() string

String implements the fmt.Stringer interface

type Mkdir

type Mkdir struct {
	// contains filtered or unexported fields
}

Mkdir is used to create directory on the target host

func (*Mkdir) Execute

func (m *Mkdir) Execute(ctx *Context) error

Execute implements the Task interface

func (*Mkdir) Rollback

func (m *Mkdir) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*Mkdir) String

func (m *Mkdir) String() string

String implements the fmt.Stringer interface

type MonitoredConfig

type MonitoredConfig struct {
	// contains filtered or unexported fields
}

MonitoredConfig is used to generate the monitor node configuration

func (*MonitoredConfig) Execute

func (m *MonitoredConfig) Execute(ctx *Context) error

Execute implements the Task interface

func (*MonitoredConfig) Rollback

func (m *MonitoredConfig) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*MonitoredConfig) String

func (m *MonitoredConfig) String() string

String implements the fmt.Stringer interface

type Parallel

type Parallel struct {
	// contains filtered or unexported fields
}

Parallel will execute a bundle of task in parallelism way

func NewParallel

func NewParallel(hideDetailDisplay bool, tasks ...Task) *Parallel

NewParallel create a Parallel task.

func (*Parallel) Execute

func (pt *Parallel) Execute(ctx *Context) error

Execute implements the Task interface

func (*Parallel) Rollback

func (pt *Parallel) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*Parallel) String

func (pt *Parallel) String() string

String implements the fmt.Stringer interface

type ParallelStepDisplay

type ParallelStepDisplay struct {
	// contains filtered or unexported fields
}

ParallelStepDisplay is a task that will display multiple progress bars in parallel for inner tasks. Inner tasks will be executed in parallel.

func (*ParallelStepDisplay) Execute

func (ps *ParallelStepDisplay) Execute(ctx *Context) error

Execute implements the Task interface

func (*ParallelStepDisplay) Rollback

func (ps *ParallelStepDisplay) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*ParallelStepDisplay) String

func (ps *ParallelStepDisplay) String() string

String implements the fmt.Stringer interface

type Rmdir

type Rmdir struct {
	// contains filtered or unexported fields
}

Rmdir is used to delete directory on the target host

func (*Rmdir) Execute

func (r *Rmdir) Execute(ctx *Context) error

Execute implements the Task interface

func (*Rmdir) Rollback

func (r *Rmdir) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*Rmdir) String

func (r *Rmdir) String() string

String implements the fmt.Stringer interface

type RootSSH

type RootSSH struct {
	// contains filtered or unexported fields
}

RootSSH is used to establish a SSH connection to the target host with specific key

func (*RootSSH) Execute

func (s *RootSSH) Execute(ctx *Context) error

Execute implements the Task interface

func (*RootSSH) Rollback

func (s *RootSSH) Rollback(ctx *Context) error

Rollback implements the Task interface

func (RootSSH) String

func (s RootSSH) String() string

String implements the fmt.Stringer interface

type SSHKeyGen

type SSHKeyGen struct {
	// contains filtered or unexported fields
}

SSHKeyGen is used to generate SSH key

func (*SSHKeyGen) Execute

func (s *SSHKeyGen) Execute(ctx *Context) error

Execute implements the Task interface

func (*SSHKeyGen) Rollback

func (s *SSHKeyGen) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*SSHKeyGen) String

func (s *SSHKeyGen) String() string

String implements the fmt.Stringer interface

type SSHKeySet

type SSHKeySet struct {
	// contains filtered or unexported fields
}

SSHKeySet is used to set the Context private/public key path

func (*SSHKeySet) Execute

func (s *SSHKeySet) Execute(ctx *Context) error

Execute implements the Task interface

func (*SSHKeySet) Rollback

func (s *SSHKeySet) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*SSHKeySet) String

func (s *SSHKeySet) String() string

String implements the fmt.Stringer interface

type ScaleConfig

type ScaleConfig struct {
	// contains filtered or unexported fields
}

ScaleConfig is used to copy all configurations to the target directory of path

func (*ScaleConfig) Execute

func (c *ScaleConfig) Execute(ctx *Context) error

Execute implements the Task interface

func (*ScaleConfig) Rollback

func (c *ScaleConfig) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*ScaleConfig) String

func (c *ScaleConfig) String() string

String implements the fmt.Stringer interface

type Serial

type Serial struct {
	// contains filtered or unexported fields
}

Serial will execute a bundle of task in serialized way

func (*Serial) Execute

func (s *Serial) Execute(ctx *Context) error

Execute implements the Task interface

func (*Serial) Rollback

func (s *Serial) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*Serial) String

func (s *Serial) String() string

String implements the fmt.Stringer interface

type Shell

type Shell struct {
	// contains filtered or unexported fields
}

Shell is used to create directory on the target host

func (*Shell) Execute

func (m *Shell) Execute(ctx *Context) error

Execute implements the Task interface

func (*Shell) Rollback

func (m *Shell) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*Shell) String

func (m *Shell) String() string

String implements the fmt.Stringer interface

type StepDisplay

type StepDisplay struct {
	// contains filtered or unexported fields
}

StepDisplay is a task that will display a progress bar for inner task.

func (*StepDisplay) Execute

func (s *StepDisplay) Execute(ctx *Context) error

Execute implements the Task interface

func (*StepDisplay) Rollback

func (s *StepDisplay) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*StepDisplay) SetHidden

func (s *StepDisplay) SetHidden(h bool) *StepDisplay

SetHidden set step hidden or not.

func (*StepDisplay) String

func (s *StepDisplay) String() string

String implements the fmt.Stringer interface

type Sysctl

type Sysctl struct {
	// contains filtered or unexported fields
}

Sysctl set a kernel param on host

func (*Sysctl) Execute

func (s *Sysctl) Execute(ctx *Context) error

Execute implements the Task interface

func (*Sysctl) Rollback

func (s *Sysctl) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*Sysctl) String

func (s *Sysctl) String() string

String implements the fmt.Stringer interface

type SystemCtl

type SystemCtl struct {
	// contains filtered or unexported fields
}

SystemCtl run systemctl command on host

func (*SystemCtl) Execute

func (c *SystemCtl) Execute(ctx *Context) error

Execute implements the Task interface

func (*SystemCtl) Rollback

func (c *SystemCtl) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*SystemCtl) String

func (c *SystemCtl) String() string

String implements the fmt.Stringer interface

type Task

type Task interface {
	fmt.Stringer
	Execute(ctx *Context) error
	Rollback(ctx *Context) error
}

Task represents a operation while TiOps execution

type UpdateDMMeta

type UpdateDMMeta struct {
	// contains filtered or unexported fields
}

UpdateDMMeta is used to maintain the DM meta information

func (*UpdateDMMeta) Execute

func (u *UpdateDMMeta) Execute(ctx *Context) error

Execute implements the Task interface

func (*UpdateDMMeta) Rollback

func (u *UpdateDMMeta) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*UpdateDMMeta) String

func (u *UpdateDMMeta) String() string

String implements the fmt.Stringer interface

type UpdateMeta

type UpdateMeta struct {
	// contains filtered or unexported fields
}

UpdateMeta is used to maintain the cluster meta information

func (*UpdateMeta) Execute

func (u *UpdateMeta) Execute(ctx *Context) error

Execute implements the Task interface

func (*UpdateMeta) Rollback

func (u *UpdateMeta) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*UpdateMeta) String

func (u *UpdateMeta) String() string

String implements the fmt.Stringer interface

type UpdateTopology

type UpdateTopology struct {
	// contains filtered or unexported fields
}

UpdateTopology is used to maintain the cluster meta information

func (*UpdateTopology) Execute

func (u *UpdateTopology) Execute(ctx *Context) error

Execute implements the Task interface

func (*UpdateTopology) Rollback

func (u *UpdateTopology) Rollback(ctx *Context) error

Rollback implements the Task interface

func (*UpdateTopology) String

func (u *UpdateTopology) String() string

String implements the fmt.Stringer interface

type UserSSH

type UserSSH struct {
	// contains filtered or unexported fields
}

UserSSH is used to establish a SSH connection to the target host with generated key

func (*UserSSH) Execute

func (s *UserSSH) Execute(ctx *Context) error

Execute implements the Task interface

func (*UserSSH) Rollback

func (s *UserSSH) Rollback(ctx *Context) error

Rollback implements the Task interface

func (UserSSH) String

func (s UserSSH) String() string

String implements the fmt.Stringer interface

Jump to

Keyboard shortcuts

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