From 0de9c72b3e39456c86962bc7366f4bcc7bbeb565 Mon Sep 17 00:00:00 2001 From: Michael Banck Date: Mon, 18 Nov 2024 11:35:40 +0100 Subject: [PATCH 1/2] Fix retry-num parameter handling. This introduces --retry-num and --retry-after command-line parameters and makes sure the value for `retry-num' is more than zero as otherwise the ARP client is not being launched. Fixes: #272 --- vipconfig/config.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vipconfig/config.go b/vipconfig/config.go index 6c1c93e..becd3cd 100644 --- a/vipconfig/config.go +++ b/vipconfig/config.go @@ -72,6 +72,9 @@ func defineFlags() { pflag.String("interval", "1000", "DCS scan interval in milliseconds.") pflag.String("manager-type", "basic", "Type of VIP-management to be used. Supported values: basic, hetzner.") + pflag.String("retry-after", "250", "Time to wait before retrying interactions with outside components in milliseconds.") + pflag.String("retry-num", "3", "Number of times interactions with outside components are retried.") + pflag.Bool("verbose", false, "Be verbose. Currently only implemented for manager-type=hetzner .") pflag.CommandLine.SortFlags = false @@ -200,6 +203,11 @@ func setDefaults() { viper.Set("trigger-value", triggerValue) } } + + // set retry-num to default if not set or set to zero + if retryNum := viper.GetString("retry-num"); retryNum == "" || retryNum == "0" { + viper.Set("retry-num", 3) + } } func checkSetting(name string) bool { From 40b40a1d09a8ed88fffd890e5dbe73cc7e12f41f Mon Sep 17 00:00:00 2001 From: Pavlo Golub Date: Tue, 19 Nov 2024 13:13:38 +0100 Subject: [PATCH 2/2] use pflag.Int() for integer parameters --- vipconfig/config.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/vipconfig/config.go b/vipconfig/config.go index becd3cd..1f20e9a 100644 --- a/vipconfig/config.go +++ b/vipconfig/config.go @@ -69,11 +69,11 @@ func defineFlags() { pflag.String("consul-token", "", "Token for consul DCS endpoints.") - pflag.String("interval", "1000", "DCS scan interval in milliseconds.") + pflag.Int("interval", 1000, "DCS scan interval in milliseconds.") pflag.String("manager-type", "basic", "Type of VIP-management to be used. Supported values: basic, hetzner.") - pflag.String("retry-after", "250", "Time to wait before retrying interactions with outside components in milliseconds.") - pflag.String("retry-num", "3", "Number of times interactions with outside components are retried.") + pflag.Int("retry-after", 250, "Time to wait before retrying interactions with outside components in milliseconds.") + pflag.Int("retry-num", 3, "Number of times interactions with outside components are retried.") pflag.Bool("verbose", false, "Be verbose. Currently only implemented for manager-type=hetzner .") @@ -156,12 +156,12 @@ func mapDeprecated() error { } func setDefaults() { - defaults := map[string]string{ - "dcs-type": "etcd", - "interval": "1000", + defaults := map[string]any{ "hostingtype": "basic", - "retry-num": "3", - "retry-after": "250", + "dcs-type": "etcd", + "interval": 1000, + "retry-after": 250, + "retry-num": 3, } for k, v := range defaults { @@ -205,7 +205,7 @@ func setDefaults() { } // set retry-num to default if not set or set to zero - if retryNum := viper.GetString("retry-num"); retryNum == "" || retryNum == "0" { + if retryNum := viper.GetInt("retry-num"); retryNum <= 0 { viper.Set("retry-num", 3) } }