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