@@ -622,6 +622,13 @@ func clusterPutJoin(d *Daemon, r *http.Request, req api.ClusterPut) response.Res
622
622
return err
623
623
}
624
624
625
+ reverter .Add (func () {
626
+ err = client .DeleteClusterMember (req .ServerName , true )
627
+ if err != nil {
628
+ logger .Errorf ("Failed request to delete cluster member: %v" , err )
629
+ }
630
+ })
631
+
625
632
// Now request for this node to be added to the list of cluster nodes.
626
633
info , err := clusterAcceptMember (client , req .ServerName , localHTTPSAddress , cluster .SchemaVersion , version .APIExtensionsCount (), pools , networks )
627
634
if err != nil {
@@ -2034,7 +2041,7 @@ func clusterNodeDelete(d *Daemon, r *http.Request) response.Response {
2034
2041
2035
2042
// First check that the node is clear from containers and images and
2036
2043
// make it leave the database cluster, if it's part of it.
2037
- address , err := cluster .Leave (s , d .gateway , name , force == 1 )
2044
+ address , err := cluster .Leave (s , d .gateway , name , force == 1 , true )
2038
2045
if err != nil {
2039
2046
return response .SmartError (err )
2040
2047
}
@@ -2099,7 +2106,7 @@ func clusterNodeDelete(d *Daemon, r *http.Request) response.Response {
2099
2106
}
2100
2107
2101
2108
// Remove node from the database
2102
- err = cluster .Purge (s .DB .Cluster , name )
2109
+ err = cluster .Purge (s .DB .Cluster , name , true )
2103
2110
if err != nil {
2104
2111
return response .SmartError (fmt .Errorf ("Failed to remove member from database: %w" , err ))
2105
2112
}
0 commit comments