Fix swift-ring-builder's list_parts command.
I broke it in 7548cb9 when a ring's replica count changed from an int to a float. Change-Id: I49fa7e2961a09daad0c96e19cf1e39fec248d998
This commit is contained in:
parent
f6d1fa1c15
commit
35acd5912f
@ -18,6 +18,7 @@ import cPickle as pickle
|
|||||||
from array import array
|
from array import array
|
||||||
from errno import EEXIST
|
from errno import EEXIST
|
||||||
from itertools import islice, izip
|
from itertools import islice, izip
|
||||||
|
from math import ceil
|
||||||
from os import mkdir
|
from os import mkdir
|
||||||
from os.path import basename, abspath, dirname, exists, join as pathjoin
|
from os.path import basename, abspath, dirname, exists, join as pathjoin
|
||||||
from sys import argv, exit
|
from sys import argv, exit
|
||||||
@ -167,16 +168,17 @@ swift-ring-builder <builder_file> list_parts <search-value> [<search-value>] ..
|
|||||||
print 'No matching devices found'
|
print 'No matching devices found'
|
||||||
exit(EXIT_ERROR)
|
exit(EXIT_ERROR)
|
||||||
devs = [d['id'] for d in devs]
|
devs = [d['id'] for d in devs]
|
||||||
matches = [array('i') for x in xrange(builder.replicas)]
|
max_replicas = int(ceil(builder.replicas))
|
||||||
|
matches = [array('i') for x in xrange(max_replicas)]
|
||||||
for part in xrange(builder.parts):
|
for part in xrange(builder.parts):
|
||||||
count = len([d for d in builder.get_part_devices(part)
|
count = len([d for d in builder.get_part_devices(part)
|
||||||
if d['id'] in devs])
|
if d['id'] in devs])
|
||||||
if count:
|
if count:
|
||||||
matches[builder.replicas - count].append(part)
|
matches[max_replicas - count].append(part)
|
||||||
print 'Partition Matches'
|
print 'Partition Matches'
|
||||||
for index, parts in enumerate(matches):
|
for index, parts in enumerate(matches):
|
||||||
for part in parts:
|
for part in parts:
|
||||||
print '%9d %7d' % (part, builder.replicas - index)
|
print '%9d %7d' % (part, max_replicas - index)
|
||||||
exit(EXIT_SUCCESS)
|
exit(EXIT_SUCCESS)
|
||||||
|
|
||||||
def add():
|
def add():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user