Skip to content

Commit

Permalink
chore: use generics in silence_delete command
Browse files Browse the repository at this point in the history
  • Loading branch information
freak12techno committed Nov 3, 2024
1 parent e66fe39 commit 9d07e15
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 50 deletions.
8 changes: 4 additions & 4 deletions pkg/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,14 @@ func (a *App) Start() {
a.Bot.Handle("/alert", a.HandleSingleAlert)
a.Bot.Handle("/silences", a.HandleListSilences(a.Grafana))
a.Bot.Handle("/silence", a.HandleNewSilenceViaCommand(a.Grafana))
a.Bot.Handle("/unsilence", a.HandleGrafanaDeleteSilence)
a.Bot.Handle("/unsilence", a.HandleDeleteSilenceViaCommand(a.Grafana))
a.Bot.Handle("/alertmanager_silences", a.HandleListSilences(a.Alertmanager))
a.Bot.Handle("/alertmanager_silence", a.HandleNewSilenceViaCommand(a.Alertmanager))
a.Bot.Handle("/alertmanager_unsilence", a.HandleAlertmanagerDeleteSilence)
a.Bot.Handle("/alertmanager_unsilence", a.HandleDeleteSilenceViaCommand(a.Alertmanager))

// Callbacks
a.Bot.Handle("\f"+constants.GrafanaUnsilencePrefix, a.HandleGrafanaCallbackDeleteSilence)
a.Bot.Handle("\f"+constants.AlertmanagerUnsilencePrefix, a.HandleAlertmanagerCallbackDeleteSilence)
a.Bot.Handle("\f"+constants.GrafanaUnsilencePrefix, a.HandleCallbackDeleteSilence(a.Grafana))
a.Bot.Handle("\f"+constants.AlertmanagerUnsilencePrefix, a.HandleCallbackDeleteSilence(a.Alertmanager))
a.Bot.Handle("\f"+constants.GrafanaPrepareSilencePrefix, a.HandlePrepareNewSilenceFromCallback(a.Grafana, a.Grafana))
a.Bot.Handle("\f"+constants.AlertmanagerPrepareSilencePrefix, a.HandlePrepareNewSilenceFromCallback(a.Alertmanager, a.Grafana))
a.Bot.Handle("\f"+constants.GrafanaSilencePrefix, a.HandleCallbackNewSilence(a.Grafana, a.Grafana))
Expand Down
72 changes: 26 additions & 46 deletions pkg/app/silences_delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,63 +9,43 @@ import (
tele "gopkg.in/telebot.v3"
)

func (a *App) HandleGrafanaDeleteSilence(c tele.Context) error {
a.Logger.Info().
Str("sender", c.Sender().Username).
Str("text", c.Text()).
Msg("Got new delete silence query")
func (a *App) HandleDeleteSilenceViaCommand(silenceManager types.SilenceManager) func(c tele.Context) error {
return func(c tele.Context) error {
a.Logger.Info().
Str("sender", c.Sender().Username).
Str("text", c.Text()).
Str("silence_manager", silenceManager.Name()).
Msg("Got new delete silence query via command")

args := strings.SplitN(c.Text(), " ", 2)
if !silenceManager.Enabled() {
return c.Reply(silenceManager.Name() + " is disabled.")
}

if len(args) <= 1 {
return c.Reply(fmt.Sprintf("Usage: %s <silence ID or labels>", args[0]))
}

return a.HandleDeleteSilence(c, a.Grafana, args[1])
}

func (a *App) HandleAlertmanagerDeleteSilence(c tele.Context) error {
a.Logger.Info().
Str("sender", c.Sender().Username).
Str("text", c.Text()).
Msg("Got new Alertmanager delete silence query")

if !a.Alertmanager.Enabled() {
return c.Reply("Alertmanager is disabled.")
}
args := strings.SplitN(c.Text(), " ", 2)

args := strings.SplitN(c.Text(), " ", 2)
if len(args) <= 1 {
return c.Reply(fmt.Sprintf("Usage: %s <silence ID or labels>", args[0]))
}

if len(args) <= 1 {
return c.Reply(fmt.Sprintf("Usage: %s <silence ID or labels>", args[0]))
return a.HandleDeleteSilenceGeneric(c, silenceManager, args[1])
}

return a.HandleDeleteSilence(c, a.Alertmanager, args[1])
}

func (a *App) HandleGrafanaCallbackDeleteSilence(c tele.Context) error {
a.Logger.Info().
Str("sender", c.Sender().Username).
Msg("Got new delete silence callback via button")

callback := c.Callback()

a.RemoveKeyboardItemByCallback(c, callback)
return a.HandleDeleteSilence(c, a.Grafana, callback.Data)
}

func (a *App) HandleAlertmanagerCallbackDeleteSilence(c tele.Context) error {
a.Logger.Info().
Str("sender", c.Sender().Username).
Msg("Got new delete Alertmanager silence callback via button")
func (a *App) HandleCallbackDeleteSilence(silenceManager types.SilenceManager) func(c tele.Context) error {
return func(c tele.Context) error {
a.Logger.Info().
Str("sender", c.Sender().Username).
Str("silence_manager", silenceManager.Name()).
Msg("Got new delete silence callback via button")

callback := c.Callback()
callback := c.Callback()

a.RemoveKeyboardItemByCallback(c, callback)
return a.HandleDeleteSilence(c, a.Alertmanager, callback.Data)
a.RemoveKeyboardItemByCallback(c, callback)
return a.HandleDeleteSilenceGeneric(c, silenceManager, callback.Data)
}
}

func (a *App) HandleDeleteSilence(
func (a *App) HandleDeleteSilenceGeneric(
c tele.Context,
silenceManager types.SilenceManager,
silenceID string,
Expand Down

0 comments on commit 9d07e15

Please sign in to comment.