Revision 3278725f snf-cyclades-app/synnefo/logic/tests/callbacks.py
b/snf-cyclades-app/synnefo/logic/tests/callbacks.py | ||
---|---|---|
44 | 44 |
from synnefo.logic.callbacks import (update_db, update_network, |
45 | 45 |
update_build_progress) |
46 | 46 |
from snf_django.utils.testing import mocked_quotaholder |
47 |
from django.conf import settings |
|
48 | 47 |
from synnefo.logic.rapi import GanetiApiError |
49 | 48 |
|
50 | 49 |
now = datetime.now |
... | ... | |
362 | 361 |
db_vm = VirtualMachine.objects.get(id=vm.id) |
363 | 362 |
self.assertEqual(len(db_vm.nics.all()), 0) |
364 | 363 |
|
365 |
def test_empty_nic(self, client): |
|
366 |
vm = mfactory.VirtualMachineFactory(operstate='ERROR') |
|
367 |
for public in [True, False]: |
|
368 |
net = mfactory.NetworkFactory(public=public) |
|
369 |
msg = self.create_msg(instance_nics=[{'network': net.backend_id, |
|
370 |
'name': 'snf-nic-100'}], |
|
371 |
instance=vm.backend_vm_id) |
|
372 |
update_db(client, msg) |
|
373 |
self.assertTrue(client.basic_ack.called) |
|
374 |
db_vm = VirtualMachine.objects.get(id=vm.id) |
|
375 |
nics = db_vm.nics.all() |
|
376 |
self.assertEqual(len(nics), 1) |
|
377 |
self.assertEqual(nics[0].index, 0) |
|
378 |
self.assertEqual(nics[0].ipv4_address, None) |
|
379 |
self.assertEqual(nics[0].ipv6_address, None) |
|
380 |
self.assertEqual(nics[0].mac, None) |
|
381 |
if public: |
|
382 |
self.assertEqual(nics[0].firewall_profile, |
|
383 |
settings.DEFAULT_FIREWALL_PROFILE) |
|
384 |
else: |
|
385 |
self.assertEqual(nics[0].firewall_profile, None) |
|
386 |
|
|
387 |
def test_full_nic(self, client): |
|
388 |
vm = mfactory.VirtualMachineFactory(operstate='ERROR') |
|
389 |
net = mfactory.NetworkWithSubnetFactory(subnet__cidr='10.0.0.0/24', |
|
390 |
subnet__gateway="10.0.0.1", |
|
391 |
subnet6=None) |
|
392 |
pool = net.get_pool() |
|
393 |
self.assertTrue(pool.is_available('10.0.0.22')) |
|
364 |
def test_changed_nic(self, client): |
|
365 |
ip = mfactory.IPv4AddressFactory(subnet__cidr="10.0.0.0/24", |
|
366 |
address="10.0.0.2") |
|
367 |
network = ip.network |
|
368 |
subnet = ip.subnet |
|
369 |
vm = ip.nic.machine |
|
370 |
pool = subnet.get_pool() |
|
371 |
pool.reserve("10.0.0.2") |
|
394 | 372 |
pool.save() |
395 |
msg = self.create_msg(instance_nics=[{'network': net.backend_id, |
|
396 |
'ip': '10.0.0.22', |
|
373 |
|
|
374 |
msg = self.create_msg(instance_nics=[{'network': network.backend_id, |
|
375 |
'ip': '10.0.0.3', |
|
397 | 376 |
'mac': 'aa:bb:cc:00:11:22', |
398 |
'name': 'snf-nic-200'}],
|
|
377 |
'name': ip.nic.backend_uuid}],
|
|
399 | 378 |
instance=vm.backend_vm_id) |
400 | 379 |
update_db(client, msg) |
401 | 380 |
self.assertTrue(client.basic_ack.called) |
... | ... | |
403 | 382 |
nics = db_vm.nics.all() |
404 | 383 |
self.assertEqual(len(nics), 1) |
405 | 384 |
self.assertEqual(nics[0].index, 0) |
406 |
self.assertEqual(nics[0].ipv4_address, '10.0.0.22') |
|
407 |
self.assertEqual(nics[0].ipv6_address, None) |
|
385 |
self.assertEqual(nics[0].ipv4_address, '10.0.0.3') |
|
408 | 386 |
self.assertEqual(nics[0].mac, 'aa:bb:cc:00:11:22') |
409 |
pool = net.get_pool() |
|
410 |
self.assertFalse(pool.is_available('10.0.0.22')) |
|
387 |
pool = subnet.get_pool() |
|
388 |
self.assertTrue(pool.is_available('10.0.0.2')) |
|
389 |
self.assertFalse(pool.is_available('10.0.0.3')) |
|
411 | 390 |
pool.save() |
412 | 391 |
|
413 | 392 |
|
Also available in: Unified diff