root / tools / list_servers @ c36934a7
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 | 2e2bd2a6 | Giorgos Verigakis | for server in reply['servers']: |
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 | |
44 | 2e2bd2a6 | Giorgos Verigakis | else: |
45 | 2e2bd2a6 | Giorgos Verigakis | print '%3d %s' % (id, name) |