Skip to content

Commit

Permalink
Merge pull request #68 from sensu/bugfix/suppress-usage
Browse files Browse the repository at this point in the history
Don't display usage when biz logic fails
  • Loading branch information
echlebek authored Feb 17, 2022
2 parents 2c88424 + 546801d commit aaca42d
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 9 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ Versioning](http://semver.org/spec/v2.0.0.html).

## Unreleased

### Fixed
- CLI usage is no longer displayed when business logic execution fails.

## [0.14.0] - 2021-08-09
### Added
- Added new aws sub-package to facilite aws service plugin development
Expand Down
2 changes: 1 addition & 1 deletion sensu/gocheck.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ func (goCheck *GoCheck) goCheckWorkflow(_ []string) (int, error) {
// Validate input using validateFunction
status, err := goCheck.validationFunction(goCheck.sensuEvent)
if err != nil {
return status, fmt.Errorf("error validating input: %s", err)
return status, ErrValidationFailed(err.Error())
}

// Execute check logic using executeFunction
Expand Down
2 changes: 1 addition & 1 deletion sensu/gohandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ func (goHandler *GoHandler) goHandlerWorkflow(_ []string) (int, error) {
// Validate input using validateFunction
err := goHandler.validationFunction(event)
if err != nil {
return 1, fmt.Errorf("error validating input: %s", err)
return 1, ErrValidationFailed(err.Error())
}

// Execute handler logic using executeFunction
Expand Down
2 changes: 1 addition & 1 deletion sensu/gomutator.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func (goMutator *GoMutator) goMutatorWorkflow(_ []string) (int, error) {
// Validate input using validateFunction
err := goMutator.validationFunction(goMutator.sensuEvent)
if err != nil {
return 1, fmt.Errorf("error validating input: %s", err)
return 1, ErrValidationFailed(err.Error())
}

// Execute handler logic using executeFunction
Expand Down
18 changes: 12 additions & 6 deletions sensu/goplugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,12 +114,18 @@ func (p *basePlugin) initPlugin() error {
Use: p.config.Name,
Short: p.config.Short,
SilenceErrors: true,
RunE: func(cmd *cobra.Command, args []string) error {
if err := viper.BindPFlags(cmd.Flags()); err != nil {
return err
}
return p.cobraExecuteFunction(args)
},
}
p.cmd.RunE = func(cmd *cobra.Command, args []string) error {
if err := viper.BindPFlags(cmd.Flags()); err != nil {
return err
}
err := p.cobraExecuteFunction(args)
if _, ok := err.(ErrValidationFailed); !ok {
p.cmd.SilenceUsage = true
} else {
err = fmt.Errorf("error validating input: %s", err)
}
return err
}
p.exitFunction = os.Exit
p.errorLogFunction = func(format string, a ...interface{}) {
Expand Down
9 changes: 9 additions & 0 deletions sensu/validation.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package sensu

// ErrValidationFailed should be returned when a configuration validation
// function fails.
type ErrValidationFailed string

func (e ErrValidationFailed) Error() string {
return string(e)
}

0 comments on commit aaca42d

Please sign in to comment.