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