Revision a8817717
b/snf-cyclades-app/synnefo/logic/reconciliation.py | ||
---|---|---|
126 | 126 |
if job_id in self.gnt_jobs: |
127 | 127 |
job = self.gnt_jobs[job_id] |
128 | 128 |
gnt_job_status = job["status"] |
129 |
end_timestamp = merge_time(job["end_ts"]) |
|
129 |
end_timestamp = job["end_ts"] |
|
130 |
if end_timestamp is not None: |
|
131 |
end_timestamp = merge_time(end_timestamp) |
|
130 | 132 |
if gnt_job_status == rapi.JOB_STATUS_ERROR: |
131 | 133 |
return "ERROR", end_timestamp |
132 | 134 |
elif gnt_job_status not in rapi.JOB_STATUS_FINALIZED: |
b/snf-cyclades-app/synnefo/logic/tests/reconciliation.py | ||
---|---|---|
59 | 59 |
backendjobid=1, |
60 | 60 |
operstate="BUILD") |
61 | 61 |
for status in ["queued", "waiting", "running"]: |
62 |
mrapi().GetJobs.return_value = [{"id": "1", "status": status}] |
|
62 |
mrapi().GetJobs.return_value = [{"id": "1", "status": status, |
|
63 |
"end_ts": None}] |
|
63 | 64 |
with mocked_quotaholder(): |
64 | 65 |
self.reconciler.reconcile() |
65 | 66 |
vm1 = VirtualMachine.objects.get(id=vm1.id) |
66 | 67 |
self.assertFalse(vm1.deleted) |
67 | 68 |
self.assertEqual(vm1.operstate, "BUILD") |
68 | 69 |
|
69 |
mrapi().GetJobs.return_value = [{"id": "1", "status": "error"}] |
|
70 |
mrapi().GetJobs.return_value = [{"id": "1", "status": "error", |
|
71 |
"end_ts": [44123, 1]}] |
|
70 | 72 |
with mocked_quotaholder(): |
71 | 73 |
self.reconciler.reconcile() |
72 | 74 |
vm1 = VirtualMachine.objects.get(id=vm1.id) |
... | ... | |
77 | 79 |
vm1.operstate = "BUILD" |
78 | 80 |
vm1.deleted = False |
79 | 81 |
vm1.save() |
80 |
mrapi().GetJobs.return_value = [{"id": "1", "status": status}] |
|
82 |
mrapi().GetJobs.return_value = [{"id": "1", "status": status, |
|
83 |
"end_ts": [44123, 1]}] |
|
81 | 84 |
with mocked_quotaholder(): |
82 | 85 |
self.reconciler.reconcile() |
83 | 86 |
vm1 = VirtualMachine.objects.get(id=vm1.id) |
Also available in: Unified diff