Skip to content

Commit

Permalink
create flag --no-mask-deck-env-vars-value for subcommands
Browse files Browse the repository at this point in the history
  • Loading branch information
carnei-ro committed Jul 20, 2021
1 parent b762071 commit b516e5f
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 31 deletions.
8 changes: 4 additions & 4 deletions cmd/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func workspaceExists(ctx context.Context, config utils.KongClientConfig, workspa
}

func syncMain(ctx context.Context, filenames []string, dry bool, parallelism,
delay int, workspace string) error {
delay int, workspace string, noMaskValues bool) error {

// read target file
targetContent, err := file.GetContentFromFiles(filenames)
Expand Down Expand Up @@ -149,7 +149,7 @@ func syncMain(ctx context.Context, filenames []string, dry bool, parallelism,
return err
}

totalOps, err := performDiff(ctx, currentState, targetState, dry, parallelism, delay, wsClient)
totalOps, err := performDiff(ctx, currentState, targetState, dry, parallelism, delay, wsClient, noMaskValues)
if err != nil {
return err
}
Expand All @@ -174,7 +174,7 @@ func fetchCurrentState(ctx context.Context, client *kong.Client, dumpConfig dump
}

func performDiff(ctx context.Context, currentState, targetState *state.KongState,
dry bool, parallelism int, delay int, client *kong.Client) (int, error) {
dry bool, parallelism int, delay int, client *kong.Client, noMaskValues bool) (int, error) {
s, err := diff.NewSyncer(diff.SyncerOpts{
CurrentState: currentState,
TargetState: targetState,
Expand All @@ -185,7 +185,7 @@ func performDiff(ctx context.Context, currentState, targetState *state.KongState
return 0, err
}

stats, errs := s.Solve(ctx, parallelism, dry)
stats, errs := s.Solve(ctx, parallelism, dry, noMaskValues)
// print stats before error to report completed operations
printStats(stats)
if errs != nil {
Expand Down
4 changes: 2 additions & 2 deletions cmd/common_konnect.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (
)

func syncKonnect(ctx context.Context,
filenames []string, dry bool, parallelism int) error {
filenames []string, dry bool, parallelism int, noMaskValues bool) error {
httpClient := utils.HTTPClient()

// read target file
Expand Down Expand Up @@ -93,7 +93,7 @@ func syncKonnect(ctx context.Context,
return err
}

stats, errs := s.Solve(ctx, parallelism, dry)
stats, errs := s.Solve(ctx, parallelism, dry, noMaskValues)
// print stats before error to report completed operations
printStats(stats)
if errs != nil {
Expand Down
13 changes: 8 additions & 5 deletions cmd/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ import (
)

var (
diffCmdKongStateFile []string
diffCmdParallelism int
diffCmdNonZeroExitCode bool
diffWorkspace string
diffCmdKongStateFile []string
diffCmdParallelism int
diffCmdNoMaskDeckEnvVarsValue bool
diffCmdNonZeroExitCode bool
diffWorkspace string
)

// diffCmd represents the diff command
Expand All @@ -26,7 +27,7 @@ that will be created or updated or deleted.
Args: validateNoArgs,
RunE: func(cmd *cobra.Command, args []string) error {
return syncMain(cmd.Context(), diffCmdKongStateFile, true,
diffCmdParallelism, 0, diffWorkspace)
diffCmdParallelism, 0, diffWorkspace, diffCmdNoMaskDeckEnvVarsValue)
},
PreRunE: func(cmd *cobra.Command, args []string) error {
if len(diffCmdKongStateFile) == 0 {
Expand All @@ -52,6 +53,8 @@ func init() {
"any plugins associated with consumers")
diffCmd.Flags().IntVar(&diffCmdParallelism, "parallelism",
10, "Maximum number of concurrent operations")
diffCmd.Flags().BoolVar(&diffCmdNoMaskDeckEnvVarsValue, "no-mask-deck-env-vars-value",
false, "do not mask DECK_ environment variable values at diff output")
diffCmd.Flags().StringSliceVar(&dumpConfig.SelectorTags,
"select-tag", []string{},
"only entities matching tags specified via this flag are diffed.\n"+
Expand Down
11 changes: 7 additions & 4 deletions cmd/konnect_diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ import (
)

var (
konnectDiffCmdKongStateFile []string
konnectDiffCmdParallelism int
konnectDiffCmdNonZeroExitCode bool
konnectDiffCmdKongStateFile []string
konnectDiffCmdParallelism int
konnectDiffCmdNoMaskDeckEnvVarsValue bool
konnectDiffCmdNonZeroExitCode bool
)

// konnectDiffCmd represents the 'deck konnect diff' command.
Expand All @@ -28,7 +29,7 @@ that will be created or updated or deleted.` + konnectAlphaState,
}
_ = sendAnalytics("konnect-diff", "")
return syncKonnect(cmd.Context(), konnectDiffCmdKongStateFile, true,
konnectDiffCmdParallelism)
konnectDiffCmdParallelism, konnectDiffCmdNoMaskDeckEnvVarsValue)
},
PreRunE: func(cmd *cobra.Command, args []string) error {
return preRunSilenceEventsFlag()
Expand All @@ -45,6 +46,8 @@ func init() {
"with consumers")
konnectDiffCmd.Flags().IntVar(&konnectDiffCmdParallelism, "parallelism",
100, "Maximum number of concurrent operations")
konnectDiffCmd.Flags().BoolVar(&konnectDiffCmdNoMaskDeckEnvVarsValue, "no-mask-deck-env-vars-value",
false, "do not mask DECK_ environment variable values at diff output")
konnectDiffCmd.Flags().BoolVar(&konnectDiffCmdNonZeroExitCode, "non-zero-exit-code",
false, "return exit code 2 if there is a diff present,\n"+
"exit code 0 if no diff is found,\n"+
Expand Down
4 changes: 3 additions & 1 deletion cmd/konnect_sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ to get Konnect's state in sync with the input state.` + konnectAlphaState,
}
_ = sendAnalytics("konnect-sync", "")
return syncKonnect(cmd.Context(), konnectDiffCmdKongStateFile, false,
konnectDiffCmdParallelism)
konnectDiffCmdParallelism, konnectDiffCmdNoMaskDeckEnvVarsValue)
},
PreRunE: func(cmd *cobra.Command, args []string) error {
return preRunSilenceEventsFlag()
Expand All @@ -37,5 +37,7 @@ func init() {
"with consumers")
konnectSyncCmd.Flags().IntVar(&konnectDiffCmdParallelism, "parallelism",
100, "Maximum number of concurrent operations")
konnectSyncCmd.Flags().BoolVar(&konnectDiffCmdNoMaskDeckEnvVarsValue, "no-mask-deck-env-vars-value",
false, "do not mask DECK_ environment variable values at diff output")
addSilenceEventsFlag(konnectSyncCmd.Flags())
}
11 changes: 7 additions & 4 deletions cmd/reset.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ import (
)

var (
resetCmdForce bool
resetWorkspace string
resetAllWorkspaces bool
resetCmdForce bool
resetWorkspace string
resetAllWorkspaces bool
resetNoMaskDeckEnvVarsValue bool
)

// resetCmd represents the reset command
Expand Down Expand Up @@ -92,7 +93,7 @@ By default, this command will ask for a confirmation prompt.`,
if err != nil {
return err
}
_, err = performDiff(ctx, currentState, targetState, false, 10, 0, wsClient)
_, err = performDiff(ctx, currentState, targetState, false, 10, 0, wsClient, resetNoMaskDeckEnvVarsValue)
if err != nil {
return err
}
Expand All @@ -113,6 +114,8 @@ func init() {
"(Kong Enterprise only).")
resetCmd.Flags().BoolVar(&resetAllWorkspaces, "all-workspaces",
false, "reset configuration of all workspaces (Kong Enterprise only).")
resetCmd.Flags().BoolVar(&resetNoMaskDeckEnvVarsValue, "no-mask-deck-env-vars-value",
false, "do not mask DECK_ environment variable values at diff output")
resetCmd.Flags().StringSliceVar(&dumpConfig.SelectorTags,
"select-tag", []string{},
"only entities matching tags specified via this flag are deleted.\n"+
Expand Down
13 changes: 8 additions & 5 deletions cmd/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ import (
)

var (
syncCmdKongStateFile []string
syncCmdParallelism int
syncCmdDBUpdateDelay int
syncWorkspace string
syncCmdKongStateFile []string
syncCmdParallelism int
syncCmdNoMaskDeckEnvVarsValue bool
syncCmdDBUpdateDelay int
syncWorkspace string
)

// syncCmd represents the sync command
Expand All @@ -23,7 +24,7 @@ to get Kong's state in sync with the input state.`,
Args: validateNoArgs,
RunE: func(cmd *cobra.Command, args []string) error {
return syncMain(cmd.Context(), syncCmdKongStateFile, false,
syncCmdParallelism, syncCmdDBUpdateDelay, syncWorkspace)
syncCmdParallelism, syncCmdDBUpdateDelay, syncWorkspace, syncCmdNoMaskDeckEnvVarsValue)
},
PreRunE: func(cmd *cobra.Command, args []string) error {
if len(syncCmdKongStateFile) == 0 {
Expand All @@ -49,6 +50,8 @@ func init() {
"any plugins associated with consumers")
syncCmd.Flags().IntVar(&syncCmdParallelism, "parallelism",
10, "Maximum number of concurrent operations")
syncCmd.Flags().BoolVar(&syncCmdNoMaskDeckEnvVarsValue, "no-mask-deck-env-vars-value",
false, "do not mask DECK_ environment variable values at diff output")
syncCmd.Flags().StringSliceVar(&dumpConfig.SelectorTags,
"select-tag", []string{},
"only entities matching tags specified via this flag are synced.\n"+
Expand Down
14 changes: 8 additions & 6 deletions diff/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@ type Stats struct {
}

// Generete Diff output for 'sync' and 'diff' commands
func generateDiffString(e crud.Event, isDelete bool) (string, error) {
func generateDiffString(e crud.Event, isDelete bool, noMaskValues bool) (string, error) {
var diffString string
var err error
if oldObj, ok := e.OldObj.(*state.Document); ok {
Expand All @@ -577,12 +577,14 @@ func generateDiffString(e crud.Event, isDelete bool) (string, error) {
if err != nil {
return "", err
}
diffString = maskEnvVarValue(diffString)
if !noMaskValues {
diffString = maskEnvVarValue(diffString)
}
return diffString, err
}

// Solve generates a diff and walks the graph.
func (sc *Syncer) Solve(ctx context.Context, parallelism int, dry bool) (Stats, []error) {
func (sc *Syncer) Solve(ctx context.Context, parallelism int, dry bool, noMaskValues bool) (Stats, []error) {
stats := Stats{
CreateOps: &utils.AtomicInt32Counter{},
UpdateOps: &utils.AtomicInt32Counter{},
Expand All @@ -606,19 +608,19 @@ func (sc *Syncer) Solve(ctx context.Context, parallelism int, dry bool) (Stats,
c := e.Obj.(state.ConsoleString)
switch e.Op {
case crud.Create:
diffString, err := generateDiffString(e, false)
diffString, err := generateDiffString(e, false, noMaskValues)
if err != nil {
return nil, err
}
cprint.CreatePrintln("creating", e.Kind, c.Console(), diffString)
case crud.Update:
diffString, err := generateDiffString(e, false)
diffString, err := generateDiffString(e, false, noMaskValues)
if err != nil {
return nil, err
}
cprint.UpdatePrintln("updating", e.Kind, c.Console(), diffString)
case crud.Delete:
diffString, err := generateDiffString(e, true)
diffString, err := generateDiffString(e, true, noMaskValues)
if err != nil {
return nil, err
}
Expand Down

0 comments on commit b516e5f

Please sign in to comment.