1
0
Fork 0

Set credentials on Remover

master
Philip O'Toole 10 months ago
parent 800d79c82e
commit d45e1b0e6e

@ -24,6 +24,7 @@ type Remover struct {
timeout time.Duration
control Control
client *Client
creds *Credentials
log *log.Logger
}
@ -38,6 +39,11 @@ func NewRemover(client *Client, timeout time.Duration, control Control) *Remover
}
}
// SetCredentials sets the credentials for the Remover.
func (r *Remover) SetCredentials(creds *Credentials) {
r.creds = creds
}
// Do executes the node-removal operation.
func (r *Remover) Do(id string, confirm bool) error {
rn := &command.RemoveNodeRequest{
@ -53,7 +59,7 @@ func (r *Remover) Do(id string, confirm bool) error {
}
r.log.Printf("removing node %s from cluster via leader at %s", id, laddr)
if innerErr = r.client.RemoveNode(rn, laddr, nil, r.timeout); innerErr != nil {
if innerErr = r.client.RemoveNode(rn, laddr, r.creds, r.timeout); innerErr != nil {
r.log.Printf("failed to remove node %s from cluster via leader at %s: %s", id, laddr, innerErr)
return innerErr
}

@ -195,6 +195,7 @@ func main() {
if cfg.RaftClusterRemoveOnShutdown {
remover := cluster.NewRemover(clstrClient, 5*time.Second, str)
remover.SetCredentials(credentialsFor(credStr, cfg.JoinAs))
log.Printf("initiating removal of this node from cluster before shutdown")
if err := remover.Do(cfg.NodeID, true); err != nil {
log.Fatalf("failed to remove this node from cluster before shutdown: %s", err.Error())

Loading…
Cancel
Save