Statistics
| Branch: | Tag: | Revision:

root / tools / list_servers @ b016b476

History | View | Annotate | Download (1.1 kB)

1 2e2bd2a6 Giorgos Verigakis
#!/usr/bin/env python
2 2e2bd2a6 Giorgos Verigakis
3 2e2bd2a6 Giorgos Verigakis
from util import *
4 2e2bd2a6 Giorgos Verigakis
5 2e2bd2a6 Giorgos Verigakis
from httplib import HTTPConnection
6 2e2bd2a6 Giorgos Verigakis
from optparse import OptionParser
7 2e2bd2a6 Giorgos Verigakis
from sys import exit
8 2e2bd2a6 Giorgos Verigakis
9 2e2bd2a6 Giorgos Verigakis
import json
10 2e2bd2a6 Giorgos Verigakis
11 2e2bd2a6 Giorgos Verigakis
parser = OptionParser(add_help_option=True)
12 2e2bd2a6 Giorgos Verigakis
parser.add_option('-s', dest='host', metavar='HOST', default=DEFAULT_HOST,
13 2e2bd2a6 Giorgos Verigakis
                    help='use server HOST')
14 2e2bd2a6 Giorgos Verigakis
parser.add_option('-a', dest='api', metavar='API', default=DEFAULT_API,
15 2e2bd2a6 Giorgos Verigakis
                    help='use api API')
16 2e2bd2a6 Giorgos Verigakis
parser.add_option('-l',  action='store_true', dest='detail', default=False,
17 2e2bd2a6 Giorgos Verigakis
                    help='show detailed output')
18 2e2bd2a6 Giorgos Verigakis
19 2e2bd2a6 Giorgos Verigakis
options, args = parser.parse_args()
20 2e2bd2a6 Giorgos Verigakis
21 2e2bd2a6 Giorgos Verigakis
conn = HTTPConnection(options.host)
22 2e2bd2a6 Giorgos Verigakis
23 2e2bd2a6 Giorgos Verigakis
path = '/api/%s/servers' % options.api
24 2e2bd2a6 Giorgos Verigakis
if options.detail:
25 2e2bd2a6 Giorgos Verigakis
    path += '/detail'
26 2e2bd2a6 Giorgos Verigakis
27 2e2bd2a6 Giorgos Verigakis
conn.request('GET', path)
28 2e2bd2a6 Giorgos Verigakis
resp = conn.getresponse()
29 2e2bd2a6 Giorgos Verigakis
30 2e2bd2a6 Giorgos Verigakis
if resp.status != 200:
31 2e2bd2a6 Giorgos Verigakis
    print 'Error:', resp.status
32 2e2bd2a6 Giorgos Verigakis
    exit(1)
33 2e2bd2a6 Giorgos Verigakis
34 2e2bd2a6 Giorgos Verigakis
buf = resp.read()
35 2e2bd2a6 Giorgos Verigakis
reply = json.loads(buf)
36 2e2bd2a6 Giorgos Verigakis
37 b016b476 Giorgos Verigakis
for server in reply['servers']['values']:
38 2e2bd2a6 Giorgos Verigakis
    id = server.pop('id')
39 2e2bd2a6 Giorgos Verigakis
    name = server.pop('name')
40 2e2bd2a6 Giorgos Verigakis
    if options.detail:
41 2e2bd2a6 Giorgos Verigakis
        print '%d %s' % (id, name)
42 2e2bd2a6 Giorgos Verigakis
        print_server(server)
43 2e2bd2a6 Giorgos Verigakis
        print
44 2e2bd2a6 Giorgos Verigakis
    else:
45 2e2bd2a6 Giorgos Verigakis
        print '%3d %s' % (id, name)