mirror of
https://github.com/crowdsecurity/crowdsec.git
synced 2025-05-10 20:05:55 +02:00
custom duration type for "cscli bouncers prune"
This commit is contained in:
parent
f5e9424b4a
commit
662da8ce33
2 changed files with 15 additions and 7 deletions
|
@ -9,10 +9,14 @@ import (
|
|||
"github.com/fatih/color"
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"github.com/crowdsecurity/go-cs-lib/cstime"
|
||||
|
||||
"github.com/crowdsecurity/crowdsec/cmd/crowdsec-cli/args"
|
||||
"github.com/crowdsecurity/crowdsec/cmd/crowdsec-cli/ask"
|
||||
)
|
||||
|
||||
const defaultPruneDuration = 60 * time.Minute
|
||||
|
||||
func (cli *cliBouncers) prune(ctx context.Context, duration time.Duration, force bool) error {
|
||||
if duration < 2*time.Minute {
|
||||
if yes, err := ask.YesNo(
|
||||
|
@ -59,12 +63,9 @@ func (cli *cliBouncers) prune(ctx context.Context, duration time.Duration, force
|
|||
}
|
||||
|
||||
func (cli *cliBouncers) newPruneCmd() *cobra.Command {
|
||||
var (
|
||||
duration time.Duration
|
||||
force bool
|
||||
)
|
||||
var force bool
|
||||
|
||||
const defaultDuration = 60 * time.Minute
|
||||
duration := cstime.Duration(defaultPruneDuration)
|
||||
|
||||
cmd := &cobra.Command{
|
||||
Use: "prune",
|
||||
|
@ -74,12 +75,12 @@ func (cli *cliBouncers) newPruneCmd() *cobra.Command {
|
|||
Example: `cscli bouncers prune -d 45m
|
||||
cscli bouncers prune -d 45m --force`,
|
||||
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||
return cli.prune(cmd.Context(), duration, force)
|
||||
return cli.prune(cmd.Context(), time.Duration(duration), force)
|
||||
},
|
||||
}
|
||||
|
||||
flags := cmd.Flags()
|
||||
flags.DurationVarP(&duration, "duration", "d", defaultDuration, "duration of time since last pull")
|
||||
flags.VarP(&duration, "duration", "d", "duration of time since last pull")
|
||||
flags.BoolVar(&force, "force", false, "force prune without asking for confirmation")
|
||||
|
||||
return cmd
|
||||
|
|
|
@ -133,6 +133,13 @@ teardown() {
|
|||
}
|
||||
|
||||
@test "cscli bouncers prune" {
|
||||
rune -1 cscli bouncers prune --duration foobar
|
||||
assert_stderr 'Error: invalid argument "foobar" for "-d, --duration" flag: time: invalid duration "foobar"'
|
||||
|
||||
# duration takes days as well
|
||||
rune -0 cscli bouncers prune --duration 1d30m
|
||||
assert_output 'No bouncers to prune.'
|
||||
|
||||
rune -0 cscli bouncers prune
|
||||
assert_output 'No bouncers to prune.'
|
||||
rune -0 cscli bouncers add ciTestBouncer
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue