Skip to content

Commit 2dea050

Browse files
authored
Refactor flag names to use constants in benchmark, restore, root, telemetry, and targets commands (#594)
Signed-off-by: Harper, Jason M <jason.m.harper@intel.com>
1 parent e0be22d commit 2dea050

File tree

6 files changed

+44
-51
lines changed

6 files changed

+44
-51
lines changed

cmd/benchmark/benchmark.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func validateFlags(cmd *cobra.Command, args []string) error {
206206
return common.FlagValidationError(cmd, fmt.Sprintf("invalid storage directory name: %s", flagStorageDir))
207207
}
208208
// if no target is specified, i.e., we have a local target only, check if the directory exists
209-
if !cmd.Flags().Lookup("targets").Changed && !cmd.Flags().Lookup("target").Changed {
209+
if !cmd.Flags().Lookup(common.FlagTargetsFileName).Changed && !cmd.Flags().Lookup(common.FlagTargetHostName).Changed {
210210
if _, err := os.Stat(flagStorageDir); os.IsNotExist(err) {
211211
return common.FlagValidationError(cmd, fmt.Sprintf("storage dir does not exist: %s", flagStorageDir))
212212
}

cmd/config/restore.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,15 +157,15 @@ func runRestoreCmd(cmd *cobra.Command, args []string) error {
157157
cmdArgs := []string{"config"}
158158

159159
// copy target flags from restore command first
160-
targetFlags := []string{"target", "targets", "user", "key", "port"}
160+
targetFlags := []string{common.FlagTargetHostName, common.FlagTargetsFileName, common.FlagTargetUserName, common.FlagTargetKeyName, common.FlagTargetPortName}
161161
for _, flagName := range targetFlags {
162162
if flag := cmd.Flags().Lookup(flagName); flag != nil && flag.Changed {
163163
cmdArgs = append(cmdArgs, fmt.Sprintf("--%s", flagName), flag.Value.String())
164164
}
165165
}
166166

167167
// copy relevant global flags from root command next
168-
globalFlags := []string{"debug", "output", "tempdir", "syslog", "log-stdout"}
168+
globalFlags := []string{common.FlagDebugName, common.FlagOutputDirName, common.FlagTargetTempRootName, common.FlagSyslogName, common.FlagLogStdOutName}
169169
for _, flagName := range globalFlags {
170170
if flag := cmd.Root().PersistentFlags().Lookup(flagName); flag != nil && flag.Changed {
171171
if flag.Value.Type() == "bool" {

cmd/root.go

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,6 @@ var (
7474
flagNoCheckUpdate bool
7575
)
7676

77-
const (
78-
flagDebugName = "debug"
79-
flagSyslogName = "syslog"
80-
flagLogStdOutName = "log-stdout"
81-
flagOutputDirName = "output"
82-
flagTargetTempRootName = "tempdir"
83-
flagNoCheckUpdateName = "noupdate"
84-
)
85-
8677
func init() {
8778
rootCmd.SetUsageTemplate(`Usage:{{if .Runnable}}
8879
{{.UseLine}}{{end}}{{if .HasAvailableSubCommands}}
@@ -124,12 +115,12 @@ Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}
124115
rootCmd.AddGroup([]*cobra.Group{{ID: "other", Title: "Other Commands:"}}...)
125116
rootCmd.AddCommand(updateCmd)
126117
// Global (persistent) flags
127-
rootCmd.PersistentFlags().BoolVar(&flagDebug, flagDebugName, false, "enable debug logging and retain temporary directories")
128-
rootCmd.PersistentFlags().BoolVar(&flagSyslog, flagSyslogName, false, "write logs to syslog instead of a file")
129-
rootCmd.PersistentFlags().BoolVar(&flagLogStdOut, flagLogStdOutName, false, "write logs to stdout")
130-
rootCmd.PersistentFlags().StringVar(&flagOutputDir, flagOutputDirName, "", "override the output directory")
131-
rootCmd.PersistentFlags().StringVar(&flagTargetTempRoot, flagTargetTempRootName, "", "override the temporary target directory, must exist and allow execution")
132-
rootCmd.PersistentFlags().BoolVar(&flagNoCheckUpdate, flagNoCheckUpdateName, false, "skip application update check")
118+
rootCmd.PersistentFlags().BoolVar(&flagDebug, common.FlagDebugName, false, "enable debug logging and retain temporary directories")
119+
rootCmd.PersistentFlags().BoolVar(&flagSyslog, common.FlagSyslogName, false, "write logs to syslog instead of a file")
120+
rootCmd.PersistentFlags().BoolVar(&flagLogStdOut, common.FlagLogStdOutName, false, "write logs to stdout")
121+
rootCmd.PersistentFlags().StringVar(&flagOutputDir, common.FlagOutputDirName, "", "override the output directory")
122+
rootCmd.PersistentFlags().StringVar(&flagTargetTempRoot, common.FlagTargetTempRootName, "", "override the temporary target directory, must exist and allow execution")
123+
rootCmd.PersistentFlags().BoolVar(&flagNoCheckUpdate, common.FlagNoCheckUpdateName, false, "skip application update check")
133124
}
134125

135126
// Execute adds all child commands to the root command and sets flags appropriately.

cmd/telemetry/telemetry.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -244,15 +244,7 @@ func validateFlags(cmd *cobra.Command, args []string) error {
244244
if flagDuration < 0 {
245245
return common.FlagValidationError(cmd, "duration must be 0 or greater")
246246
}
247-
target, err := cmd.Flags().GetString("target")
248-
if err != nil {
249-
panic("failed to get target flag")
250-
}
251-
targets, err := cmd.Flags().GetString("targets")
252-
if err != nil {
253-
panic("failed to get targets flag")
254-
}
255-
if flagDuration == 0 && (target != "" || targets != "") {
247+
if flagDuration == 0 && (cmd.Flags().Lookup(common.FlagTargetsFileName).Changed || cmd.Flags().Lookup(common.FlagTargetHostName).Changed) {
256248
return common.FlagValidationError(cmd, "duration must be greater than 0 when collecting from a remote target")
257249
}
258250
if flagInstrMixFrequency < 100000 { // 100,000 instructions is the minimum frequency

internal/common/common.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ import (
2626
"github.com/spf13/cobra"
2727
)
2828

29+
// Flag names for flags defined in the root command, but sometimes used in other commands.
30+
const (
31+
FlagDebugName = "debug"
32+
FlagSyslogName = "syslog"
33+
FlagLogStdOutName = "log-stdout"
34+
FlagOutputDirName = "output"
35+
FlagTargetTempRootName = "tempdir"
36+
FlagNoCheckUpdateName = "noupdate"
37+
)
38+
2939
var AppName = filepath.Base(os.Args[0])
3040

3141
// AppContext represents the application context that can be accessed from all commands.

internal/common/targets.go

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -38,29 +38,29 @@ var (
3838

3939
// target flag names
4040
const (
41-
flagTargetsFileName = "targets"
42-
flagTargetHostName = "target"
43-
flagTargetPortName = "port"
44-
flagTargetUserName = "user"
45-
flagTargetKeyName = "key"
41+
FlagTargetsFileName = "targets"
42+
FlagTargetHostName = "target"
43+
FlagTargetPortName = "port"
44+
FlagTargetUserName = "user"
45+
FlagTargetKeyName = "key"
4646
)
4747

4848
var targetFlags = []Flag{
49-
{Name: flagTargetHostName, Help: "host name or IP address of remote target"},
50-
{Name: flagTargetPortName, Help: "port for SSH to remote target"},
51-
{Name: flagTargetUserName, Help: "user name for SSH to remote target"},
52-
{Name: flagTargetKeyName, Help: "private key file for SSH to remote target"},
53-
{Name: flagTargetsFileName, Help: "file with remote target(s) connection details. See targets.yaml for format."},
49+
{Name: FlagTargetHostName, Help: "host name or IP address of remote target"},
50+
{Name: FlagTargetPortName, Help: "port for SSH to remote target"},
51+
{Name: FlagTargetUserName, Help: "user name for SSH to remote target"},
52+
{Name: FlagTargetKeyName, Help: "private key file for SSH to remote target"},
53+
{Name: FlagTargetsFileName, Help: "file with remote target(s) connection details. See targets.yaml for format."},
5454
}
5555

5656
func AddTargetFlags(cmd *cobra.Command) {
57-
cmd.Flags().StringVar(&flagTargetHost, flagTargetHostName, "", targetFlags[0].Help)
58-
cmd.Flags().StringVar(&flagTargetPort, flagTargetPortName, "", targetFlags[1].Help)
59-
cmd.Flags().StringVar(&flagTargetUser, flagTargetUserName, "", targetFlags[2].Help)
60-
cmd.Flags().StringVar(&flagTargetKeyFile, flagTargetKeyName, "", targetFlags[3].Help)
61-
cmd.Flags().StringVar(&flagTargetsFile, flagTargetsFileName, "", targetFlags[4].Help)
57+
cmd.Flags().StringVar(&flagTargetHost, FlagTargetHostName, "", targetFlags[0].Help)
58+
cmd.Flags().StringVar(&flagTargetPort, FlagTargetPortName, "", targetFlags[1].Help)
59+
cmd.Flags().StringVar(&flagTargetUser, FlagTargetUserName, "", targetFlags[2].Help)
60+
cmd.Flags().StringVar(&flagTargetKeyFile, FlagTargetKeyName, "", targetFlags[3].Help)
61+
cmd.Flags().StringVar(&flagTargetsFile, FlagTargetsFileName, "", targetFlags[4].Help)
6262

63-
cmd.MarkFlagsMutuallyExclusive(flagTargetHostName, flagTargetsFileName)
63+
cmd.MarkFlagsMutuallyExclusive(FlagTargetHostName, FlagTargetsFileName)
6464
}
6565

6666
func GetTargetFlagGroup() FlagGroup {
@@ -72,13 +72,13 @@ func GetTargetFlagGroup() FlagGroup {
7272

7373
func ValidateTargetFlags(cmd *cobra.Command) error {
7474
if flagTargetsFile != "" && flagTargetHost != "" {
75-
return fmt.Errorf("only one of --%s or --%s can be specified", flagTargetsFileName, flagTargetHostName)
75+
return fmt.Errorf("only one of --%s or --%s can be specified", FlagTargetsFileName, FlagTargetHostName)
7676
}
7777
if flagTargetsFile != "" && (flagTargetPort != "" || flagTargetUser != "" || flagTargetKeyFile != "") {
78-
return fmt.Errorf("if --%s is specified, --%s, --%s, and --%s must not be specified", flagTargetsFileName, flagTargetPortName, flagTargetUserName, flagTargetKeyName)
78+
return fmt.Errorf("if --%s is specified, --%s, --%s, and --%s must not be specified", FlagTargetsFileName, FlagTargetPortName, FlagTargetUserName, FlagTargetKeyName)
7979
}
8080
if (flagTargetPort != "" || flagTargetUser != "" || flagTargetKeyFile != "") && flagTargetHost == "" {
81-
return fmt.Errorf("if --%s, --%s, or --%s is specified, --%s must also be specified", flagTargetPortName, flagTargetUserName, flagTargetKeyName, flagTargetHostName)
81+
return fmt.Errorf("if --%s, --%s, or --%s is specified, --%s must also be specified", FlagTargetPortName, FlagTargetUserName, FlagTargetKeyName, FlagTargetHostName)
8282
}
8383
// confirm that the targets file exists
8484
if flagTargetsFile != "" {
@@ -136,7 +136,7 @@ func GetTargets(cmd *cobra.Command, needsElevatedPrivileges bool, failIfCantElev
136136
return
137137
}
138138
targetTempDirRoot := tempDirFlag.Value.String()
139-
flagTargetsFile, _ := cmd.Flags().GetString(flagTargetsFileName)
139+
flagTargetsFile, _ := cmd.Flags().GetString(FlagTargetsFileName)
140140
if flagTargetsFile != "" {
141141
targets, targetErrs, err = getTargetsFromFile(flagTargetsFile, localTempDir)
142142
} else {
@@ -185,10 +185,10 @@ func GetTargets(cmd *cobra.Command, needsElevatedPrivileges bool, failIfCantElev
185185
// - targetError: An error indicating a problem with the target host connection.
186186
// - err: An error object indicating any error that occurred during the function execution.
187187
func getSingleTarget(cmd *cobra.Command, needsElevatedPrivileges bool, failIfCantElevate bool, localTempDir string) (target.Target, error, error) {
188-
targetHost, _ := cmd.Flags().GetString(flagTargetHostName)
189-
targetPort, _ := cmd.Flags().GetString(flagTargetPortName)
190-
targetUser, _ := cmd.Flags().GetString(flagTargetUserName)
191-
targetKey, _ := cmd.Flags().GetString(flagTargetKeyName)
188+
targetHost, _ := cmd.Flags().GetString(FlagTargetHostName)
189+
targetPort, _ := cmd.Flags().GetString(FlagTargetPortName)
190+
targetUser, _ := cmd.Flags().GetString(FlagTargetUserName)
191+
targetKey, _ := cmd.Flags().GetString(FlagTargetKeyName)
192192
if targetHost != "" {
193193
return getRemoteTarget(targetHost, targetPort, targetUser, targetKey, needsElevatedPrivileges, failIfCantElevate, localTempDir)
194194
} else {

0 commit comments

Comments
 (0)