Documentation ¶
Index ¶
- Constants
- Variables
- type BackupComponent
- type Builder
- func (b *Builder) BackupComponent(component, fromVer string, host, deployDir string) *Builder
- func (b *Builder) Build() Task
- func (b *Builder) BuildAsStep(prefix string) *StepDisplay
- func (b *Builder) CheckSys(host, dataDir, checkType string, topo *meta.TopologySpecification, ...) *Builder
- func (b *Builder) ClusterOperate(spec meta.Specification, op operator.Operation, options operator.Options) *Builder
- func (b *Builder) ClusterSSH(spec meta.Specification, deployUser string, sshTimeout int64) *Builder
- func (b *Builder) CopyComponent(component, os, arch string, version string, dstHost, dstDir string) *Builder
- func (b *Builder) CopyFile(src, dst, server string, download bool) *Builder
- func (b *Builder) Download(component, os, arch string, version string) *Builder
- func (b *Builder) EnvInit(host, deployUser string) *Builder
- func (b *Builder) Func(name string, fn func(ctx *Context) error) *Builder
- func (b *Builder) InitConfig(clusterName, clusterVersion string, inst meta.Instance, deployUser string, ...) *Builder
- func (b *Builder) InstallPackage(srcPath, dstHost, dstDir string) *Builder
- func (b *Builder) Limit(host, domain, limit, item, value string) *Builder
- func (b *Builder) Mkdir(user, host string, dirs ...string) *Builder
- func (b *Builder) MonitoredConfig(name, comp, host string, globResCtl meta.ResourceControl, ...) *Builder
- func (b *Builder) Parallel(tasks ...Task) *Builder
- func (b *Builder) ParallelStep(prefix string, tasks ...*StepDisplay) *Builder
- func (b *Builder) Rmdir(host string, dirs ...string) *Builder
- func (b *Builder) RootSSH(host string, port int, user, password, keyFile, passphrase string, ...) *Builder
- func (b *Builder) SSHKeyGen(keypath string) *Builder
- func (b *Builder) SSHKeySet(privKeyPath, pubKeyPath string) *Builder
- func (b *Builder) ScaleConfig(clusterName, clusterVersion string, base *meta.TopologySpecification, ...) *Builder
- func (b *Builder) Serial(tasks ...Task) *Builder
- func (b *Builder) Shell(host, command string, sudo bool) *Builder
- func (b *Builder) Step(prefix string, inner Task) *Builder
- func (b *Builder) Sysctl(host, key, val string) *Builder
- func (b *Builder) SystemCtl(host, unit, action string) *Builder
- func (b *Builder) UpdateMeta(cluster string, metadata *meta.ClusterMeta, deletedNodeIds []string) *Builder
- func (b *Builder) UpdateTopology(cluster string, metadata *meta.ClusterMeta, deletedNodeIds []string) *Builder
- func (b *Builder) UserSSH(host string, port int, deployUser string, sshTimeout int64) *Builder
- type CheckSys
- type ClusterOperate
- type Context
- func (ctx *Context) Get(host string) (e executor.TiOpsExecutor)
- func (ctx *Context) GetCheckResults(host string) (results []*operator.CheckResult, ok bool)
- func (ctx *Context) GetExecutor(host string) (e executor.TiOpsExecutor, ok bool)
- func (ctx *Context) GetOutputs(host string) ([]byte, []byte, bool)
- func (ctx *Context) SetCheckResults(host string, results []*operator.CheckResult)
- func (ctx *Context) SetClusterSSH(topo meta.Specification, deployUser string, sshTimeout int64) error
- func (ctx *Context) SetExecutor(host string, e executor.TiOpsExecutor)
- func (ctx *Context) SetOutputs(host string, stdout []byte, stderr []byte)
- func (ctx *Context) SetSSHKeySet(privateKeyPath string, publicKeyPath string) error
- type CopyComponent
- type CopyFile
- type Downloader
- type EnvInit
- type EventBus
- func (ev *EventBus) PublishTaskBegin(task Task)
- func (ev *EventBus) PublishTaskFinish(task Task, err error)
- func (ev *EventBus) PublishTaskProgress(task Task, progress string)
- func (ev *EventBus) Subscribe(eventName EventKind, handler interface{})
- func (ev *EventBus) Unsubscribe(eventName EventKind, handler interface{})
- type EventKind
- type Func
- type InitConfig
- type InstallPackage
- type Limit
- type Mkdir
- type MonitoredConfig
- type Parallel
- type ParallelStepDisplay
- type Rmdir
- type RootSSH
- type SSHKeyGen
- type SSHKeySet
- type ScaleConfig
- type Serial
- type Shell
- type StepDisplay
- type Sysctl
- type SystemCtl
- type Task
- type UpdateMeta
- type UpdateTopology
- type UserSSH
Constants ¶
const (
CheckToolsPathDir = "/tmp/tiup"
)
place the check utilities are stored
Variables ¶
var ( CheckTypeSystemInfo = "insight" CheckTypeSystemLimits = "limits" CheckTypeSystemConfig = "system" CheckTypePort = "port" CheckTypeService = "service" CheckTypePackage = "package" CheckTypePartitions = "partitions" CheckTypeFIO = "fio" )
the check types
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") )
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 (*Builder) BackupComponent ¶
BackupComponent appends a BackupComponent task to the current task collection
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 ¶ added in v0.5.0
func (b *Builder) CheckSys(host, dataDir, checkType string, topo *meta.TopologySpecification, 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 ¶
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) 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 ¶ added in v0.4.9
InstallPackage appends a InstallPackage 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) 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) 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) ScaleConfig ¶
func (b *Builder) ScaleConfig(clusterName, clusterVersion string, base *meta.TopologySpecification, inst meta.Instance, deployUser string, paths meta.DirPaths) *Builder
ScaleConfig generate temporary config on scaling
func (*Builder) Step ¶
Step appends a new StepDisplay task, which will print single line progress for inner tasks.
func (*Builder) UpdateMeta ¶
func (b *Builder) UpdateMeta(cluster string, metadata *meta.ClusterMeta, deletedNodeIds []string) *Builder
UpdateMeta maintain the meta information
func (*Builder) UpdateTopology ¶ added in v0.6.1
func (b *Builder) UpdateTopology(cluster string, metadata *meta.ClusterMeta, deletedNodeIds []string) *Builder
UpdateTopology maintain the topology information
type CheckSys ¶ added in v0.5.0
type CheckSys struct {
// contains filtered or unexported fields
}
CheckSys performs checks of system information
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 (*Context) Get ¶
func (ctx *Context) Get(host string) (e executor.TiOpsExecutor)
Get implements operation ExecutorGetter interface.
func (*Context) GetCheckResults ¶ added in v0.5.0
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 ¶ added in v0.4.9
GetOutputs get the outputs of a host (if has any)
func (*Context) SetCheckResults ¶ added in v0.5.0
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 ¶ added in v0.4.9
SetOutputs set the outputs of a host
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
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 ¶ added in v0.6.3
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
type EventBus ¶
type EventBus struct {
// contains filtered or unexported fields
}
EventBus is an event bus for task events.
func (*EventBus) PublishTaskBegin ¶
PublishTaskBegin publishes a TaskBegin event. This should be called only by Parallel or Serial.
func (*EventBus) PublishTaskFinish ¶
PublishTaskFinish publishes a TaskFinish event. This should be called only by Parallel or Serial.
func (*EventBus) PublishTaskProgress ¶
PublishTaskProgress publishes a TaskProgress event.
func (*EventBus) Unsubscribe ¶
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.
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 ¶ added in v0.4.9
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 ¶ added in v0.4.9
func (c *InstallPackage) Execute(ctx *Context) error
Execute implements the Task interface
func (*InstallPackage) Rollback ¶ added in v0.4.9
func (c *InstallPackage) Rollback(ctx *Context) error
Rollback implements the Task interface
func (*InstallPackage) String ¶ added in v0.4.9
func (c *InstallPackage) String() string
String implements the fmt.Stringer interface
type Limit ¶ added in v0.5.0
type Limit struct {
// contains filtered or unexported fields
}
Limit set a system limit on host
type Mkdir ¶
type Mkdir struct {
// contains filtered or unexported fields
}
Mkdir is used to create directory on the target host
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 ¶ added in v0.6.3
NewParallel create a Parallel task.
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 ¶ added in v0.5.0
type Rmdir struct {
// contains filtered or unexported fields
}
Rmdir is used to delete directory on the target host
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
type SSHKeyGen ¶
type SSHKeyGen struct {
// contains filtered or unexported fields
}
SSHKeyGen is used to generate SSH key
type SSHKeySet ¶
type SSHKeySet struct {
// contains filtered or unexported fields
}
SSHKeySet is used to set the Context private/public key path
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
type Shell ¶
type Shell struct {
// contains filtered or unexported fields
}
Shell is used to create directory on the target host
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 ¶ added in v0.6.3
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 ¶ added in v0.5.0
type Sysctl struct {
// contains filtered or unexported fields
}
Sysctl set a kernel param on host
type SystemCtl ¶ added in v0.5.0
type SystemCtl struct {
// contains filtered or unexported fields
}
SystemCtl run systemctl command on host
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 ¶ added in v0.6.1
type UpdateTopology struct {
// contains filtered or unexported fields
}
UpdateTopology is used to maintain the cluster meta information
func (*UpdateTopology) Execute ¶ added in v0.6.1
func (u *UpdateTopology) Execute(ctx *Context) error
Execute implements the Task interface
func (*UpdateTopology) Rollback ¶ added in v0.6.1
func (u *UpdateTopology) Rollback(ctx *Context) error
Rollback implements the Task interface
func (*UpdateTopology) String ¶ added in v0.6.1
func (u *UpdateTopology) String() string
String implements the fmt.Stringer interface
Source Files ¶
- action.go
- backup_component.go
- builder.go
- check.go
- context.go
- copy_component.go
- copy_file.go
- download.go
- env_init.go
- event_bus.go
- func.go
- init_config.go
- install_package.go
- limits.go
- mkdir.go
- monitored_config.go
- rmdir.go
- scale_config.go
- shell.go
- ssh.go
- ssh_keygen.go
- ssh_keyset.go
- step.go
- sysctl.go
- systemd.go
- task.go
- update_meta.go
- update_topology.go