~swift-coresec/ubuntu/natty/swift/trunk

« back to all changes in this revision

Viewing changes to bin/swift-get-nodes

  • Committer: Monty Taylor
  • Date: 2010-10-21 18:42:04 UTC
  • mfrom: (39.2.70 debian)
  • Revision ID: mordred@inaugust.com-20101021184204-qou1ql2479nfmmi3
* New upstream release.
* Updated to standards version 3.9.1. 
* Use jquery package to provide jquery.js.
* Updated some of the control file to make lintian happy.
* Added swift-bench to swift package.
* swift-auth-create-account is now swift-auth-add-user.
* Added paste-deploy as a depend.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
 
24
24
if len(sys.argv) < 3 or len(sys.argv) > 5:
25
 
    print 'Usage: %s <ring.gz> <account> [<container>] [<object>]' % sys.argv[0]
 
25
    print 'Usage: %s <ring.gz> <account> [<container>] [<object>]' \
 
26
      % sys.argv[0]
26
27
    print 'Shows the nodes responsible for the item specified.'
27
28
    print 'Example:'
28
29
    print '    $ %s /etc/swift/account.ring.gz MyAccount' % sys.argv[0]
31
32
    print '    10.1.1.7:8000 sdd1'
32
33
    print '    10.1.9.2:8000 sdb1'
33
34
    print '    10.1.5.5:8000 sdf1'
 
35
    print '    10.1.5.9:8000 sdt1 # [Handoff]'
34
36
    sys.exit(1)
35
37
 
36
38
ringloc = None
38
40
container = None
39
41
obj = None
40
42
 
41
 
if len(sys.argv) > 4: ring,account,container,obj = sys.argv[1:5]
42
 
elif len(sys.argv) > 3: ring,account,container = sys.argv[1:4]
43
 
elif len(sys.argv) > 2: ring,account = sys.argv[1:3]
 
43
if len(sys.argv) > 4:
 
44
    # Acount, Container and Object
 
45
    ring, account, container, obj = sys.argv[1:5]
 
46
    hash_str = hash_path(account, container, obj)
 
47
    part, nodes = Ring(ring).get_nodes(account, container, obj)
 
48
    target = "%s/%s/%s" % (account, container, obj)
 
49
    loc = 'objects'
 
50
elif len(sys.argv) > 3:
 
51
    # Account, Container
 
52
    ring, account, container = sys.argv[1:4]
 
53
    hash_str = hash_path(account, container)
 
54
    part, nodes = Ring(ring).get_nodes(account, container)
 
55
    target = "%s/%s" % (account, container)
 
56
    loc = 'containers'
 
57
elif len(sys.argv) > 2:
 
58
    # Account
 
59
    ring, account = sys.argv[1:3]
 
60
    hash_str = hash_path(account)
 
61
    part, nodes = Ring(ring).get_nodes(account)
 
62
    target = "%s" % (account)
 
63
    loc = 'accounts'
 
64
 
 
65
more_nodes = list(Ring(ring).get_more_nodes(part))
44
66
 
45
67
print '\nAccount \t%s' % account
46
68
print 'Container\t%s' % container
47
69
print 'Object   \t%s\n' % obj
 
70
print '\nPartition\t%s' % part
 
71
print 'Hash       \t%s\n' % hash_str
48
72
 
49
 
if obj:
50
 
    hash_str = hash_path(account,container,obj)
51
 
    part, nodes = Ring(ring).get_nodes(account,container,obj)
52
 
    for node in nodes:
53
 
        print 'Server:Port Device\t%s:%s %s' % (node['ip'], node['port'], node['device'])
54
 
    print '\nPartition\t%s' % part
55
 
    print 'Hash        \t%s\n' % hash_str
56
 
    for node in nodes:
57
 
      acct_cont_obj = "%s/%s/%s" % (account, container, obj)
58
 
      print 'curl -I -XHEAD "http://%s:%s/%s/%s/%s"' % (node['ip'],node['port'],node['device'],part,urllib.quote(acct_cont_obj))
59
 
    print "\n"
60
 
    for node in nodes:
61
 
      print 'ssh %s "ls -lah /srv/node/%s/objects/%s/%s/%s/"' % (node['ip'],node['device'],part,hash_str[-3:],hash_str)
62
 
elif container:
63
 
    hash_str = hash_path(account,container)
64
 
    part, nodes = Ring(ring).get_nodes(account,container)
65
 
    for node in nodes:
66
 
        print 'Server:Port Device\t%s:%s %s' % (node['ip'], node['port'], node['device'])
67
 
    print '\nPartition %s' % part
68
 
    print 'Hash %s\n' % hash_str
69
 
    for node in nodes:
70
 
      acct_cont = "%s/%s" % (account,container)
71
 
      print 'curl -I -XHEAD "http://%s:%s/%s/%s/%s"' % (node['ip'],node['port'],node['device'],part,urllib.quote(acct_cont))
72
 
    print "\n"
73
 
    for node in nodes:
74
 
      print 'ssh %s "ls -lah /srv/node/%s/containers/%s/%s/%s/%s.db"' % (node['ip'],node['device'],part,hash_str[-3:],hash_str,hash_str)
75
 
elif account:
76
 
    hash_str = hash_path(account)
77
 
    part, nodes = Ring(ring).get_nodes(account)
78
 
    for node in nodes:
79
 
        print 'Server:Port Device\t%s:%s %s' % (node['ip'], node['port'], node['device'])
80
 
    print '\nPartition %s' % part
81
 
    print 'Hash %s\n' % hash_str
82
 
    for node in nodes:
83
 
      print 'curl -I -XHEAD "http://%s:%s/%s/%s/%s"' % (node['ip'],node['port'],node['device'],part, urllib.quote(account))
84
 
    print "\n"
85
 
    for node in nodes:
86
 
      print 'ssh %s "ls -lah /srv/node/%s/accounts/%s/%s/%s/%s.db"' % (node['ip'],node['device'],part,hash_str[-3:],hash_str,hash_str)
87
 
    print "\n\n"
 
73
for node in nodes:
 
74
    print 'Server:Port Device\t%s:%s %s' % (node['ip'], node['port'],
 
75
        node['device'])
 
76
for mnode in more_nodes:
 
77
    print 'Server:Port Device\t%s:%s %s\t [Handoff]' \
 
78
        % (mnode['ip'], mnode['port'], mnode['device'])
 
79
print "\n"
 
80
for node in nodes:
 
81
    print 'curl -I -XHEAD "http://%s:%s/%s/%s/%s"' \
 
82
        % (node['ip'], node['port'], node['device'], part,
 
83
        urllib.quote(target))
 
84
for mnode in more_nodes:
 
85
    print 'curl -I -XHEAD "http://%s:%s/%s/%s/%s" # [Handoff]' \
 
86
        % (mnode['ip'], mnode['port'], mnode['device'], part,
 
87
        urllib.quote(target))
 
88
print "\n"
 
89
for node in nodes:
 
90
    print 'ssh %s "ls -lah /srv/node/%s/%s/%s/%s/%s/"' \
 
91
        % (node['ip'], node['device'], loc, part, hash_str[-3:], hash_str)
 
92
for mnode in more_nodes:
 
93
    print 'ssh %s "ls -lah /srv/node/%s/%s/%s/%s/%s/" # [Handoff]' \
 
94
        % (mnode['ip'], mnode['device'], loc, part, hash_str[-3:], hash_str)