Allow actual paths to work for swift-get-nodes

Change-Id: I29f9ab73c8ca2a3c52247fb92ef951dd5b5246cb
This commit is contained in:
David Goetz 2013-01-04 11:09:29 -08:00
parent dc8d0e0692
commit ded504600f

View File

@ -34,6 +34,8 @@ if (len(args) < 2 or len(args) > 4) and \
print 'Usage: %s [-a] <ring.gz> <account> [<container>] [<object>]' \ print 'Usage: %s [-a] <ring.gz> <account> [<container>] [<object>]' \
% sys.argv[0] % sys.argv[0]
print ' Or: %s [-a] <ring.gz> -p partition' % sys.argv[0] print ' Or: %s [-a] <ring.gz> -p partition' % sys.argv[0]
print ' Note: account, container, object can also be a single arg ' \
'separated by /'
print 'Shows the nodes responsible for the item specified.' print 'Shows the nodes responsible for the item specified.'
print 'Example:' print 'Example:'
print ' $ %s /etc/swift/account.ring.gz MyAccount' % sys.argv[0] print ' $ %s /etc/swift/account.ring.gz MyAccount' % sys.argv[0]
@ -45,6 +47,11 @@ if (len(args) < 2 or len(args) > 4) and \
print ' 10.1.5.9:8000 sdt1 # [Handoff]' print ' 10.1.5.9:8000 sdt1 # [Handoff]'
sys.exit(1) sys.exit(1)
if len(args) == 2 and '/' in args[1]:
# Parse single path arg, as noted in above help text.
path = args[1].lstrip('/')
args = [args[0]] + [p for p in path.split('/', 2) if p]
ringloc = None ringloc = None
account = None account = None
container = None container = None