summaryrefslogtreecommitdiff
path: root/bin/swift-ring-builder
diff options
context:
space:
mode:
authorCaleb Tennis <caleb.tennis@gmail.com>2010-08-21 18:21:59 +0000
committerCaleb Tennis <caleb.tennis@gmail.com>2010-08-21 18:21:59 +0000
commitdb90da2763cd3a2a364989d5965cfa6d08e88224 (patch)
tree4852b08b45a65753f2251d6bfe1edb91fd13f3fe /bin/swift-ring-builder
parent4d66a8cbe73831d3e575c939f86148ce09fb0503 (diff)
downloadswift-db90da2763cd3a2a364989d5965cfa6d08e88224.tar.gz
Remove the exception from the unit test, since we don't bomb out anymore. Also, add a warning to swift-ring-builder if you're building an empty ring, or do a write_ring and you aren't rebalanced
Diffstat (limited to 'bin/swift-ring-builder')
-rwxr-xr-xbin/swift-ring-builder10
1 files changed, 8 insertions, 2 deletions
diff --git a/bin/swift-ring-builder b/bin/swift-ring-builder
index 877590da2..50353df25 100755
--- a/bin/swift-ring-builder
+++ b/bin/swift-ring-builder
@@ -533,10 +533,16 @@ Exit codes: 0 = ring changed, 1 = ring did not change, 2 = error
exit(EXIT_RING_UNCHANGED)
elif argv[2] == 'write_ring':
- pickle.dump(builder.get_ring(),
+ ring_data = builder.get_ring()
+ if not ring_data._replica2part2dev_id:
+ if ring_data.devs:
+ print 'Warning: Writing a ring with no partition assignments but with devices; did you forget to run "rebalance"?'
+ else:
+ print 'Warning: Writing an empty ring'
+ pickle.dump(ring_data,
GzipFile(pathjoin(backup_dir, '%d.' % time() +
basename(ring_file)), 'wb'), protocol=2)
- pickle.dump(builder.get_ring(), GzipFile(ring_file, 'wb'), protocol=2)
+ pickle.dump(ring_data, GzipFile(ring_file, 'wb'), protocol=2)
exit(EXIT_RING_CHANGED)
elif argv[2] == 'pretend_min_part_hours_passed':