From f6966548ebcc2faf3bf7c46665c1dfbdc5421f21 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 3 May 2016 12:34:32 +0100 Subject: [PATCH] Delete persisted data when IPAM range changes --- ipam/allocator.go | 5 +++++ test/362_ipalloc_range_change.sh | 14 ++++++++++++++ 2 files changed, 19 insertions(+) create mode 100755 test/362_ipalloc_range_change.sh diff --git a/ipam/allocator.go b/ipam/allocator.go index d708702a..e95e01bb 100644 --- a/ipam/allocator.go +++ b/ipam/allocator.go @@ -917,6 +917,11 @@ func (alloc *Allocator) loadPersistedData() bool { return false } + if persistedRing.Range() != alloc.universe { + overwritePersisted("Deleting persisted data for IPAM range %s; our range is %s", persistedRing.Range(), alloc.universe) + return false + } + alloc.ring = persistedRing alloc.space.UpdateRanges(alloc.ring.OwnedRanges()) diff --git a/test/362_ipalloc_range_change.sh b/test/362_ipalloc_range_change.sh new file mode 100755 index 00000000..d7fab65a --- /dev/null +++ b/test/362_ipalloc_range_change.sh @@ -0,0 +1,14 @@ +#! /bin/bash + +. ./config.sh + +start_suite "IPAM alloc range change" + +weave_on $HOST1 launch --ipalloc-range 10.2.0.0/16 +weave_on $HOST1 prime +weave_on $HOST1 stop +weave_on $HOST1 launch --ipalloc-range 10.3.0.0/16 +# Ensure allocations can proceed +assert_raises "timeout 10 cat <( start_container $HOST1 )" + +end_suite