Refactor config init command
Config init command will no longer use AirshipCTLSettings for defining a config object which needs to be saved. Change-Id: I303f05a8df1e7439d1b3dcfd41cf2679d729a9f8 Signed-off-by: Ruslan Aliev <raliev@mirantis.com> Relates-To: #327
This commit is contained in:
parent
88ec55d34b
commit
2166062f2e
@ -55,6 +55,6 @@ func NewConfigCommand(rootSettings *environment.AirshipCTLSettings) *cobra.Comma
|
||||
configRootCmd.AddCommand(NewSetManifestCommand(cfgFactory))
|
||||
|
||||
// Init will have different factory
|
||||
configRootCmd.AddCommand(NewInitCommand(rootSettings))
|
||||
configRootCmd.AddCommand(NewInitCommand())
|
||||
return configRootCmd
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ package config
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"opendev.org/airship/airshipctl/pkg/environment"
|
||||
"opendev.org/airship/airshipctl/pkg/config"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -33,7 +33,7 @@ NOTE: This will overwrite any existing config files in $HOME/.airship
|
||||
)
|
||||
|
||||
// NewInitCommand creates a command for generating default airshipctl config files.
|
||||
func NewInitCommand(rootSettings *environment.AirshipCTLSettings) *cobra.Command {
|
||||
func NewInitCommand() *cobra.Command {
|
||||
// TODO(howell): It'd be nice to have a flag to tell
|
||||
// airshipctl where to store the new files.
|
||||
// TODO(howell): Currently, this command overwrites whatever the user
|
||||
@ -44,7 +44,16 @@ func NewInitCommand(rootSettings *environment.AirshipCTLSettings) *cobra.Command
|
||||
Short: "Generate initial configuration files for airshipctl",
|
||||
Long: initLong[1:],
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
return rootSettings.Config.PersistConfig(true)
|
||||
airshipConfigPath, err := cmd.Flags().GetString("airshipconf")
|
||||
if err != nil {
|
||||
airshipConfigPath = ""
|
||||
}
|
||||
|
||||
kubeConfigPath, err := cmd.Flags().GetString("kubeconfig")
|
||||
if err != nil {
|
||||
kubeConfigPath = ""
|
||||
}
|
||||
return config.CreateConfig(airshipConfigPath, kubeConfigPath)
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ func TestConfigInit(t *testing.T) {
|
||||
{
|
||||
Name: "config-init-help",
|
||||
CmdLine: "-h",
|
||||
Cmd: NewInitCommand(nil),
|
||||
Cmd: NewInitCommand(),
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -116,6 +116,17 @@ func CreateFactory(airshipConfigPath *string, kubeConfigPath *string) Factory {
|
||||
}
|
||||
}
|
||||
|
||||
// CreateConfig saves default config to specified paths
|
||||
func CreateConfig(airshipConfigPath string, kubeConfigPath string) error {
|
||||
cfg := NewConfig()
|
||||
cfg.kubeConfig = NewKubeConfig()
|
||||
cfg.initConfigPath(airshipConfigPath, kubeConfigPath)
|
||||
if err := cfg.reconcileConfig(); err != nil {
|
||||
return err
|
||||
}
|
||||
return cfg.PersistConfig(true)
|
||||
}
|
||||
|
||||
// initConfigPath - Initializes loadedConfigPath and kubeConfigPath variable for Config object
|
||||
func (c *Config) initConfigPath(airshipConfigPath string, kubeConfigPath string) {
|
||||
switch {
|
||||
|
Loading…
Reference in New Issue
Block a user