Revision 63f9eb8e snf-cyclades-app/synnefo/logic/tests/reconciliation.py

b/snf-cyclades-app/synnefo/logic/tests/reconciliation.py
33 33
from synnefo.db.models import VirtualMachine, Network, BackendNetwork
34 34
from synnefo.db import models_factory as mfactory
35 35
from synnefo.logic import reconciliation
36
from datetime import timedelta
37 36
from mock import patch
38 37
from snf_django.utils.testing import mocked_quotaholder
39 38
from time import time
......
56 55
                                                           logger=log)
57 56

  
58 57
    def test_building_vm(self, mrapi):
59
        mrapi = self.reconciler.client
60
        vm1 = mfactory.VirtualMachineFactory(backend=self.backend,
61
                                             backendjobid=None,
62
                                             operstate="BUILD")
63
        self.reconciler.reconcile()
64
        # Assert not deleted
65
        vm1 = VirtualMachine.objects.get(id=vm1.id)
66
        self.assertFalse(vm1.deleted)
67
        self.assertEqual(vm1.operstate, "BUILD")
68

  
69
        vm1.created = vm1.created - timedelta(seconds=120)
70
        vm1.save()
71
        with mocked_quotaholder():
72
            self.reconciler.reconcile()
73
        vm1 = VirtualMachine.objects.get(id=vm1.id)
74
        self.assertEqual(vm1.operstate, "ERROR")
75

  
76 58
        vm1 = mfactory.VirtualMachineFactory(backend=self.backend,
77 59
                                             backendjobid=1,
78
                                             deleted=False,
79 60
                                             operstate="BUILD")
80
        vm1.backendtime = vm1.created - timedelta(seconds=120)
81
        vm1.backendjobid = 10
82
        vm1.save()
83 61
        for status in ["queued", "waiting", "running"]:
84
            mrapi.GetJobStatus.return_value = {"status": status}
62
            mrapi().GetJobs.return_value = [{"id": "1", "status": status}]
85 63
            with mocked_quotaholder():
86 64
                self.reconciler.reconcile()
87 65
            vm1 = VirtualMachine.objects.get(id=vm1.id)
88 66
            self.assertFalse(vm1.deleted)
89 67
            self.assertEqual(vm1.operstate, "BUILD")
90 68

  
91
        mrapi.GetJobStatus.return_value = {"status": "error"}
69
        mrapi().GetJobs.return_value = [{"id": "1", "status": "error"}]
92 70
        with mocked_quotaholder():
93 71
            self.reconciler.reconcile()
94 72
        vm1 = VirtualMachine.objects.get(id=vm1.id)
95 73
        self.assertFalse(vm1.deleted)
96 74
        self.assertEqual(vm1.operstate, "ERROR")
97 75

  
98
        for status in ["success", "cancelled"]:
76
        for status in ["success", "canceled"]:
77
            vm1.operstate = "BUILD"
99 78
            vm1.deleted = False
100 79
            vm1.save()
101
            mrapi.GetJobStatus.return_value = {"status": status}
80
            mrapi().GetJobs.return_value = [{"id": "1", "status": status}]
102 81
            with mocked_quotaholder():
103 82
                self.reconciler.reconcile()
104 83
            vm1 = VirtualMachine.objects.get(id=vm1.id)
105
            self.assertTrue(vm1.deleted)
106
            self.assertEqual(vm1.operstate, "DESTROYED")
107

  
108
        vm1 = mfactory.VirtualMachineFactory(backend=self.backend,
109
                                             backendjobid=1,
110
                                             operstate="BUILD")
111
        vm1.backendtime = vm1.created - timedelta(seconds=120)
112
        vm1.backendjobid = 10
113
        vm1.save()
114
        cmrapi = self.reconciler.client
115
        cmrapi.GetInstances.return_value = \
116
            [{"name": vm1.backend_vm_id,
117
             "beparams": {"maxmem": 1024,
118
                          "minmem": 1024,
119
                          "vcpus": 4},
120
             "oper_state": False,
121
             "mtime": time(),
122
             "disk.sizes": [],
123
             "nic.ips": [],
124
             "nic.macs": [],
125
             "nic.networks": [],
126
             "tags": []}]
127
        mrapi.GetJobStatus.return_value = {"status": "running"}
128
        with mocked_quotaholder():
129
            self.reconciler.reconcile()
130
        vm1 = VirtualMachine.objects.get(id=vm1.id)
131
        self.assertEqual(vm1.operstate, "BUILD")
132
        mrapi.GetJobStatus.return_value = {"status": "error"}
133
        with mocked_quotaholder():
134
            self.reconciler.reconcile()
135
        vm1 = VirtualMachine.objects.get(id=vm1.id)
136
        self.assertEqual(vm1.operstate, "ERROR")
84
            self.assertFalse(vm1.deleted)
85
            self.assertEqual(vm1.operstate, "ERROR")
137 86

  
138 87
    def test_stale_server(self, mrapi):
139 88
        mrapi.GetInstances = []

Also available in: Unified diff