From 0755477020c2dffa85bdf3ff0d2f4402e8c53971 Mon Sep 17 00:00:00 2001 From: Astone Date: Mon, 14 Nov 2022 14:09:00 +0800 Subject: [PATCH] feat: add multiple endpoints support for remote --- remote/remote.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/remote/remote.go b/remote/remote.go index 0177288..63e69c1 100644 --- a/remote/remote.go +++ b/remote/remote.go @@ -10,6 +10,7 @@ import ( "bytes" "io" "os" + "strings" crypt "github.com/sagikazarmark/crypt/config" @@ -75,6 +76,7 @@ func getConfigManager(rp viper.RemoteProvider) (crypt.ConfigManager, error) { var cm crypt.ConfigManager var err error + endpoints := strings.Split(rp.Endpoint(), ";") if rp.SecretKeyring() != "" { var kr *os.File kr, err = os.Open(rp.SecretKeyring()) @@ -84,24 +86,24 @@ func getConfigManager(rp viper.RemoteProvider) (crypt.ConfigManager, error) { defer kr.Close() switch rp.Provider() { case "etcd": - cm, err = crypt.NewEtcdConfigManager([]string{rp.Endpoint()}, kr) + cm, err = crypt.NewEtcdConfigManager(endpoints, kr) case "etcd3": - cm, err = crypt.NewEtcdV3ConfigManager([]string{rp.Endpoint()}, kr) + cm, err = crypt.NewEtcdV3ConfigManager(endpoints, kr) case "firestore": - cm, err = crypt.NewFirestoreConfigManager([]string{rp.Endpoint()}, kr) + cm, err = crypt.NewFirestoreConfigManager(endpoints, kr) default: - cm, err = crypt.NewConsulConfigManager([]string{rp.Endpoint()}, kr) + cm, err = crypt.NewConsulConfigManager(endpoints, kr) } } else { switch rp.Provider() { case "etcd": - cm, err = crypt.NewStandardEtcdConfigManager([]string{rp.Endpoint()}) + cm, err = crypt.NewStandardEtcdConfigManager(endpoints) case "etcd3": - cm, err = crypt.NewStandardEtcdV3ConfigManager([]string{rp.Endpoint()}) + cm, err = crypt.NewStandardEtcdV3ConfigManager(endpoints) case "firestore": - cm, err = crypt.NewStandardFirestoreConfigManager([]string{rp.Endpoint()}) + cm, err = crypt.NewStandardFirestoreConfigManager(endpoints) default: - cm, err = crypt.NewStandardConsulConfigManager([]string{rp.Endpoint()}) + cm, err = crypt.NewStandardConsulConfigManager(endpoints) } } if err != nil {