From 6847a3551df322cfda90db867863d0bfac90df06 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Thu, 28 Apr 2016 16:22:47 +0000 Subject: [PATCH] Persist the ring in Shutdown() and AdminTakeoverRanges(). Also make AdminTakeoverRanges cause pending ops to be retried. --- ipam/allocator.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ipam/allocator.go b/ipam/allocator.go index 6d1ed7c4..404716ec 100644 --- a/ipam/allocator.go +++ b/ipam/allocator.go @@ -402,6 +402,7 @@ func (alloc *Allocator) Shutdown() { alloc.cancelOps(&alloc.pendingPrimes) if heir := alloc.pickPeerForTransfer(); heir != mesh.UnknownPeerName { alloc.ring.Transfer(alloc.ourName, heir) + alloc.persistRing() alloc.space.Clear() alloc.gossip.GossipBroadcast(alloc.Gossip()) time.Sleep(100 * time.Millisecond) @@ -439,7 +440,7 @@ func (alloc *Allocator) AdminTakeoverRanges(peerNameOrNickname string) address.C } before := alloc.space.NumFreeAddresses() - alloc.space.AddRanges(newRanges) + alloc.ringUpdated() after := alloc.space.NumFreeAddresses() alloc.gossip.GossipBroadcast(alloc.Gossip())