diff --git a/internal/commands/predicates.go b/internal/commands/predicates.go index 17416cd1f..b0d817488 100644 --- a/internal/commands/predicates.go +++ b/internal/commands/predicates.go @@ -20,7 +20,7 @@ func NewResultsPredicatesCommand(resultsPredicatesWrapper wrappers.ResultsPredic } triageShowCmd := triageShowSubCommand(resultsPredicatesWrapper) triageUpdateCmd := triageUpdateSubCommand(resultsPredicatesWrapper, featureFlagsWrapper) - triageGetStatesCmd := triageGetStatesSubCommand(customStatesWrapper) + triageGetStatesCmd := triageGetStatesSubCommand(customStatesWrapper, featureFlagsWrapper ) addFormatFlagToMultipleCommands( @@ -32,7 +32,7 @@ func NewResultsPredicatesCommand(resultsPredicatesWrapper wrappers.ResultsPredic return triageCmd } -func triageGetStatesSubCommand(customStatesWrapper wrappers.CustomStatesWrapper) *cobra.Command { +func triageGetStatesSubCommand(customStatesWrapper wrappers.CustomStatesWrapper, featureFlagsWrapper wrappers.FeatureFlagsWrapper) *cobra.Command { triageGetStatesCmd := &cobra.Command{ Use: "get-states", Short: "Show the custom states that have been configured in your tenant", @@ -43,7 +43,7 @@ func triageGetStatesSubCommand(customStatesWrapper wrappers.CustomStatesWrapper) $ cx triage get-states --all `, ), - RunE: runTriageGetStates(customStatesWrapper), + RunE: runTriageGetStates(customStatesWrapper, featureFlagsWrapper), } triageGetStatesCmd.PersistentFlags().Bool(params.AllStatesFlag, false, "Show all custom states, including the ones that have been deleted") @@ -51,8 +51,13 @@ func triageGetStatesSubCommand(customStatesWrapper wrappers.CustomStatesWrapper) return triageGetStatesCmd } -func runTriageGetStates(customStatesWrapper wrappers.CustomStatesWrapper) func(*cobra.Command, []string) error { +func runTriageGetStates(customStatesWrapper wrappers.CustomStatesWrapper, featureFlagsWrapper wrappers.FeatureFlagsWrapper,) func(*cobra.Command, []string) error { return func(cmd *cobra.Command, _ []string) error { + flagResponse, _ := wrappers.GetSpecificFeatureFlag(featureFlagsWrapper, wrappers.CustomStatesFeatureFlag) + if !flagResponse.Status { + return errors.Errorf("%s", "Fetching custom states is not available for your tenant") + } + includeDeleted, _ := cmd.Flags().GetBool(params.AllStatesFlag) states, err := customStatesWrapper.GetAllCustomStates(includeDeleted) if err != nil { diff --git a/internal/wrappers/feature-flags.go b/internal/wrappers/feature-flags.go index 6be68b174..998999535 100644 --- a/internal/wrappers/feature-flags.go +++ b/internal/wrappers/feature-flags.go @@ -14,6 +14,7 @@ const ContainerEngineCLIEnabled = "CONTAINER_ENGINE_CLI_ENABLED" const SCSEngineCLIEnabled = "NEW_2MS_SCORECARD_RESULTS_CLI_ENABLED" const NewScanReportEnabled = "NEW_SAST_SCAN_REPORT_ENABLED" const maxRetries = 3 +const CustomStatesFeatureFlag = "CUSTOM_STATES_ENABLED" var DefaultFFLoad bool = false @@ -31,6 +32,15 @@ var FeatureFlagsBaseMap = []CommandFlags{ }, }, }, + { + CommandName: "cx triage get-states", + FeatureFlags: []FlagBase{ + { + Name: CustomStatesFeatureFlag, + Default: false, + }, + }, + }, { CommandName: "cx project create", },