root / tools / create_server @ 92c53da1
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('-f', dest='flavor', metavar='FLAVOR_ID', default=1, |
17 | 2e2bd2a6 | Giorgos Verigakis | help='Flavor ID') |
18 | 2e2bd2a6 | Giorgos Verigakis | parser.add_option('-i', dest='image', metavar='IMAGE_ID', default=1, |
19 | 2e2bd2a6 | Giorgos Verigakis | help='Image ID') |
20 | 2e2bd2a6 | Giorgos Verigakis | |
21 | 2e2bd2a6 | Giorgos Verigakis | options, args = parser.parse_args() |
22 | 2e2bd2a6 | Giorgos Verigakis | |
23 | 2e2bd2a6 | Giorgos Verigakis | conn = HTTPConnection(options.host) |
24 | 2e2bd2a6 | Giorgos Verigakis | |
25 | 2e2bd2a6 | Giorgos Verigakis | path = '/api/%s/servers' % options.api |
26 | 2e2bd2a6 | Giorgos Verigakis | name = args[0] |
27 | 2e2bd2a6 | Giorgos Verigakis | server = dict(name=args[0], flavorId=options.flavor, imageId=options.image) |
28 | 2e2bd2a6 | Giorgos Verigakis | body = json.dumps({'server': server}) |
29 | 2e2bd2a6 | Giorgos Verigakis | headers = {'Content-Type': 'application/json'} |
30 | 2e2bd2a6 | Giorgos Verigakis | |
31 | 2e2bd2a6 | Giorgos Verigakis | conn.request('POST', path, body, headers) |
32 | 2e2bd2a6 | Giorgos Verigakis | resp = conn.getresponse() |
33 | 2e2bd2a6 | Giorgos Verigakis | |
34 | 2e2bd2a6 | Giorgos Verigakis | if resp.status != 202: |
35 | 2e2bd2a6 | Giorgos Verigakis | print 'Error:', resp.status |
36 | 2e2bd2a6 | Giorgos Verigakis | exit(1) |
37 | 2e2bd2a6 | Giorgos Verigakis | |
38 | 2e2bd2a6 | Giorgos Verigakis | buf = resp.read() |
39 | 2e2bd2a6 | Giorgos Verigakis | reply = json.loads(buf) |
40 | 2e2bd2a6 | Giorgos Verigakis | |
41 | 2e2bd2a6 | Giorgos Verigakis | server = reply['server'] |
42 | 2e2bd2a6 | Giorgos Verigakis | server.pop('id') |
43 | 2e2bd2a6 | Giorgos Verigakis | print_server(server) |