Add timeout flag for phase run in cli
Syntax: airshipctl phase run <PHASE_NAME> --timeout <time_unit> Exmaple: airshipctl phase run initinfra-ephemeral --debug --wait-timeout 1000s Change-Id: Ic8c699f5302eb482f32aee0e7d7c593df2ed7d3b
This commit is contained in:
parent
484a4b1549
commit
3e4c228638
@ -55,5 +55,10 @@ func NewRunCommand(cfgFactory config.Factory) *cobra.Command {
|
|||||||
"dry-run",
|
"dry-run",
|
||||||
false,
|
false,
|
||||||
"simulate phase execution")
|
"simulate phase execution")
|
||||||
|
flags.DurationVar(
|
||||||
|
&p.Options.Timeout,
|
||||||
|
"wait-timeout",
|
||||||
|
0,
|
||||||
|
"wait timeout")
|
||||||
return runCmd
|
return runCmd
|
||||||
}
|
}
|
||||||
|
@ -12,3 +12,4 @@ airshipctl phase run ephemeral-control-plane
|
|||||||
Flags:
|
Flags:
|
||||||
--dry-run simulate phase execution
|
--dry-run simulate phase execution
|
||||||
-h, --help help for run
|
-h, --help help for run
|
||||||
|
--wait-timeout duration wait timeout
|
||||||
|
@ -24,6 +24,7 @@ airshipctl phase run ephemeral-control-plane
|
|||||||
```
|
```
|
||||||
--dry-run simulate phase execution
|
--dry-run simulate phase execution
|
||||||
-h, --help help for run
|
-h, --help help for run
|
||||||
|
--wait-timeout duration wait timeout
|
||||||
```
|
```
|
||||||
|
|
||||||
### Options inherited from parent commands
|
### Options inherited from parent commands
|
||||||
|
@ -104,11 +104,17 @@ func (e *Executor) Run(ch chan events.Event, runOpts ifc.RunOptions) {
|
|||||||
if runOpts.DryRun {
|
if runOpts.DryRun {
|
||||||
dryRunStrategy = common.DryRunClient
|
dryRunStrategy = common.DryRunClient
|
||||||
}
|
}
|
||||||
|
timeout := time.Second * time.Duration(e.apiObject.Config.WaitOptions.Timeout)
|
||||||
|
if int64(runOpts.Timeout/time.Second) != 0 {
|
||||||
|
timeout = runOpts.Timeout
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Debugf("WaitTimeout: %v", timeout)
|
||||||
applyOptions := ApplyOptions{
|
applyOptions := ApplyOptions{
|
||||||
DryRunStrategy: dryRunStrategy,
|
DryRunStrategy: dryRunStrategy,
|
||||||
Prune: e.apiObject.Config.PruneOptions.Prune,
|
Prune: e.apiObject.Config.PruneOptions.Prune,
|
||||||
BundleName: e.Options.BundleName,
|
BundleName: e.Options.BundleName,
|
||||||
WaitTimeout: time.Second * time.Duration(e.apiObject.Config.WaitOptions.Timeout),
|
WaitTimeout: timeout,
|
||||||
}
|
}
|
||||||
applier.ApplyBundle(filteredBundle, applyOptions)
|
applier.ApplyBundle(filteredBundle, applyOptions)
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ package phase
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
"time"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/pkg/config"
|
"opendev.org/airship/airshipctl/pkg/config"
|
||||||
"opendev.org/airship/airshipctl/pkg/phase/ifc"
|
"opendev.org/airship/airshipctl/pkg/phase/ifc"
|
||||||
@ -24,6 +25,7 @@ import (
|
|||||||
// RunFlags options for phase run command
|
// RunFlags options for phase run command
|
||||||
type RunFlags struct {
|
type RunFlags struct {
|
||||||
DryRun bool
|
DryRun bool
|
||||||
|
Timeout time.Duration
|
||||||
PhaseID ifc.ID
|
PhaseID ifc.ID
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,7 +53,7 @@ func (c *RunCommand) RunE() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return phase.Run(ifc.RunOptions{DryRun: c.Options.DryRun})
|
return phase.Run(ifc.RunOptions{DryRun: c.Options.DryRun, Timeout: c.Options.Timeout})
|
||||||
}
|
}
|
||||||
|
|
||||||
// PlanCommand plan command
|
// PlanCommand plan command
|
||||||
|
Loading…
Reference in New Issue
Block a user