From f3f7c215a79da0a3cb4a45806419536bfceb2e96 Mon Sep 17 00:00:00 2001 From: Ian Fijolek Date: Mon, 19 Dec 2022 15:05:37 -0800 Subject: [PATCH] Breaking: Remove python compat flag --- README.md | 2 +- alert.go | 19 ------------------- alert_test.go | 5 ----- config.go | 12 ------------ config_test.go | 6 ------ main.go | 4 ---- 6 files changed, 1 insertion(+), 47 deletions(-) diff --git a/README.md b/README.md index 4e0a524..1f5f8a0 100644 --- a/README.md +++ b/README.md @@ -158,7 +158,7 @@ minitor-go: check_interval: 1m30s ``` -For the time being, legacy configs for the Python version of Minitor should be compatible if you apply the `-py-compat` flag when running Minitor. Eventually, this flag will go away when later breaking changes are introduced. +The `-py-compat` flag has been removed. Any existing Python oriented configuration needs to be migrated to the new templates. ## Future diff --git a/alert.go b/alert.go index 4935216..740463b 100644 --- a/alert.go +++ b/alert.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "os/exec" - "strings" "text/template" "time" @@ -45,26 +44,12 @@ func (alert Alert) IsValid() bool { // BuildTemplates compiles command templates for the Alert func (alert *Alert) BuildTemplates() error { - // TODO: Remove legacy template support later after 1.0 - legacy := strings.NewReplacer( - "{alert_count}", "{{.AlertCount}}", - "{alert_message}", "{{.MonitorName}} check has failed {{.FailureCount}} times", - "{failure_count}", "{{.FailureCount}}", - "{last_output}", "{{.LastCheckOutput}}", - "{last_success}", "{{.LastSuccess}}", - "{monitor_name}", "{{.MonitorName}}", - ) - slog.Debugf("Building template for alert %s", alert.Name) switch { case alert.commandTemplate == nil && alert.Command.Command != nil: alert.commandTemplate = []*template.Template{} for i, cmdPart := range alert.Command.Command { - if PyCompat { - cmdPart = legacy.Replace(cmdPart) - } - alert.commandTemplate = append(alert.commandTemplate, template.Must( template.New(alert.Name+fmt.Sprint(i)).Parse(cmdPart), )) @@ -72,10 +57,6 @@ func (alert *Alert) BuildTemplates() error { case alert.commandShellTemplate == nil && alert.Command.ShellCommand != "": shellCmd := alert.Command.ShellCommand - if PyCompat { - shellCmd = legacy.Replace(shellCmd) - } - alert.commandShellTemplate = template.Must( template.New(alert.Name).Parse(shellCmd), ) diff --git a/alert_test.go b/alert_test.go index 18c4bdc..ff15a5d 100644 --- a/alert_test.go +++ b/alert_test.go @@ -100,8 +100,6 @@ func TestAlertSend(t *testing.T) { for _, c := range cases { log.Printf("Testing case %s", c.name) - // Set PyCompat to value of compat flag - PyCompat = c.pyCompat err := c.alert.BuildTemplates() if err != nil { @@ -121,9 +119,6 @@ func TestAlertSend(t *testing.T) { log.Printf("Case failed: %s", c.name) } - // Set PyCompat back to default value - PyCompat = false - log.Println("-----") } } diff --git a/config.go b/config.go index 0e3c7d6..64cf410 100644 --- a/config.go +++ b/config.go @@ -182,18 +182,6 @@ func LoadConfig(filePath string) (config Config, err error) { slog.Debugf("Config values:\n%v\n", config) - // Add log alert if not present - if PyCompat { - // Initialize alerts list if not present - if config.Alerts == nil { - config.Alerts = map[string]*Alert{} - } - - if _, ok := config.Alerts["log"]; !ok { - config.Alerts["log"] = NewLogAlert() - } - } - // Finish initializing configuration if err = config.Init(); err != nil { return diff --git a/config_test.go b/config_test.go index 1f023c7..2a20bad 100644 --- a/config_test.go +++ b/config_test.go @@ -15,7 +15,6 @@ func TestLoadConfig(t *testing.T) { }{ {"./test/valid-config.yml", false, "Valid config file", false}, {"./test/valid-config-default-values.yml", false, "Valid config file with default values", false}, - {"./test/valid-default-log-alert.yml", false, "Valid config file with default log alert PyCompat", true}, {"./test/valid-default-log-alert.yml", true, "Invalid config file no log alert", false}, {"./test/does-not-exist", true, "Invalid config path", false}, {"./test/invalid-config-type.yml", true, "Invalid config type for key", false}, @@ -25,8 +24,6 @@ func TestLoadConfig(t *testing.T) { for _, c := range cases { log.Printf("Testing case %s", c.name) - // Set PyCompat based on compatibility mode - PyCompat = c.pyCompat _, err := LoadConfig(c.configPath) hasErr := (err != nil) @@ -34,9 +31,6 @@ func TestLoadConfig(t *testing.T) { t.Errorf("LoadConfig(%v), expected_error=%v actual=%v", c.name, c.expectErr, err) log.Printf("Case failed: %s", c.name) } - - // Set PyCompat to default value - PyCompat = false } } diff --git a/main.go b/main.go index 97249e2..39f8e14 100644 --- a/main.go +++ b/main.go @@ -17,9 +17,6 @@ var ( // Metrics contains all active metrics Metrics = NewMetrics() - // PyCompat enables support for legacy Python templates - PyCompat = false - // version of minitor being run version = "dev" @@ -97,7 +94,6 @@ func main() { flag.BoolVar(&slog.DebugLevel, "debug", false, "Enables debug logs (default: false)") flag.BoolVar(&ExportMetrics, "metrics", false, "Enables prometheus metrics exporting (default: false)") - flag.BoolVar(&PyCompat, "py-compat", false, "Enables support for legacy Python Minitor config. Will eventually be removed. (default: false)") flag.IntVar(&MetricsPort, "metrics-port", MetricsPort, "The port that Prometheus metrics should be exported on, if enabled. (default: 8080)") flag.Parse()