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