124 |
124 |
return d
|
125 |
125 |
|
126 |
126 |
|
|
127 |
def nics_to_addresses(nics):
|
|
128 |
addresses = {}
|
|
129 |
for nic in nics:
|
|
130 |
net_nics = []
|
|
131 |
net_nics.append({"version": 4, "addr": nic.ipv4})
|
|
132 |
if nic.ipv6:
|
|
133 |
net_nics.append({"version": 6, "addr": nic.ipv6})
|
|
134 |
addresses[nic.network.id] = net_nics
|
|
135 |
return addresses
|
|
136 |
|
|
137 |
|
127 |
138 |
def vm_to_dict(vm, detail=False):
|
128 |
139 |
d = dict(id=vm.id, name=vm.name)
|
129 |
140 |
d['links'] = util.vm_to_links(vm.id)
|
... | ... | |
148 |
159 |
vm_nics = vm.nics.filter(state="ACTIVE").order_by("index")
|
149 |
160 |
attachments = map(nic_to_dict, vm_nics)
|
150 |
161 |
d['attachments'] = attachments
|
|
162 |
d['addresses'] = nics_to_addresses(vm_nics)
|
151 |
163 |
|
152 |
164 |
# include the latest vm diagnostic, if set
|
153 |
165 |
diagnostic = vm.get_last_diagnostic()
|
... | ... | |
299 |
311 |
|
300 |
312 |
@transaction.commit_manually
|
301 |
313 |
def do_create_server(userid, name, password, flavor, image, metadata={},
|
302 |
|
personality=[], network=None, backend=None):
|
|
314 |
personality=[], network=None, backend=None):
|
303 |
315 |
if backend is None:
|
304 |
316 |
# Allocate backend to host the server. Commit after allocation to
|
305 |
317 |
# release the locks hold by the backend allocator.
|
... | ... | |
544 |
556 |
|
545 |
557 |
log.debug('list_addresses %s', server_id)
|
546 |
558 |
vm = util.get_vm(server_id, request.user_uniq)
|
547 |
|
addresses = [nic_to_dict(nic) for nic in vm.nics.all()]
|
|
559 |
attachments = [nic_to_dict(nic) for nic in vm.nics.all()]
|
|
560 |
addresses = nics_to_addresses(vm.nics.all())
|
548 |
561 |
|
549 |
562 |
if request.serialization == 'xml':
|
550 |
563 |
data = render_to_string('list_addresses.xml', {'addresses': addresses})
|
551 |
564 |
else:
|
552 |
|
data = json.dumps({'addresses': addresses})
|
|
565 |
data = json.dumps({'addresses': addresses, 'attachments': attachments})
|
553 |
566 |
|
554 |
567 |
return HttpResponse(data, status=200)
|
555 |
568 |
|
... | ... | |
567 |
580 |
log.debug('list_addresses_by_network %s %s', server_id, network_id)
|
568 |
581 |
machine = util.get_vm(server_id, request.user_uniq)
|
569 |
582 |
network = util.get_network(network_id, request.user_uniq)
|
570 |
|
nic = util.get_nic(machine, network)
|
571 |
|
address = nic_to_dict(nic)
|
|
583 |
nics = machine.nics.filter(network=network).all()
|
|
584 |
addresses = nics_to_addresses(nics)
|
572 |
585 |
|
573 |
586 |
if request.serialization == 'xml':
|
574 |
|
data = render_to_string('address.xml', {'address': address})
|
|
587 |
data = render_to_string('address.xml', {'addresses': addresses})
|
575 |
588 |
else:
|
576 |
|
data = json.dumps({'network': address})
|
|
589 |
data = json.dumps({'network': addresses})
|
577 |
590 |
|
578 |
591 |
return HttpResponse(data, status=200)
|
579 |
592 |
|