From 83b8549080d791368b4b1dbeebe70c069864ab5e Mon Sep 17 00:00:00 2001 From: rishubhjain Date: Thu, 2 Aug 2018 18:49:26 -0400 Subject: [PATCH] API to Enable/Disable peer --- glusterd2/commands/peers/addpeer.go | 5 +++++ glusterd2/peer/peer.go | 1 + glusterd2/peer/self.go | 3 ++- pkg/api/peer_req_resp.go | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/glusterd2/commands/peers/addpeer.go b/glusterd2/commands/peers/addpeer.go index 307346b81..640b2c6c1 100644 --- a/glusterd2/commands/peers/addpeer.go +++ b/glusterd2/commands/peers/addpeer.go @@ -111,6 +111,10 @@ func addPeerHandler(w http.ResponseWriter, r *http.Request) { newpeer.Metadata[key] = value } + if req.Disabled { + newpeer.Disabled = req.Disabled + } + //check if remotePeerAddress already present found := utils.StringInSlice(remotePeerAddress, newpeer.PeerAddresses) //if not found prepend the remotePeerAddress to peer details @@ -142,6 +146,7 @@ func createPeerAddResp(p *peer.Peer) *api.PeerAddResp { Name: p.Name, PeerAddresses: p.PeerAddresses, ClientAddresses: p.ClientAddresses, + Disabled: p.Disabled, Metadata: p.Metadata, } } diff --git a/glusterd2/peer/peer.go b/glusterd2/peer/peer.go index aa0f16069..91f0d78c8 100644 --- a/glusterd2/peer/peer.go +++ b/glusterd2/peer/peer.go @@ -13,6 +13,7 @@ type Peer struct { Name string PeerAddresses []string ClientAddresses []string + Disabled bool Metadata map[string]string } diff --git a/glusterd2/peer/self.go b/glusterd2/peer/self.go index e0a369cbb..760f3f9d8 100644 --- a/glusterd2/peer/self.go +++ b/glusterd2/peer/self.go @@ -58,10 +58,11 @@ func AddSelfDetails() error { if err == errors.ErrPeerNotFound { p.Metadata = make(map[string]string) p.Metadata["_zone"] = p.ID.String() + p.Disabled = false } else if err == nil && peerInfo != nil { p.Metadata = peerInfo.Metadata - + p.Disabled = peerInfo.Disabled found := utils.StringInSlice(p.PeerAddresses[0], peerInfo.PeerAddresses) if !found { p.PeerAddresses = append(peerInfo.PeerAddresses, p.PeerAddresses...) diff --git a/pkg/api/peer_req_resp.go b/pkg/api/peer_req_resp.go index b1dba5710..567ab10f1 100644 --- a/pkg/api/peer_req_resp.go +++ b/pkg/api/peer_req_resp.go @@ -12,6 +12,7 @@ type Peer struct { ClientAddresses []string `json:"client-addresses"` Online bool `json:"online"` PID int `json:"pid,omitempty"` + Disabled bool `json:"disabled,omitempty"` Metadata map[string]string `json:"metadata"` } @@ -19,6 +20,7 @@ type Peer struct { type PeerAddReq struct { Addresses []string `json:"addresses"` Zone string `json:"zone,omitempty"` + Disabled bool `json:"disabled,omitempty"` Metadata map[string]string `json:"metadata,omitempty"` }