Documentation ¶
Index ¶
- Variables
- type Builder
- func (b *Builder) Build() Task
- func (b *Builder) BuildAsStep(prefix string) *StepDisplay
- func (b *Builder) ClusterSSH(topo spec.Topology, deployUser string, sshTimeout, exeTimeout uint64) *Builder
- func (b *Builder) CopyComponent(pkgSrc, component, os, arch string, version string, ...) *Builder
- func (b *Builder) Download(component, os, arch string, version string) *Builder
- func (b *Builder) EnvInit(host, deployUser string, userGroup string) *Builder
- func (b *Builder) Func(name string, fn func(ctx context.Context) error) *Builder
- func (b *Builder) InitConfig(clusterName, clusterVersion string, specManager *spec.SpecManager, ...) *Builder
- func (b *Builder) Mkdir(user, host string, dirs ...string) *Builder
- func (b *Builder) MonitoredConfig(clusterName, comp, host string, info *spec.MonitorHostInfo, ...) *Builder
- func (b *Builder) Parallel(ignoreError bool, tasks ...Task) *Builder
- func (b *Builder) ParallelStep(prefix string, ignoreError bool, tasks ...*StepDisplay) *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) Serial(tasks ...Task) *Builder
- func (b *Builder) Step(prefix string, inner Task, logger *logprinter.Logger) *Builder
- func (b *Builder) UserAction(host, deployUser string, userGroup string, skipCreateUser bool) *Builder
- func (b *Builder) UserSSH(host string, port int, deployUser string, sshTimeout, exeTimeout uint64) *Builder
- type CopyComponent
- type Downloader
- type EnvInit
- type Func
- type InitConfig
- type InstallPackage
- type Mkdir
- type MonitoredConfig
- type Parallel
- type ParallelStepDisplay
- type RootSSH
- type SSHKeyGen
- type SSHKeySet
- type Serial
- type StepDisplay
- type Task
- type UserAction
- type UserActionOpt
- type UserSSH
Constants ¶
This section is empty.
Variables ¶
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 Builder ¶
type Builder struct { Logger *logprinter.Logger // contains filtered or unexported fields }
Builder is used to build task
func NewBuilder ¶
func NewBuilder(logger *logprinter.Logger) *Builder
NewBuilder returns a *Builder instance
func NewSimpleUerSSH ¶
func NewSimpleUerSSH(logger *logprinter.Logger, host string, port int, user string, sshTimeout, exeTimeout uint64) *Builder
NewSimpleUerSSH append a UserSSH task to the current task collection with operator.Options and SSHConnectionProps
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) ClusterSSH ¶
func (b *Builder) ClusterSSH( topo spec.Topology, deployUser string, sshTimeout, exeTimeout uint64) *Builder
ClusterSSH init all UserSSH need for the cluster.
func (*Builder) CopyComponent ¶
func (b *Builder) CopyComponent(pkgSrc, component, os, arch string, version string, srcPath, dstHost, dstDir string, ) *Builder
CopyComponent appends a CopyComponent task to the current task collection
func (*Builder) InitConfig ¶
func (b *Builder) InitConfig(clusterName, clusterVersion string, specManager *spec.SpecManager, inst spec.Instance, deployUser string, ignoreCheck bool, paths meta.DirPaths) *Builder
InitConfig appends a CopyComponent task to the current task collection
func (*Builder) MonitoredConfig ¶
func (b *Builder) MonitoredConfig(clusterName, comp, host string, info *spec.MonitorHostInfo, globResCtl meta.ResourceControl, options *spec.TSMonitoredOptions, deployUser string, tlsEnabled bool, paths meta.DirPaths) *Builder
MonitoredConfig appends a CopyComponent task to the current task collection
func (*Builder) ParallelStep ¶
func (b *Builder) ParallelStep(prefix string, ignoreError bool, 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, exeTimeout uint64) *Builder
RootSSH appends a RootSSH task to the current task collection
func (*Builder) Step ¶
Step appends a new StepDisplay task, which will print single line progress for inner tasks.
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.Context) error
Execute implements the Task interface
func (*CopyComponent) Rollback ¶
func (c *CopyComponent) Rollback(ctx context.Context) error
Rollback implements the Task interface
func (*CopyComponent) String ¶
func (c *CopyComponent) 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.Context) error
Execute implements the Task interface
func (*Downloader) Rollback ¶
func (d *Downloader) Rollback(ctx context.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 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.Context) error
Execute implements the Task interface
func (*InitConfig) Rollback ¶
func (c *InitConfig) Rollback(ctx context.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.Context) error
Execute implements the Task interface
func (*InstallPackage) Rollback ¶
func (c *InstallPackage) Rollback(ctx context.Context) error
Rollback implements the Task interface
func (*InstallPackage) String ¶
func (c *InstallPackage) 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
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.Context) error
Execute implements the Task interface
func (*MonitoredConfig) Rollback ¶
func (m *MonitoredConfig) Rollback(ctx context.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
type ParallelStepDisplay ¶
type ParallelStepDisplay struct { Logger *logprinter.Logger // 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.Context) error
Execute implements the Task interface
func (*ParallelStepDisplay) Rollback ¶
func (ps *ParallelStepDisplay) Rollback(ctx context.Context) error
Rollback implements the Task interface
func (*ParallelStepDisplay) SetLogger ¶
func (ps *ParallelStepDisplay) SetLogger(logger *logprinter.Logger) *ParallelStepDisplay
SetLogger set the logger of step
func (*ParallelStepDisplay) String ¶
func (ps *ParallelStepDisplay) 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
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 Serial ¶
type Serial struct {
// contains filtered or unexported fields
}
Serial will execute a bundle of task in serialized way
type StepDisplay ¶
type StepDisplay struct { Logger *logprinter.Logger // 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.Context) error
Execute implements the Task interface
func (*StepDisplay) Rollback ¶
func (s *StepDisplay) Rollback(ctx context.Context) error
Rollback implements the Task interface
func (*StepDisplay) SetLogger ¶
func (s *StepDisplay) SetLogger(logger *logprinter.Logger) *StepDisplay
SetLogger set the logger of step
func (*StepDisplay) String ¶
func (s *StepDisplay) String() string
String implements the fmt.Stringer interface
type Task ¶
type Task interface { fmt.Stringer Execute(ctx context.Context) error Rollback(ctx context.Context) error }
Task represents a operation while gemix execution
type UserAction ¶
type UserAction struct {
// contains filtered or unexported fields
}
UserAction is used to create user or del user on the target host
func (*UserAction) Execute ¶
func (u *UserAction) Execute(ctx context.Context) error
Execute implements the Task interface
func (*UserAction) Rollback ¶
func (u *UserAction) Rollback(ctx context.Context) error
Rollback implements the Task interface
func (*UserAction) String ¶
func (u *UserAction) String() string
String implements the fmt.Stringer interface
type UserActionOpt ¶
type UserActionOpt string
const ( UserActionAdd UserActionOpt = "add" UserActionDel UserActionOpt = "del" )