From 65484e80ef2bb1517b45a19232231cf81852eca6 Mon Sep 17 00:00:00 2001 From: Mesar Hameed Date: Tue, 16 May 2023 01:45:14 +0100 Subject: [PATCH] =?UTF-8?q?Feat:=20support=20username/password=20authentic?= =?UTF-8?q?ation=20for=20etcd=20filer=20store=20s=E2=80=A6=20(#4477)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Feat: support username/password authentication for etcd filer store seaweedfs/seaweedfs#4262 Co-authored-by: Mesar Hameed --- weed/command/scaffold/filer.toml | 2 ++ weed/filer/etcd/etcd_store.go | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/weed/command/scaffold/filer.toml b/weed/command/scaffold/filer.toml index 85c11f783..b4c20d2bf 100644 --- a/weed/command/scaffold/filer.toml +++ b/weed/command/scaffold/filer.toml @@ -262,6 +262,8 @@ routeByLatency = false [etcd] enabled = false servers = "localhost:2379" +username = "" +password = "" timeout = "3s" [mongodb] diff --git a/weed/filer/etcd/etcd_store.go b/weed/filer/etcd/etcd_store.go index b2e0fedda..50bfa4d8c 100644 --- a/weed/filer/etcd/etcd_store.go +++ b/weed/filer/etcd/etcd_store.go @@ -37,15 +37,18 @@ func (store *EtcdStore) Initialize(configuration weed_util.Configuration, prefix servers = "localhost:2379" } + username := configuration.GetString(prefix + "username") + password := configuration.GetString(prefix + "password") + timeout := configuration.GetString(prefix + "timeout") if timeout == "" { timeout = "3s" } - return store.initialize(servers, timeout) + return store.initialize(servers, username, password, timeout) } -func (store *EtcdStore) initialize(servers string, timeout string) (err error) { +func (store *EtcdStore) initialize(servers string, username string, password string, timeout string) (err error) { glog.Infof("filer store etcd: %s", servers) to, err := time.ParseDuration(timeout) @@ -55,6 +58,8 @@ func (store *EtcdStore) initialize(servers string, timeout string) (err error) { store.client, err = clientv3.New(clientv3.Config{ Endpoints: strings.Split(servers, ","), + Username: username, + Password: password, DialTimeout: to, }) if err != nil {