Revision bc855ce7 api/servers.py
b/api/servers.py | ||
---|---|---|
151 | 151 |
try: |
152 | 152 |
server = req['server'] |
153 | 153 |
name = server['name'] |
154 |
metadata = server.get('metadata', {}) |
|
155 |
assert isinstance(metadata, dict) |
|
154 | 156 |
sourceimage = Image.objects.get(id=server['imageRef']) |
155 | 157 |
flavor = Flavor.objects.get(id=server['flavorRef']) |
156 |
except KeyError:
|
|
158 |
except (KeyError, AssertionError):
|
|
157 | 159 |
raise BadRequest('Malformed request.') |
158 | 160 |
except Image.DoesNotExist: |
159 | 161 |
raise ItemNotFound |
160 | 162 |
except Flavor.DoesNotExist: |
161 | 163 |
raise ItemNotFound |
162 | 164 |
|
163 |
vm = VirtualMachine.objects.create(
|
|
165 |
vm = VirtualMachine( |
|
164 | 166 |
name=name, |
165 | 167 |
owner=get_user(), |
166 | 168 |
sourceimage=sourceimage, |
... | ... | |
189 | 191 |
beparams=dict(auto_balance=True, vcpus=flavor.cpu, memory=flavor.ram)) |
190 | 192 |
|
191 | 193 |
vm.save() |
192 |
|
|
194 |
|
|
195 |
for key, val in metadata.items(): |
|
196 |
VirtualMachineMetadata.objects.create(meta_key=key, meta_value=val, vm=vm) |
|
197 |
|
|
193 | 198 |
logging.info('created vm with %s cpus, %s ram and %s storage' % (flavor.cpu, flavor.ram, flavor.disk)) |
194 | 199 |
|
195 | 200 |
server = vm_to_dict(vm, detail=True) |
Also available in: Unified diff