Revision ef0839e9
b/snf-cyclades-app/synnefo/logic/backend.py | ||
---|---|---|
1140 | 1140 |
|
1141 | 1141 |
|
1142 | 1142 |
def attach_volume(vm, volume, depends=[]): |
1143 |
log.debug("Attaching volume %s to vm %s", vm, volume)
|
|
1143 |
log.debug("Attaching volume %s to vm %s", volume, vm)
|
|
1144 | 1144 |
|
1145 | 1145 |
disk = {"size": int(volume.size) << 10, |
1146 | 1146 |
"name": volume.backend_volume_uuid, |
b/snf-cyclades-app/synnefo/logic/management/commands/reconcile-servers.py | ||
---|---|---|
68 | 68 |
make_option('--fix-unsynced-nics', action='store_true', |
69 | 69 |
dest='fix_unsynced_nics', default=False, |
70 | 70 |
help='Fix unsynced nics between DB and Ganeti'), |
71 |
make_option('--fix-unsynced-disks', action='store_true', |
|
72 |
dest='fix_unsynced_disks', default=False, |
|
73 |
help='Fix unsynced disks between DB and Ganeti'), |
|
71 | 74 |
make_option('--fix-unsynced-flavors', action='store_true', |
72 | 75 |
dest='fix_unsynced_flavors', default=False, |
73 | 76 |
help='Fix unsynced flavors between DB and Ganeti'), |
b/snf-cyclades-app/synnefo/logic/reconciliation.py | ||
---|---|---|
326 | 326 |
nics=gnt_nics) |
327 | 327 |
|
328 | 328 |
def reconcile_unsynced_disks(self, server_id, db_server, gnt_server): |
329 |
pass |
|
329 |
building_time = self.event_time - BUILDING_NIC_TIMEOUT |
|
330 |
db_disks = db_server.volumes.exclude(status="CREATING", |
|
331 |
created__lte=building_time) \ |
|
332 |
.filter(deleted=False)\ |
|
333 |
.order_by("id") |
|
334 |
gnt_disks = gnt_server["disks"] |
|
335 |
gnt_disks_parsed = backend_mod.process_ganeti_disks(gnt_disks) |
|
336 |
disks_changed = len(db_disks) != len(gnt_disks) |
|
337 |
for db_disk, gnt_disk in zip(db_disks, |
|
338 |
sorted(gnt_disks_parsed.items())): |
|
339 |
gnt_disk_id, gnt_disk = gnt_disk |
|
340 |
if (db_disk.id == gnt_disk_id) and\ |
|
341 |
backend_mod.disks_are_equal(db_disk, gnt_disk): |
|
342 |
continue |
|
343 |
else: |
|
344 |
disks_changed = True |
|
345 |
break |
|
346 |
if disks_changed: |
|
347 |
msg = "Found unsynced disks for server '%s'.\n"\ |
|
348 |
"\tDB:\n\t\t%s\n\tGaneti:\n\t\t%s" |
|
349 |
db_disks_str = "\n\t\t".join(map(format_db_disk, db_disks)) |
|
350 |
gnt_disks_str = "\n\t\t".join(map(format_gnt_disk, |
|
351 |
sorted(gnt_disks_parsed.items()))) |
|
352 |
self.log.info(msg, server_id, db_disks_str, gnt_disks_str) |
|
353 |
if self.options["fix_unsynced_disks"]: |
|
354 |
vm = get_locked_server(server_id) |
|
355 |
backend_mod.process_disks_status(vm=vm, |
|
356 |
etime=self.event_time, |
|
357 |
disks=gnt_disks) |
|
330 | 358 |
|
331 | 359 |
def reconcile_pending_task(self, server_id, db_server): |
332 | 360 |
job_id = db_server.task_job_id |
... | ... | |
367 | 395 |
nic["network"].id, nic["mac"], nic["index"], |
368 | 396 |
nic["firewall_profile"]) |
369 | 397 |
|
398 |
DISK_MSG = ": %s\t".join(["ID", "State", "Size", "Index"]) + ": %s" |
|
399 |
|
|
400 |
|
|
401 |
def format_db_disk(disk): |
|
402 |
return DISK_MSG % (disk.id, disk.status, disk.size, disk.index) |
|
403 |
|
|
404 |
|
|
405 |
def format_gnt_disk(disk): |
|
406 |
disk_name, disk = disk |
|
407 |
return DISK_MSG % (disk_name, disk["status"], disk["size"], disk["index"]) |
|
408 |
|
|
370 | 409 |
|
371 | 410 |
# |
372 | 411 |
# Networks |
b/snf-cyclades-app/synnefo/logic/tests/reconciliation.py | ||
---|---|---|
124 | 124 |
"oper_state": True, |
125 | 125 |
"mtime": time(), |
126 | 126 |
"disk.sizes": [], |
127 |
"disk.names": [], |
|
128 |
"disk.uuids": [], |
|
127 | 129 |
"nic.ips": [], |
128 | 130 |
"nic.names": [], |
129 | 131 |
"nic.macs": [], |
... | ... | |
145 | 147 |
"oper_state": True, |
146 | 148 |
"mtime": time(), |
147 | 149 |
"disk.sizes": [], |
150 |
"disk.names": [], |
|
151 |
"disk.uuids": [], |
|
148 | 152 |
"nic.ips": [], |
149 | 153 |
"nic.names": [], |
150 | 154 |
"nic.macs": [], |
... | ... | |
172 | 176 |
"oper_state": True, |
173 | 177 |
"mtime": time(), |
174 | 178 |
"disk.sizes": [], |
179 |
"disk.names": [], |
|
180 |
"disk.uuids": [], |
|
175 | 181 |
"nic.ips": [], |
176 | 182 |
"nic.names": [], |
177 | 183 |
"nic.macs": [], |
... | ... | |
204 | 210 |
"oper_state": True, |
205 | 211 |
"mtime": time(), |
206 | 212 |
"disk.sizes": [], |
213 |
"disk.names": [], |
|
214 |
"disk.uuids": [], |
|
207 | 215 |
"nic.names": [nic.backend_uuid], |
208 | 216 |
"nic.ips": ["192.168.2.5"], |
209 | 217 |
"nic.macs": ["aa:00:bb:cc:dd:ee"], |
Also available in: Unified diff