in tools/cli/admin.go [1032:1230]
func newAdminFailoverCommands() []cli.Command {
return []cli.Command{
{
Name: "start",
Aliases: []string{"s"},
Usage: "start failover workflow",
Flags: []cli.Flag{
cli.StringFlag{
Name: FlagTargetClusterWithAlias,
Usage: "Target cluster name",
},
cli.StringFlag{
Name: FlagSourceClusterWithAlias,
Usage: "Source cluster name",
},
cli.IntFlag{
Name: FlagFailoverTimeoutWithAlias,
Usage: "Optional graceful failover timeout in seconds. If this field is define, the failover will use graceful failover.",
},
cli.IntFlag{
Name: FlagExecutionTimeoutWithAlias,
Usage: "Optional Failover workflow timeout in seconds",
Value: defaultFailoverWorkflowTimeoutInSeconds,
},
cli.IntFlag{
Name: FlagFailoverWaitTimeWithAlias,
Usage: "Optional Failover wait time after each batch in seconds",
Value: defaultBatchFailoverWaitTimeInSeconds,
},
cli.IntFlag{
Name: FlagFailoverBatchSizeWithAlias,
Usage: "Optional number of domains to failover in one batch",
Value: defaultBatchFailoverSize,
},
cli.StringSliceFlag{
Name: FlagFailoverDomains,
Usage: "Optional domains to failover, eg d1,d2..,dn. " +
"Only provided domains in source cluster will be failover.",
},
cli.IntFlag{
Name: FlagFailoverDrillWaitTimeWithAlias,
Usage: "Optional failover drill wait time. " +
"After the wait time, the domains will be reset to original regions." +
"This field is required if the cron schedule is specified.",
},
cli.StringFlag{
Name: FlagCronSchedule,
Usage: "Optional cron schedule on failover drill. Please specify failover drill wait time " +
"if this field is specific",
},
},
Action: func(c *cli.Context) {
AdminFailoverStart(c)
},
},
{
Name: "pause",
Aliases: []string{"p"},
Usage: "pause failover workflow",
Flags: []cli.Flag{
cli.StringFlag{
Name: FlagRunIDWithAlias,
Usage: "Optional Failover workflow runID, default is latest runID",
},
cli.BoolFlag{
Name: FlagFailoverDrillWithAlias,
Usage: "Optional to pause failover workflow or failover drill workflow." +
" The default is normal failover workflow",
},
},
Action: func(c *cli.Context) {
AdminFailoverPause(c)
},
},
{
Name: "resume",
Aliases: []string{"re"},
Usage: "resume paused failover workflow",
Flags: []cli.Flag{
cli.StringFlag{
Name: FlagRunIDWithAlias,
Usage: "Optional Failover workflow runID, default is latest runID",
},
cli.BoolFlag{
Name: FlagFailoverDrillWithAlias,
Usage: "Optional to resume failover workflow or failover drill workflow." +
" The default is normal failover workflow",
},
},
Action: func(c *cli.Context) {
AdminFailoverResume(c)
},
},
{
Name: "query",
Aliases: []string{"q"},
Usage: "query failover workflow state",
Flags: []cli.Flag{
cli.BoolFlag{
Name: FlagFailoverDrillWithAlias,
Usage: "Optional to query failover workflow or failover drill workflow." +
" The default is normal failover workflow",
},
cli.StringFlag{
Name: FlagRunIDWithAlias,
Usage: "Optional Failover workflow runID, default is latest runID",
},
},
Action: func(c *cli.Context) {
AdminFailoverQuery(c)
},
},
{
Name: "abort",
Aliases: []string{"a"},
Usage: "abort failover workflow",
Flags: []cli.Flag{
cli.StringFlag{
Name: FlagRunIDWithAlias,
Usage: "Optional Failover workflow runID, default is latest runID",
},
cli.StringFlag{
Name: FlagReasonWithAlias,
Usage: "Optional reason why abort",
},
cli.BoolFlag{
Name: FlagFailoverDrillWithAlias,
Usage: "Optional to abort failover workflow or failover drill workflow." +
" The default is normal failover workflow",
},
},
Action: func(c *cli.Context) {
AdminFailoverAbort(c)
},
},
{
Name: "rollback",
Aliases: []string{"ro"},
Usage: "rollback failover workflow",
Flags: []cli.Flag{
cli.StringFlag{
Name: FlagRunIDWithAlias,
Usage: "Optional Failover workflow runID, default is latest runID",
},
cli.IntFlag{
Name: FlagFailoverTimeoutWithAlias,
Usage: "Optional graceful failover timeout in seconds. If this field is define, the failover will use graceful failover.",
},
cli.IntFlag{
Name: FlagExecutionTimeoutWithAlias,
Usage: "Optional Failover workflow timeout in seconds",
Value: defaultFailoverWorkflowTimeoutInSeconds,
},
cli.IntFlag{
Name: FlagFailoverWaitTimeWithAlias,
Usage: "Optional Failover wait time after each batch in seconds",
Value: defaultBatchFailoverWaitTimeInSeconds,
},
cli.IntFlag{
Name: FlagFailoverBatchSizeWithAlias,
Usage: "Optional number of domains to failover in one batch",
Value: defaultBatchFailoverSize,
},
},
Action: func(c *cli.Context) {
AdminFailoverRollback(c)
},
},
{
Name: "list",
Aliases: []string{"l"},
Usage: "list failover workflow runs closed/open. This is just a simplified list cmd",
Flags: []cli.Flag{
cli.BoolFlag{
Name: FlagOpenWithAlias,
Usage: "List for open workflow executions, default is to list for closed ones",
},
cli.IntFlag{
Name: FlagPageSizeWithAlias,
Value: 10,
Usage: "Result page size",
},
cli.StringFlag{
Name: FlagWorkflowIDWithAlias,
Usage: "Ignore this. It is a dummy flag which will be forced overwrite",
},
cli.BoolFlag{
Name: FlagFailoverDrillWithAlias,
Usage: "Optional to query failover workflow or failover drill workflow." +
" The default is normal failover workflow",
},
},
Action: func(c *cli.Context) {
AdminFailoverList(c)
},
},
}
}