diff --git a/internal/cli/atlas_alerts_acknowledge.go b/internal/cli/atlas_alerts_acknowledge.go index c9926b9f10..afdbbcf8b8 100644 --- a/internal/cli/atlas_alerts_acknowledge.go +++ b/internal/cli/atlas_alerts_acknowledge.go @@ -31,6 +31,7 @@ type atlasAlertsAcknowledgeOpts struct { alertID string until string comment string + forever bool store store.AlertAcknowledger } @@ -52,20 +53,18 @@ func (opts *atlasAlertsAcknowledgeOpts) Run() error { } func (opts *atlasAlertsAcknowledgeOpts) newAcknowledgeRequest() *atlas.AcknowledgeRequest { - until := opts.until - // To acknowledge an alert “forever”, set the field value to 100 years in the future. - if until == "" { - until = time.Now().AddDate(100, 1, 1).Format(time.RFC3339) + if opts.forever { + opts.until = time.Now().AddDate(100, 1, 1).Format(time.RFC3339) } return &atlas.AcknowledgeRequest{ - AcknowledgedUntil: until, + AcknowledgedUntil: opts.until, AcknowledgementComment: opts.comment, } } -// mongocli atlas alerts acknowledge alertID --projectId projectId +// mongocli atlas alerts acknowledge alertID --projectId projectId --forever func AtlasAlertsAcknowledgeBuilder() *cobra.Command { opts := new(atlasAlertsAcknowledgeOpts) cmd := &cobra.Command{ @@ -82,6 +81,7 @@ func AtlasAlertsAcknowledgeBuilder() *cobra.Command { }, } + cmd.Flags().BoolVarP(&opts.forever, flags.Forever, flags.ForeverShort, false, usage.Forever) cmd.Flags().StringVar(&opts.until, flags.Until, "", usage.Until) cmd.Flags().StringVar(&opts.comment, flags.Comment, "", usage.Comment) diff --git a/internal/flags/flags.go b/internal/flags/flags.go index 4791458806..d38a65fbdb 100644 --- a/internal/flags/flags.go +++ b/internal/flags/flags.go @@ -27,6 +27,8 @@ const ( Members = "members" // Members flag MembersShort = "m" // MembersShort flag Tier = "tier" // Tier flag + Forever = "forever" // Forever flag + ForeverShort = "F" // ForeverShort flag DiskSizeGB = "diskSizeGB" // DiskSizeGB flag MDBVersion = "mdbVersion" // MDBVersion flag Backup = "backup" // Backup flag diff --git a/internal/usage/usage.go b/internal/usage/usage.go index 70ed7936b0..00d44ca4e3 100644 --- a/internal/usage/usage.go +++ b/internal/usage/usage.go @@ -26,6 +26,7 @@ const ( AuthDB = "Authentication database name." Granularity = "Duration in ISO 8601 notation that specifies the interval between measurement data points." Page = "Page number." + Forever = "Acknowledge an alert “forever”." Status = "Alert's status." Until = "Acknowledged until a date." Limit = "Number of items per page."