Skip to content

Commit

Permalink
feat: add .Prefixes() for SilenceManager
Browse files Browse the repository at this point in the history
  • Loading branch information
freak12techno committed Nov 8, 2024
1 parent de95fd6 commit 3227518
Show file tree
Hide file tree
Showing 10 changed files with 42 additions and 66 deletions.
2 changes: 1 addition & 1 deletion pkg/app/alerts_firing.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ func (a *App) HandleListFiringAlertsWithPagination(
for _, alert := range chunk {
button := menu.Data(
fmt.Sprintf("🔇Silence alert #%d", index+1),
silenceManager.GetPrepareSilencePrefix(),
silenceManager.Prefixes().PrepareSilence,
alert.Alert.GetCallbackHash(),
)

Check warning on line 138 in pkg/app/alerts_firing.go

View check run for this annotation

Codecov / codecov/patch

pkg/app/alerts_firing.go#L133-L138

Added lines #L133 - L138 were not covered by tests

Expand Down
9 changes: 5 additions & 4 deletions pkg/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,13 +109,14 @@ func (a *App) Start() {
alertSource := alertSourceWithSilenceManager.AlertSource
silenceManager := alertSourceWithSilenceManager.SilenceManager
alertSourcePrefixes := alertSourceWithSilenceManager.AlertSource.Prefixes()
silencesPrefixes := silenceManager.Prefixes()

a.Bot.Handle("\f"+alertSourcePrefixes.PaginatedFiringAlerts, a.HandleListFiringAlertsFromCallback(alertSource, silenceManager))

a.Bot.Handle("\f"+silenceManager.GetPaginatedSilencesListPrefix(), a.HandleListSilencesFromCallback(silenceManager))
a.Bot.Handle("\f"+silenceManager.GetUnsilencePrefix(), a.HandleCallbackDeleteSilence(silenceManager))
a.Bot.Handle("\f"+silenceManager.GetPrepareSilencePrefix(), a.HandlePrepareNewSilenceFromCallback(silenceManager, alertSource))
a.Bot.Handle("\f"+silenceManager.GetSilencePrefix(), a.HandleCallbackNewSilence(silenceManager, alertSource))
a.Bot.Handle("\f"+silencesPrefixes.PaginatedSilencesList, a.HandleListSilencesFromCallback(silenceManager))
a.Bot.Handle("\f"+silencesPrefixes.Unsilence, a.HandleCallbackDeleteSilence(silenceManager))
a.Bot.Handle("\f"+silencesPrefixes.PrepareSilence, a.HandlePrepareNewSilenceFromCallback(silenceManager, alertSource))
a.Bot.Handle("\f"+silencesPrefixes.Silence, a.HandleCallbackNewSilence(silenceManager, alertSource))
}

a.Logger.Info().Msg("Telegram bot listening")
Expand Down
4 changes: 2 additions & 2 deletions pkg/app/silences_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ func (a *App) HandlePrepareNewSilenceFromCallback(
for index, mute := range mutesDurations {
rows[index] = menu.Row(menu.Data(
fmt.Sprintf("⌛ Silence for %s", mute),
silenceManager.GetSilencePrefix(),
silenceManager.Prefixes().Silence,

Check warning on line 78 in pkg/app/silences_create.go

View check run for this annotation

Codecov / codecov/patch

pkg/app/silences_create.go#L78

Added line #L78 was not covered by tests
mute+" "+callback.Data,
))
}
Expand Down Expand Up @@ -143,7 +143,7 @@ func (a *App) HandleNewSilenceGeneric(
menu := &tele.ReplyMarkup{ResizeKeyboard: true}
menu.Inline(menu.Row(menu.Data(
"❌Unsilence",
silenceManager.GetUnsilencePrefix(),
silenceManager.Prefixes().Unsilence,

Check warning on line 146 in pkg/app/silences_create.go

View check run for this annotation

Codecov / codecov/patch

pkg/app/silences_create.go#L146

Added line #L146 was not covered by tests
silence.ID,
)))

Expand Down
8 changes: 5 additions & 3 deletions pkg/app/silences_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,12 @@ func (a *App) HandleListSilencesWithPagination(

rows := make([]tele.Row, 0)

prefixes := silenceManager.Prefixes()

Check warning on line 87 in pkg/app/silences_list.go

View check run for this annotation

Codecov / codecov/patch

pkg/app/silences_list.go#L86-L87

Added lines #L86 - L87 were not covered by tests
for _, silence := range chunk {
button := menu.Data(
fmt.Sprintf("❌Unsilence %s", silence.Silence.ID),
silenceManager.GetUnsilencePrefix(),
prefixes.Unsilence,

Check warning on line 91 in pkg/app/silences_list.go

View check run for this annotation

Codecov / codecov/patch

pkg/app/silences_list.go#L91

Added line #L91 was not covered by tests
silence.Silence.ID,
)

Expand All @@ -98,15 +100,15 @@ func (a *App) HandleListSilencesWithPagination(
if page >= 1 {
buttons = append(buttons, menu.Data(
fmt.Sprintf("⬅️Page %d", page),
silenceManager.GetPaginatedSilencesListPrefix(),
prefixes.PaginatedSilencesList,

Check warning on line 103 in pkg/app/silences_list.go

View check run for this annotation

Codecov / codecov/patch

pkg/app/silences_list.go#L103

Added line #L103 was not covered by tests
strconv.Itoa(page-1),
))
}

if page < len(silencesGrouped)-1 {
buttons = append(buttons, menu.Data(
fmt.Sprintf("➡️Page %d", page+2),
silenceManager.GetPaginatedSilencesListPrefix(),
prefixes.PaginatedSilencesList,

Check warning on line 111 in pkg/app/silences_list.go

View check run for this annotation

Codecov / codecov/patch

pkg/app/silences_list.go#L111

Added line #L111 was not covered by tests
strconv.Itoa(page+1),
))
}
Expand Down
21 changes: 7 additions & 14 deletions pkg/silence_manager/alertmanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,20 +32,13 @@ func (g *Alertmanager) Name() string {
return "Alertmanager"
}

func (g *Alertmanager) GetUnsilencePrefix() string {
return constants.AlertmanagerUnsilencePrefix
}

func (g *Alertmanager) GetSilencePrefix() string {
return constants.AlertmanagerSilencePrefix
}

func (g *Alertmanager) GetPrepareSilencePrefix() string {
return constants.AlertmanagerPrepareSilencePrefix
}

func (g *Alertmanager) GetPaginatedSilencesListPrefix() string {
return constants.AlertmanagerPaginatedSilencesList
func (g *Alertmanager) Prefixes() Prefixes {
return Prefixes{
PaginatedSilencesList: constants.AlertmanagerPaginatedSilencesList,
Silence: constants.AlertmanagerSilencePrefix,
PrepareSilence: constants.AlertmanagerPrepareSilencePrefix,
Unsilence: constants.AlertmanagerUnsilencePrefix,
}
}

func (g *Alertmanager) GetMutesDurations() []string {
Expand Down
5 changes: 0 additions & 5 deletions pkg/silence_manager/alertmanager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"errors"
"main/assets"
configPkg "main/pkg/config"
"main/pkg/constants"
loggerPkg "main/pkg/logger"
"main/pkg/types"
"testing"
Expand All @@ -22,10 +21,6 @@ func TestAlertmanagerBasic(t *testing.T) {

require.True(t, client.Enabled())
require.Equal(t, "Alertmanager", client.Name())
require.Equal(t, constants.AlertmanagerSilencePrefix, client.GetSilencePrefix())
require.Equal(t, constants.AlertmanagerUnsilencePrefix, client.GetUnsilencePrefix())
require.Equal(t, constants.AlertmanagerPaginatedSilencesList, client.GetPaginatedSilencesListPrefix())
require.Equal(t, constants.AlertmanagerPrepareSilencePrefix, client.GetPrepareSilencePrefix())
require.Equal(t, []string{"1h"}, client.GetMutesDurations())
}

Expand Down
21 changes: 7 additions & 14 deletions pkg/silence_manager/grafana.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,13 @@ func InitGrafana(config config.GrafanaConfig, logger *zerolog.Logger) *Grafana {
}
}

func (g *Grafana) GetUnsilencePrefix() string {
return constants.GrafanaUnsilencePrefix
}

func (g *Grafana) GetSilencePrefix() string {
return constants.GrafanaSilencePrefix
}

func (g *Grafana) GetPaginatedSilencesListPrefix() string {
return constants.GrafanaPaginatedSilencesList
}

func (g *Grafana) GetPrepareSilencePrefix() string {
return constants.GrafanaPrepareSilencePrefix
func (g *Grafana) Prefixes() Prefixes {
return Prefixes{
PaginatedSilencesList: constants.GrafanaPaginatedSilencesList,
Silence: constants.GrafanaSilencePrefix,
PrepareSilence: constants.GrafanaPrepareSilencePrefix,
Unsilence: constants.GrafanaUnsilencePrefix,
}
}

func (g *Grafana) Name() string {
Expand Down
5 changes: 0 additions & 5 deletions pkg/silence_manager/grafana_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"errors"
"main/assets"
configPkg "main/pkg/config"
"main/pkg/constants"
loggerPkg "main/pkg/logger"
"main/pkg/types"
"testing"
Expand All @@ -27,10 +26,6 @@ func TestGrafanaBasic(t *testing.T) {

require.True(t, client.Enabled())
require.Equal(t, "Grafana", client.Name())
require.Equal(t, constants.GrafanaSilencePrefix, client.GetSilencePrefix())
require.Equal(t, constants.GrafanaUnsilencePrefix, client.GetUnsilencePrefix())
require.Equal(t, constants.GrafanaPaginatedSilencesList, client.GetPaginatedSilencesListPrefix())
require.Equal(t, constants.GrafanaPrepareSilencePrefix, client.GetPrepareSilencePrefix())
require.Equal(t, []string{"1h"}, client.GetMutesDurations())
}

Expand Down
12 changes: 8 additions & 4 deletions pkg/silence_manager/silence_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,20 @@ import (
"time"
)

type Prefixes struct {
PaginatedSilencesList string
Silence string
PrepareSilence string
Unsilence string
}

type SilenceManager interface {
GetSilences() (types.Silences, error)
GetSilence(silenceID string) (types.Silence, error)
CreateSilence(silence types.Silence) (types.SilenceCreateResponse, error)
GetSilenceMatchingAlerts(silence types.Silence) ([]types.AlertmanagerAlert, error)
DeleteSilence(silenceID string) error
GetPaginatedSilencesListPrefix() string
GetSilencePrefix() string
GetPrepareSilencePrefix() string
GetUnsilencePrefix() string
Prefixes() Prefixes
Name() string
Enabled() bool
GetMutesDurations() []string
Expand Down
21 changes: 7 additions & 14 deletions pkg/silence_manager/stub_silence_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,20 +77,13 @@ func (m *StubSilenceManager) DeleteSilence(silenceID string) error {
}
}

func (m *StubSilenceManager) GetSilencePrefix() string {
return "stub_silence"
}

func (m *StubSilenceManager) GetUnsilencePrefix() string {
return "stub_unsilence"
}

func (m *StubSilenceManager) GetPaginatedSilencesListPrefix() string {
return "stub_paginate_silences"
}

func (m *StubSilenceManager) GetPrepareSilencePrefix() string {
return "stub_prepare_silence"
func (m *StubSilenceManager) Prefixes() Prefixes {
return Prefixes{
Silence: "stub_silence",
Unsilence: "stub_unsilence",
PaginatedSilencesList: "stub_paginated_silences_list",
PrepareSilence: "stub_prepare_silence",
}

Check warning on line 86 in pkg/silence_manager/stub_silence_manager.go

View check run for this annotation

Codecov / codecov/patch

pkg/silence_manager/stub_silence_manager.go#L80-L86

Added lines #L80 - L86 were not covered by tests
}

func (m *StubSilenceManager) Name() string {
Expand Down

0 comments on commit 3227518

Please sign in to comment.