Revision 65a8b1da kamaki/clients/cyclades/__init__.py
b/kamaki/clients/cyclades/__init__.py | ||
---|---|---|
61 | 61 |
|
62 | 62 |
:raises ClientError: wraps request errors |
63 | 63 |
""" |
64 |
req = {'server': {'name': name, |
|
65 |
'flavorRef': flavor_id, |
|
66 |
'imageRef': image_id}} |
|
67 |
|
|
68 | 64 |
image = self.get_image_details(image_id) |
69 | 65 |
metadata = metadata or dict() |
70 | 66 |
for key in ('os', 'users'): |
... | ... | |
72 | 68 |
metadata[key] = image['metadata'][key] |
73 | 69 |
except KeyError: |
74 | 70 |
pass |
75 |
if metadata: |
|
76 |
req['server']['metadata'] = metadata |
|
77 |
|
|
78 |
if personality: |
|
79 |
req['server']['personality'] = personality |
|
80 | 71 |
|
81 |
try: |
|
82 |
r = self.servers_post(json_data=req) |
|
83 |
except ClientError as err: |
|
84 |
try: |
|
85 |
if isinstance(err.details, list): |
|
86 |
tmp_err = err.details |
|
87 |
else: |
|
88 |
errd = '%s' % err.details |
|
89 |
tmp_err = errd.split(',') |
|
90 |
tmp_err = tmp_err[0].split(':') |
|
91 |
tmp_err = tmp_err[2].split('"') |
|
92 |
err.message = tmp_err[1] |
|
93 |
finally: |
|
94 |
raise err |
|
95 |
return r.json['server'] |
|
72 |
return super(CycladesClient, self).create_server( |
|
73 |
name, flavor_id, image_id, |
|
74 |
metadata=metadata, personality=personality) |
|
96 | 75 |
|
97 | 76 |
def start_server(self, server_id): |
98 | 77 |
"""Submit a startup request |
... | ... | |
163 | 142 |
|
164 | 143 |
:returns: list of server ids and names |
165 | 144 |
""" |
166 |
detail = 'detail' if detail else '' |
|
167 |
r = self.servers_get(command=detail, changes_since=changes_since) |
|
145 |
r = self.servers_get(detail=bool(detail), changes_since=changes_since) |
|
168 | 146 |
return r.json['servers'] |
169 | 147 |
|
170 | 148 |
def list_server_nics(self, server_id): |
Also available in: Unified diff