Revision 7c714455 snf-cyclades-app/synnefo/api/servers.py
b/snf-cyclades-app/synnefo/api/servers.py | ||
---|---|---|
154 | 154 |
metadata = dict((m.meta_key, m.meta_value) for m in vm.metadata.all()) |
155 | 155 |
d['metadata'] = metadata |
156 | 156 |
|
157 |
vm_nics = vm.nics.filter(state="ACTIVE").order_by("index")
|
|
157 |
vm_nics = vm.nics.filter(state="ACTIVE").order_by("id")
|
|
158 | 158 |
attachments = map(nic_to_dict, vm_nics) |
159 | 159 |
d['attachments'] = attachments |
160 | 160 |
d['addresses'] = attachments_to_addresses(attachments) |
... | ... | |
515 | 515 |
log.debug('list_addresses_by_network %s %s', server_id, network_id) |
516 | 516 |
machine = util.get_vm(server_id, request.user_uniq) |
517 | 517 |
network = util.get_network(network_id, request.user_uniq) |
518 |
nics = machine.nics.filter(network=network, state="ACTIVE").all()
|
|
518 |
nics = machine.nics.filter(network=network, state="ACTIVE") |
|
519 | 519 |
addresses = attachments_to_addresses(map(nic_to_dict, nics)) |
520 | 520 |
|
521 | 521 |
if request.serialization == 'xml': |
... | ... | |
871 | 871 |
if attachment is None: |
872 | 872 |
raise faults.BadRequest("Missing 'attachment' attribute.") |
873 | 873 |
try: |
874 |
# attachment string: nic-<vm-id>-<nic-index>
|
|
875 |
_, server_id, nic_index = attachment.split("-", 2)
|
|
874 |
# attachment string: nic-<vm-id>-<nic-id>
|
|
875 |
_, server_id, nic_id = attachment.split("-", 2)
|
|
876 | 876 |
server_id = int(server_id) |
877 |
nic_index = int(nic_index)
|
|
877 |
nic_id = int(nic_id)
|
|
878 | 878 |
except (ValueError, TypeError): |
879 | 879 |
raise faults.BadRequest("Invalid 'attachment' attribute.") |
880 | 880 |
|
881 | 881 |
vm = util.get_vm(server_id, request.user_uniq, non_suspended=True) |
882 |
servers.disconnect(vm, nic_index=nic_index) |
|
882 |
nic = util.get_nic(vm, nic_id) |
|
883 |
servers.disconnect(vm, nic) |
|
883 | 884 |
|
884 | 885 |
return HttpResponse(status=202) |
885 | 886 |
|
Also available in: Unified diff