Switch phase commands to use refactored command objects

Change-Id: I1f9f1620d6e0d3ac836e0189f403b7f794818d53
Relates-To: #342
This commit is contained in:
Kostiantyn Kalynovskyi 2020-09-09 00:12:28 -05:00 committed by Kostyantyn Kalynovskyi
parent c46cdebe48
commit 5c6709478b
2 changed files with 10 additions and 33 deletions

View File

@ -15,13 +15,10 @@
package phase
import (
"fmt"
"github.com/spf13/cobra"
"opendev.org/airship/airshipctl/pkg/config"
"opendev.org/airship/airshipctl/pkg/phase"
"opendev.org/airship/airshipctl/pkg/util"
)
const (
@ -34,30 +31,15 @@ are executed in parallel.
// NewPlanCommand creates a command which prints available phases
func NewPlanCommand(cfgFactory config.Factory) *cobra.Command {
p := &phase.PlanCommand{Factory: cfgFactory}
planCmd := &cobra.Command{
Use: "plan",
Short: "List phases",
Long: cmdLong[1:],
RunE: func(cmd *cobra.Command, args []string) error {
cfg, err := cfgFactory()
if err != nil {
return err
}
p := &phase.Cmd{Config: cfg}
phases, err := p.Plan()
if err != nil {
return err
}
tw := util.NewTabWriter(cmd.OutOrStdout())
defer tw.Flush()
fmt.Fprintf(tw, "GROUP\tPHASE\n")
for group, phaseList := range phases {
fmt.Fprintf(tw, "%s\t\n", group)
for _, phase := range phaseList {
fmt.Fprintf(tw, "\t%s\n", phase)
}
}
return nil
p.Writer = cmd.OutOrStdout()
return p.RunE()
},
}
return planCmd

View File

@ -18,8 +18,6 @@ import (
"github.com/spf13/cobra"
"opendev.org/airship/airshipctl/pkg/config"
"opendev.org/airship/airshipctl/pkg/events"
"opendev.org/airship/airshipctl/pkg/k8s/utils"
"opendev.org/airship/airshipctl/pkg/phase"
)
@ -37,8 +35,9 @@ airshipctl phase run ephemeral-control-plane
// NewRunCommand creates a command to run specific phase
func NewRunCommand(cfgFactory config.Factory) *cobra.Command {
p := &phase.Cmd{
Processor: events.NewDefaultProcessor(utils.Streams()),
p := &phase.RunCommand{
Options: phase.RunFlags{},
Factory: cfgFactory,
}
runCmd := &cobra.Command{
@ -48,17 +47,13 @@ func NewRunCommand(cfgFactory config.Factory) *cobra.Command {
Args: cobra.ExactArgs(1),
Example: runExample,
RunE: func(cmd *cobra.Command, args []string) error {
cfg, err := cfgFactory()
if err != nil {
return err
}
p.Config = cfg
return p.Exec(args[0])
p.Options.PhaseID.Name = args[0]
return p.RunE()
},
}
flags := runCmd.Flags()
flags.BoolVar(
&p.DryRun,
&p.Options.DryRun,
"dry-run",
false,
"simulate phase execution")