Remove AirshipCTLSettings from root level cmd
AirshipCTLSettings will no longer be used by any command, so this patch removes it from root level. Change-Id: I2aa1d80ab0785b498af1ac2c86334f9b0d9ff047 Signed-off-by: Ruslan Aliev <raliev@mirantis.com> Relates-To: #327
This commit is contained in:
parent
2166062f2e
commit
fba618225a
@ -18,7 +18,6 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/pkg/config"
|
"opendev.org/airship/airshipctl/pkg/config"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
"opendev.org/airship/airshipctl/pkg/remote"
|
"opendev.org/airship/airshipctl/pkg/remote"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -36,14 +35,12 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// NewBaremetalCommand creates a new command for interacting with baremetal using airshipctl.
|
// NewBaremetalCommand creates a new command for interacting with baremetal using airshipctl.
|
||||||
func NewBaremetalCommand(rootSettings *environment.AirshipCTLSettings) *cobra.Command {
|
func NewBaremetalCommand(cfgFactory config.Factory) *cobra.Command {
|
||||||
baremetalRootCmd := &cobra.Command{
|
baremetalRootCmd := &cobra.Command{
|
||||||
Use: "baremetal",
|
Use: "baremetal",
|
||||||
Short: "Perform actions on baremetal hosts",
|
Short: "Perform actions on baremetal hosts",
|
||||||
}
|
}
|
||||||
|
|
||||||
cfgFactory := config.CreateFactory(&rootSettings.AirshipConfigPath, &rootSettings.KubeConfigPath)
|
|
||||||
|
|
||||||
baremetalRootCmd.AddCommand(NewEjectMediaCommand(cfgFactory))
|
baremetalRootCmd.AddCommand(NewEjectMediaCommand(cfgFactory))
|
||||||
baremetalRootCmd.AddCommand(NewPowerOffCommand(cfgFactory))
|
baremetalRootCmd.AddCommand(NewPowerOffCommand(cfgFactory))
|
||||||
baremetalRootCmd.AddCommand(NewPowerOnCommand(cfgFactory))
|
baremetalRootCmd.AddCommand(NewPowerOnCommand(cfgFactory))
|
||||||
|
@ -20,7 +20,6 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/cmd/baremetal"
|
"opendev.org/airship/airshipctl/cmd/baremetal"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
"opendev.org/airship/airshipctl/testutil"
|
"opendev.org/airship/airshipctl/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -29,7 +28,7 @@ func TestBaremetal(t *testing.T) {
|
|||||||
{
|
{
|
||||||
Name: "baremetal-with-help",
|
Name: "baremetal-with-help",
|
||||||
CmdLine: "-h",
|
CmdLine: "-h",
|
||||||
Cmd: baremetal.NewBaremetalCommand(&environment.AirshipCTLSettings{}),
|
Cmd: baremetal.NewBaremetalCommand(nil),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "baremetal-ejectmedia-with-help",
|
Name: "baremetal-ejectmedia-with-help",
|
||||||
|
@ -18,7 +18,6 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/pkg/config"
|
"opendev.org/airship/airshipctl/pkg/config"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
"opendev.org/airship/airshipctl/pkg/k8s/client"
|
"opendev.org/airship/airshipctl/pkg/k8s/client"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -31,15 +30,13 @@ such as getting status and deploying initial infrastructure.
|
|||||||
)
|
)
|
||||||
|
|
||||||
// NewClusterCommand creates a command for interacting with a Kubernetes cluster.
|
// NewClusterCommand creates a command for interacting with a Kubernetes cluster.
|
||||||
func NewClusterCommand(rootSettings *environment.AirshipCTLSettings) *cobra.Command {
|
func NewClusterCommand(cfgFactory config.Factory) *cobra.Command {
|
||||||
clusterRootCmd := &cobra.Command{
|
clusterRootCmd := &cobra.Command{
|
||||||
Use: "cluster",
|
Use: "cluster",
|
||||||
Short: "Manage Kubernetes clusters",
|
Short: "Manage Kubernetes clusters",
|
||||||
Long: clusterLong[1:],
|
Long: clusterLong[1:],
|
||||||
}
|
}
|
||||||
|
|
||||||
cfgFactory := config.CreateFactory(&rootSettings.AirshipConfigPath, &rootSettings.KubeConfigPath)
|
|
||||||
|
|
||||||
clusterRootCmd.AddCommand(NewInitCommand(cfgFactory))
|
clusterRootCmd.AddCommand(NewInitCommand(cfgFactory))
|
||||||
clusterRootCmd.AddCommand(NewMoveCommand(cfgFactory))
|
clusterRootCmd.AddCommand(NewMoveCommand(cfgFactory))
|
||||||
clusterRootCmd.AddCommand(NewStatusCommand(cfgFactory, client.DefaultClient))
|
clusterRootCmd.AddCommand(NewStatusCommand(cfgFactory, client.DefaultClient))
|
||||||
|
@ -18,22 +18,15 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/cmd/cluster"
|
"opendev.org/airship/airshipctl/cmd/cluster"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
"opendev.org/airship/airshipctl/testutil"
|
"opendev.org/airship/airshipctl/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewClusterCommand(t *testing.T) {
|
func TestNewClusterCommand(t *testing.T) {
|
||||||
fakeRootSettings := &environment.AirshipCTLSettings{
|
|
||||||
AirshipConfigPath: "../../testdata/k8s/config.yaml",
|
|
||||||
KubeConfigPath: "../../testdata/k8s/kubeconfig.yaml",
|
|
||||||
}
|
|
||||||
fakeRootSettings.InitConfig()
|
|
||||||
|
|
||||||
tests := []*testutil.CmdTest{
|
tests := []*testutil.CmdTest{
|
||||||
{
|
{
|
||||||
Name: "cluster-cmd-with-help",
|
Name: "cluster-cmd-with-help",
|
||||||
CmdLine: "--help",
|
CmdLine: "--help",
|
||||||
Cmd: cluster.NewClusterCommand(fakeRootSettings),
|
Cmd: cluster.NewClusterCommand(nil),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, testcase := range tests {
|
for _, testcase := range tests {
|
||||||
|
@ -18,30 +18,16 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/pkg/config"
|
"opendev.org/airship/airshipctl/pkg/config"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewConfigCommand creates a command for interacting with the airshipctl configuration.
|
// NewConfigCommand creates a command for interacting with the airshipctl configuration.
|
||||||
func NewConfigCommand(rootSettings *environment.AirshipCTLSettings) *cobra.Command {
|
func NewConfigCommand(cfgFactory config.Factory) *cobra.Command {
|
||||||
configRootCmd := &cobra.Command{
|
configRootCmd := &cobra.Command{
|
||||||
Use: "config",
|
Use: "config",
|
||||||
DisableFlagsInUseLine: true,
|
DisableFlagsInUseLine: true,
|
||||||
Short: "Manage the airshipctl config file",
|
Short: "Manage the airshipctl config file",
|
||||||
PersistentPreRun: func(cmd *cobra.Command, args []string) {
|
|
||||||
if parentPreRun := cmd.Root().PersistentPreRun; parentPreRun != nil {
|
|
||||||
parentPreRun(cmd.Root(), args)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmd.Use == "init" {
|
|
||||||
rootSettings.Create = true
|
|
||||||
}
|
|
||||||
// Load or Initialize airship Config
|
|
||||||
rootSettings.InitConfig()
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
cfgFactory := config.CreateFactory(&rootSettings.AirshipConfigPath, &rootSettings.KubeConfigPath)
|
|
||||||
|
|
||||||
configRootCmd.AddCommand(NewGetContextCommand(cfgFactory))
|
configRootCmd.AddCommand(NewGetContextCommand(cfgFactory))
|
||||||
configRootCmd.AddCommand(NewSetContextCommand(cfgFactory))
|
configRootCmd.AddCommand(NewSetContextCommand(cfgFactory))
|
||||||
|
|
||||||
|
@ -20,7 +20,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
cmd "opendev.org/airship/airshipctl/cmd/config"
|
cmd "opendev.org/airship/airshipctl/cmd/config"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
"opendev.org/airship/airshipctl/testutil"
|
"opendev.org/airship/airshipctl/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -29,7 +28,7 @@ func TestConfig(t *testing.T) {
|
|||||||
{
|
{
|
||||||
Name: "config-cmd-with-help",
|
Name: "config-cmd-with-help",
|
||||||
CmdLine: "--help",
|
CmdLine: "--help",
|
||||||
Cmd: cmd.NewConfigCommand(&environment.AirshipCTLSettings{}),
|
Cmd: cmd.NewConfigCommand(nil),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,18 +18,15 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/pkg/config"
|
"opendev.org/airship/airshipctl/pkg/config"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewDocumentCommand creates a new command for managing airshipctl documents
|
// NewDocumentCommand creates a new command for managing airshipctl documents
|
||||||
func NewDocumentCommand(rootSettings *environment.AirshipCTLSettings) *cobra.Command {
|
func NewDocumentCommand(cfgFactory config.Factory) *cobra.Command {
|
||||||
documentRootCmd := &cobra.Command{
|
documentRootCmd := &cobra.Command{
|
||||||
Use: "document",
|
Use: "document",
|
||||||
Short: "Manage deployment documents",
|
Short: "Manage deployment documents",
|
||||||
}
|
}
|
||||||
|
|
||||||
cfgFactory := config.CreateFactory(&rootSettings.AirshipConfigPath, &rootSettings.KubeConfigPath)
|
|
||||||
|
|
||||||
documentRootCmd.AddCommand(NewPullCommand(cfgFactory))
|
documentRootCmd.AddCommand(NewPullCommand(cfgFactory))
|
||||||
documentRootCmd.AddCommand(NewPluginCommand())
|
documentRootCmd.AddCommand(NewPluginCommand())
|
||||||
|
|
||||||
|
@ -18,17 +18,15 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/cmd/document"
|
"opendev.org/airship/airshipctl/cmd/document"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
"opendev.org/airship/airshipctl/testutil"
|
"opendev.org/airship/airshipctl/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestDocument(t *testing.T) {
|
func TestDocument(t *testing.T) {
|
||||||
rootSettings := &environment.AirshipCTLSettings{}
|
|
||||||
tests := []*testutil.CmdTest{
|
tests := []*testutil.CmdTest{
|
||||||
{
|
{
|
||||||
Name: "document-with-help",
|
Name: "document-with-help",
|
||||||
CmdLine: "-h",
|
CmdLine: "-h",
|
||||||
Cmd: document.NewDocumentCommand(rootSettings),
|
Cmd: document.NewDocumentCommand(nil),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "document-plugin-with-help",
|
Name: "document-plugin-with-help",
|
||||||
|
@ -18,18 +18,15 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/pkg/config"
|
"opendev.org/airship/airshipctl/pkg/config"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewImageCommand creates a new command for managing ISO images using airshipctl.
|
// NewImageCommand creates a new command for managing ISO images using airshipctl.
|
||||||
func NewImageCommand(rootSettings *environment.AirshipCTLSettings) *cobra.Command {
|
func NewImageCommand(cfgFactory config.Factory) *cobra.Command {
|
||||||
imageRootCmd := &cobra.Command{
|
imageRootCmd := &cobra.Command{
|
||||||
Use: "image",
|
Use: "image",
|
||||||
Short: "Manage ISO image creation",
|
Short: "Manage ISO image creation",
|
||||||
}
|
}
|
||||||
|
|
||||||
cfgFactory := config.CreateFactory(&rootSettings.AirshipConfigPath, &rootSettings.KubeConfigPath)
|
|
||||||
|
|
||||||
imageRootCmd.AddCommand(NewImageBuildCommand(cfgFactory))
|
imageRootCmd.AddCommand(NewImageBuildCommand(cfgFactory))
|
||||||
|
|
||||||
return imageRootCmd
|
return imageRootCmd
|
||||||
|
@ -18,7 +18,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/cmd/image"
|
"opendev.org/airship/airshipctl/cmd/image"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
"opendev.org/airship/airshipctl/testutil"
|
"opendev.org/airship/airshipctl/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -27,7 +26,7 @@ func TestImage(t *testing.T) {
|
|||||||
{
|
{
|
||||||
Name: "image-with-help",
|
Name: "image-with-help",
|
||||||
CmdLine: "-h",
|
CmdLine: "-h",
|
||||||
Cmd: image.NewImageCommand(&environment.AirshipCTLSettings{}),
|
Cmd: image.NewImageCommand(nil),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/pkg/config"
|
"opendev.org/airship/airshipctl/pkg/config"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -29,15 +28,13 @@ such as getting list and applying specific one.
|
|||||||
)
|
)
|
||||||
|
|
||||||
// NewPhaseCommand creates a command for interacting with phases
|
// NewPhaseCommand creates a command for interacting with phases
|
||||||
func NewPhaseCommand(rootSettings *environment.AirshipCTLSettings) *cobra.Command {
|
func NewPhaseCommand(cfgFactory config.Factory) *cobra.Command {
|
||||||
phaseRootCmd := &cobra.Command{
|
phaseRootCmd := &cobra.Command{
|
||||||
Use: "phase",
|
Use: "phase",
|
||||||
Short: "Manage phases",
|
Short: "Manage phases",
|
||||||
Long: clusterLong[1:],
|
Long: clusterLong[1:],
|
||||||
}
|
}
|
||||||
|
|
||||||
cfgFactory := config.CreateFactory(&rootSettings.AirshipConfigPath, &rootSettings.KubeConfigPath)
|
|
||||||
|
|
||||||
phaseRootCmd.AddCommand(NewApplyCommand(cfgFactory))
|
phaseRootCmd.AddCommand(NewApplyCommand(cfgFactory))
|
||||||
phaseRootCmd.AddCommand(NewRenderCommand(cfgFactory))
|
phaseRootCmd.AddCommand(NewRenderCommand(cfgFactory))
|
||||||
phaseRootCmd.AddCommand(NewPlanCommand(cfgFactory))
|
phaseRootCmd.AddCommand(NewPlanCommand(cfgFactory))
|
||||||
|
@ -18,22 +18,15 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"opendev.org/airship/airshipctl/cmd/phase"
|
"opendev.org/airship/airshipctl/cmd/phase"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
"opendev.org/airship/airshipctl/testutil"
|
"opendev.org/airship/airshipctl/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewPhaseCommand(t *testing.T) {
|
func TestNewPhaseCommand(t *testing.T) {
|
||||||
fakeRootSettings := &environment.AirshipCTLSettings{
|
|
||||||
AirshipConfigPath: "../../testdata/k8s/config.yaml",
|
|
||||||
KubeConfigPath: "../../testdata/k8s/kubeconfig.yaml",
|
|
||||||
}
|
|
||||||
fakeRootSettings.InitConfig()
|
|
||||||
|
|
||||||
tests := []*testutil.CmdTest{
|
tests := []*testutil.CmdTest{
|
||||||
{
|
{
|
||||||
Name: "phase-cmd-with-help",
|
Name: "phase-cmd-with-help",
|
||||||
CmdLine: "--help",
|
CmdLine: "--help",
|
||||||
Cmd: phase.NewPhaseCommand(fakeRootSettings),
|
Cmd: phase.NewPhaseCommand(nil),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, testcase := range tests {
|
for _, testcase := range tests {
|
||||||
|
62
cmd/root.go
62
cmd/root.go
@ -16,8 +16,10 @@ package cmd
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
|
|
||||||
// Import to initialize client auth plugins.
|
// Import to initialize client auth plugins.
|
||||||
_ "k8s.io/client-go/plugin/pkg/client/auth"
|
_ "k8s.io/client-go/plugin/pkg/client/auth"
|
||||||
@ -30,54 +32,76 @@ import (
|
|||||||
"opendev.org/airship/airshipctl/cmd/image"
|
"opendev.org/airship/airshipctl/cmd/image"
|
||||||
"opendev.org/airship/airshipctl/cmd/phase"
|
"opendev.org/airship/airshipctl/cmd/phase"
|
||||||
"opendev.org/airship/airshipctl/cmd/secret"
|
"opendev.org/airship/airshipctl/cmd/secret"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
cfg "opendev.org/airship/airshipctl/pkg/config"
|
||||||
"opendev.org/airship/airshipctl/pkg/log"
|
"opendev.org/airship/airshipctl/pkg/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// RootOptions stores global flags values
|
||||||
|
type RootOptions struct {
|
||||||
|
Debug bool
|
||||||
|
AirshipConfigPath string
|
||||||
|
KubeConfigPath string
|
||||||
|
}
|
||||||
|
|
||||||
// NewAirshipCTLCommand creates a root `airshipctl` command with the default commands attached
|
// NewAirshipCTLCommand creates a root `airshipctl` command with the default commands attached
|
||||||
func NewAirshipCTLCommand(out io.Writer) *cobra.Command {
|
func NewAirshipCTLCommand(out io.Writer) *cobra.Command {
|
||||||
rootCmd, settings := NewRootCommand(out)
|
rootCmd, settings := NewRootCommand(out)
|
||||||
return AddDefaultAirshipCTLCommands(rootCmd, settings)
|
return AddDefaultAirshipCTLCommands(rootCmd,
|
||||||
|
cfg.CreateFactory(&settings.AirshipConfigPath, &settings.KubeConfigPath))
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewRootCommand creates the root `airshipctl` command. All other commands are
|
// NewRootCommand creates the root `airshipctl` command. All other commands are
|
||||||
// subcommands branching from this one
|
// subcommands branching from this one
|
||||||
func NewRootCommand(out io.Writer) (*cobra.Command, *environment.AirshipCTLSettings) {
|
func NewRootCommand(out io.Writer) (*cobra.Command, *RootOptions) {
|
||||||
var debug bool
|
options := &RootOptions{}
|
||||||
rootCmd := &cobra.Command{
|
rootCmd := &cobra.Command{
|
||||||
Use: "airshipctl",
|
Use: "airshipctl",
|
||||||
Short: "A unified entrypoint to various airship components",
|
Short: "A unified entrypoint to various airship components",
|
||||||
SilenceErrors: true,
|
SilenceErrors: true,
|
||||||
SilenceUsage: true,
|
SilenceUsage: true,
|
||||||
PersistentPreRun: func(cmd *cobra.Command, args []string) {
|
PersistentPreRun: func(cmd *cobra.Command, args []string) {
|
||||||
log.Init(debug, cmd.OutOrStdout())
|
log.Init(options.Debug, cmd.OutOrStdout())
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
rootCmd.SetOut(out)
|
rootCmd.SetOut(out)
|
||||||
rootCmd.PersistentFlags().BoolVar(&debug, "debug", false, "enable verbose output")
|
initFlags(options, rootCmd)
|
||||||
|
|
||||||
return rootCmd, makeRootSettings(rootCmd)
|
return rootCmd, options
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddDefaultAirshipCTLCommands is a convenience function for adding all of the
|
// AddDefaultAirshipCTLCommands is a convenience function for adding all of the
|
||||||
// default commands to airshipctl
|
// default commands to airshipctl
|
||||||
func AddDefaultAirshipCTLCommands(cmd *cobra.Command, settings *environment.AirshipCTLSettings) *cobra.Command {
|
func AddDefaultAirshipCTLCommands(cmd *cobra.Command, factory cfg.Factory) *cobra.Command {
|
||||||
cmd.AddCommand(baremetal.NewBaremetalCommand(settings))
|
cmd.AddCommand(baremetal.NewBaremetalCommand(factory))
|
||||||
cmd.AddCommand(cluster.NewClusterCommand(settings))
|
cmd.AddCommand(cluster.NewClusterCommand(factory))
|
||||||
cmd.AddCommand(completion.NewCompletionCommand())
|
cmd.AddCommand(completion.NewCompletionCommand())
|
||||||
cmd.AddCommand(document.NewDocumentCommand(settings))
|
cmd.AddCommand(document.NewDocumentCommand(factory))
|
||||||
cmd.AddCommand(config.NewConfigCommand(settings))
|
cmd.AddCommand(config.NewConfigCommand(factory))
|
||||||
cmd.AddCommand(image.NewImageCommand(settings))
|
cmd.AddCommand(image.NewImageCommand(factory))
|
||||||
cmd.AddCommand(secret.NewSecretCommand())
|
cmd.AddCommand(secret.NewSecretCommand())
|
||||||
cmd.AddCommand(phase.NewPhaseCommand(settings))
|
cmd.AddCommand(phase.NewPhaseCommand(factory))
|
||||||
cmd.AddCommand(NewVersionCommand())
|
cmd.AddCommand(NewVersionCommand())
|
||||||
|
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
// makeRootSettings holds all actions about environment.AirshipCTLSettings
|
func initFlags(options *RootOptions, cmd *cobra.Command) {
|
||||||
func makeRootSettings(cmd *cobra.Command) *environment.AirshipCTLSettings {
|
flags := cmd.PersistentFlags()
|
||||||
settings := &environment.AirshipCTLSettings{}
|
flags.BoolVar(&options.Debug, "debug", false, "enable verbose output")
|
||||||
settings.InitFlags(cmd)
|
|
||||||
return settings
|
defaultAirshipConfigDir := filepath.Join(cfg.HomeEnvVar, cfg.AirshipConfigDir)
|
||||||
|
|
||||||
|
defaultAirshipConfigPath := filepath.Join(defaultAirshipConfigDir, cfg.AirshipConfig)
|
||||||
|
flags.StringVar(
|
||||||
|
&options.AirshipConfigPath,
|
||||||
|
"airshipconf",
|
||||||
|
"",
|
||||||
|
`Path to file for airshipctl configuration. (default "`+defaultAirshipConfigPath+`")`)
|
||||||
|
|
||||||
|
defaultKubeConfigPath := filepath.Join(defaultAirshipConfigDir, cfg.AirshipKubeConfig)
|
||||||
|
flags.StringVar(
|
||||||
|
&options.KubeConfigPath,
|
||||||
|
clientcmd.RecommendedConfigPathFlag,
|
||||||
|
"",
|
||||||
|
`Path to kubeconfig associated with airshipctl configuration. (default "`+defaultKubeConfigPath+`")`)
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,6 @@ import (
|
|||||||
|
|
||||||
"opendev.org/airship/airshipctl/cmd"
|
"opendev.org/airship/airshipctl/cmd"
|
||||||
"opendev.org/airship/airshipctl/cmd/baremetal"
|
"opendev.org/airship/airshipctl/cmd/baremetal"
|
||||||
"opendev.org/airship/airshipctl/pkg/environment"
|
|
||||||
"opendev.org/airship/airshipctl/testutil"
|
"opendev.org/airship/airshipctl/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -101,6 +100,6 @@ func getDefaultRootCommand(t *testing.T) *cobra.Command {
|
|||||||
func getSpecializedRootCommand(t *testing.T) *cobra.Command {
|
func getSpecializedRootCommand(t *testing.T) *cobra.Command {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
rootCmd := getVanillaRootCommand(t)
|
rootCmd := getVanillaRootCommand(t)
|
||||||
rootCmd.AddCommand(baremetal.NewBaremetalCommand(&environment.AirshipCTLSettings{}))
|
rootCmd.AddCommand(baremetal.NewBaremetalCommand(nil))
|
||||||
return rootCmd
|
return rootCmd
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,9 @@ const (
|
|||||||
|
|
||||||
// Modules
|
// Modules
|
||||||
AirshipDefaultManagementType = redfish.ClientType
|
AirshipDefaultManagementType = redfish.ClientType
|
||||||
|
|
||||||
|
//HomeEnvVar holds value of HOME directory from env
|
||||||
|
HomeEnvVar = "$HOME"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Default values for remote operations
|
// Default values for remote operations
|
||||||
|
Loading…
Reference in New Issue
Block a user