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