Revision 7ab30015 snf-cyclades-app/synnefo/logic/tests.py

b/snf-cyclades-app/synnefo/logic/tests.py
610 610
            self.assertEqual(vm.buildpercentage, old)
611 611

  
612 612

  
613
from synnefo.logic.reconciliation import VMState
613 614
class ReconciliationTest(TestCase):
614
    SERVERS = 1000
615
    fixtures = ['db_test_data']
615
    def get_vm(self, operstate, deleted=False):
616
        flavor = mfactory.FlavorFactory(cpu=2, ram=1024)
617
        vm = mfactory.VirtualMachineFactory(deleted=deleted, flavor=flavor)
618
        vm.operstate = operstate
619
        vm.save()
620
        return vm
616 621

  
617 622
    def test_get_servers_from_db(self):
618 623
        """Test getting a dictionary from each server to its operstate"""
619 624
        backend = 30000
620
        self.assertEquals(reconciliation.get_servers_from_db(backends=[backend]),
621
                          {30000: 'STARTED', 30001: 'STOPPED', 30002: 'BUILD'})
625
        vm1 = self.get_vm('STARTED')
626
        vm2 = self.get_vm('DESTROYED', deleted=True)
627
        vm3 = self.get_vm('STOPPED')
628
        self.assertEquals(reconciliation.get_servers_from_db(),
629
                    {vm1.id: VMState(state='STARTED', cpu=2, ram=1024, nics=[]),
630
                     vm3.id: VMState(state='STOPPED', cpu=2, ram=1024, nics=[])}
631
                    )
622 632

  
623 633
    def test_stale_servers_in_db(self):
624 634
        """Test discovery of stale entries in DB"""
625 635

  
626
        D = {1: 'STARTED', 2: 'STOPPED', 3: 'STARTED', 30000: 'BUILD',
627
             30002: 'STOPPED'}
636
        D = {1: None, 2: 'None', 3: None, 30000: 'BUILD',
637
             30002: 'None'}
628 638
        G = {1: True, 3: True, 30000: True}
629 639
        self.assertEquals(reconciliation.stale_servers_in_db(D, G),
630 640
                          set([2, 30002]))
......
666 676

  
667 677
    def test_unsynced_operstate(self):
668 678
        """Test discovery of unsynced operstate between the DB and Ganeti"""
669

  
670
        G = {1: True, 2: False, 3: True, 4: False, 50: True}
671
        D = {1: 'STARTED', 2: 'STARTED', 3: 'BUILD', 4: 'STARTED', 50: 'BUILD'}
679
        mkstate = lambda state: VMState(state=state, cpu=1, ram=1024, nics=[])
680
        vm1 = self.get_vm("STARTED")
681
        vm2 = self.get_vm("STARTED")
682
        vm3= self.get_vm("BUILD")
683
        vm4 = self.get_vm("STARTED")
684
        vm5 = self.get_vm("BUILD")
685

  
686
        D = {1: mkstate("STARTED"), 2: mkstate("STARTED"), 3: mkstate("BUILD"),
687
             4: mkstate("STARTED"), 50: mkstate("BUILD")}
688
        G = {vm1.id: mkstate(True), vm2.id: mkstate(False),
689
             vm4.id: mkstate(True), vm4.id: mkstate(False),
690
             vm5.id: mkstate(False)}
672 691
        self.assertEquals(reconciliation.unsynced_operstate(D, G),
673
                          set([(2, 'STARTED', False),
674
                               (3, 'BUILD', True), (4, 'STARTED', False),
675
                               (50, 'BUILD', True)]))
692
                          set([(vm2.id, "STARTED", False),
693
                               (vm4.id, "STARTED", False)]))
676 694

  
677 695
from synnefo.logic.test.rapi_pool_tests import *
678 696
from synnefo.logic.test.utils_tests import *

Also available in: Unified diff