diff --git a/Documentation/api.md b/Documentation/api.md index f82769006..3f31148b5 100644 --- a/Documentation/api.md +++ b/Documentation/api.md @@ -1233,3 +1233,25 @@ curl -L http://127.0.0.1:7001/v2/admin/config "promoteDelay": 1800 } ``` + +## Remove Machines + +At times you may want to manually remove a machine. Using the machines endpoint +you can find and remove machines. + +```sh +curl -L http://127.0.0.1:7001/v2/admin/machines/peer2 +``` + +```json +{ + "clientURL": "http://127.0.0.1:4002", + "name": "peer2", + "peerURL": "http://127.0.0.1:7002", + "state": "follower" +} +``` + +```sh +curl -L -XDELETE http://127.0.0.1:7001/v2/admin/machines/peer2 +``` diff --git a/server/peer_server.go b/server/peer_server.go index 984d8783f..d7a111400 100644 --- a/server/peer_server.go +++ b/server/peer_server.go @@ -355,6 +355,7 @@ func (s *PeerServer) HTTPHandler() http.Handler { router.HandleFunc("/v2/admin/config", s.setClusterConfigHttpHandler).Methods("PUT") router.HandleFunc("/v2/admin/machines", s.getMachinesHttpHandler).Methods("GET") router.HandleFunc("/v2/admin/machines/{name}", s.getMachineHttpHandler).Methods("GET") + router.HandleFunc("/v2/admin/machines/{name}", s.RemoveHttpHandler).Methods("DELETE") return router }