1
0
Fork 0

Add system test helper function Remove()

master
Philip O'Toole 8 years ago
parent 2bbc4e20be
commit e57e5536be

@ -180,7 +180,8 @@ func (c Cluster) Followers() ([]*Node, error) {
return followers, nil
}
// RemoveNode removes the given node from the cluster.
// RemoveNode removes the given node from the list of nodes representing
// a cluster.
func (c Cluster) RemoveNode(node *Node) {
for i, n := range c {
if n.RaftAddr == node.RaftAddr {
@ -207,6 +208,25 @@ func (c Cluster) Deprovision() {
}
}
// Remove tells the cluster at n to remove the node at addr. Assumes n is the leader.
func Remove(n *Node, addr string) error {
b, err := json.Marshal(map[string]string{"addr": addr})
if err != nil {
return err
}
// Attempt to remove node from leader.
resp, err := http.Post("http://"+n.APIAddr+"/remove", "application-type/json", bytes.NewReader(b))
if err != nil {
return err
}
if resp.StatusCode != 200 {
return fmt.Errorf("failed to remove node, leader returned: %s", resp.Status)
}
defer resp.Body.Close()
return nil
}
func mustNewNode(enableSingle bool) *Node {
node := &Node{
Dir: mustTempDir(),

Loading…
Cancel
Save