Michal Skrivanek has posted comments on this change.

Change subject: migrateStatus() progress report
......................................................................


Patch Set 11: (8 inline comments)

couple more comments...

....................................................
File vdsm/vm.py
Line 105:             config.get('vars', 'migration_downtime')
Line 106:         self.status = {
Line 107:             'status': {
Line 108:                 'code': 0,
Line 109:                 'message': 'Migration in process'},
shouldn't it be "in progress"? Or see comment at migrate() function later
Line 110:             'progress': 0}
Line 111:         threading.Thread.__init__(self)
Line 112:         self._preparingMigrationEvt = False
Line 113:         self._migrationCanceledEvt = False


Line 116:     def getStat(self):
Line 117:         """
Line 118:         Get the status of the migration.
Line 119:         """
Line 120:         if self._monitorThread is not None:
would agree with peet, we would like to know at what % the migration failed.
Line 121:             # fetch migration status from the monitor thread
Line 122:             self.status['progress'] = int(
Line 123:                 float(self._monitorThread.data_progress +
Line 124:                       self._monitorThread.mem_progress) / 2)


Line 192:                                      ' unresponsive. Hiberanting 
without '
Line 193:                                      'desktopLock.')
Line 194:                     break
Line 195:             self._vm.pause('Saving State')
Line 196:         else:
just a log, but still - "process"
Line 197:             self.log.debug("migration Process begins")
Line 198:             self._vm.lastStatus = 'Migration Source'
Line 199: 
Line 200:     def _recover(self, message):


Line 234:                 self._vm.cif.teardownVolumePath(self._dstparams)
Line 235: 
Line 236:             self._vm.setDownStatus(NORMAL, "SaveState succeeded")
Line 237:             self.status = {'status': {
Line 238:                 'code': 0,
pls fix indentation
Line 239:                 'message': 'SaveState done'},
Line 240:                 'progress': 100}
Line 241: 
Line 242:     def _patchConfigForLegacy(self):


Line 255
Line 256
Line 257
Line 258
Line 259
I guess this is ok and needed to prevent jumping back since we are taking stats 
from libvirt. But still - if the preparation steps can take significant time(do 
they?) we may actually want to keep 10 hardcoded and progress would be 
recalculated to 10+0.9*progress


Line 277:             except libvirt.libvirtError, e:
Line 278:                 if e.get_error_code() == 
libvirt.VIR_ERR_OPERATION_ABORTED:
Line 279:                     self.status = {
Line 280:                         'status': {
Line 281:                             'code': errCode['migCancelErr'],
is it ok progress is missing here? why?
Line 282:                             'message': 'Migration canceled'}}
Line 283:                 raise
Line 284:             finally:
Line 285:                 if '_migrationParams' in self._vm.conf:


Line 1183:             self._migrationSourceThread = \
Line 1184:                 self.MigrationSourceThreadClass(self, **params)
Line 1185:             self._migrationSourceThread.start()
Line 1186:             check = self._migrationSourceThread.getStat()
Line 1187:             if check['status']['code']:
since we are apparently ignoring the returncode anyway, how about getStat() 
before line 1185 and set the right initial message at line 109
Line 1188:                 return check
Line 1189:             return {'status': {'code': 0,
Line 1190:                                'message': 'Migration process 
starting'}}
Line 1191:         finally:


Line 1197:     def migrateCancel(self):
Line 1198:         self._acquireCpuLockWithTimeout()
Line 1199:         try:
Line 1200:             self._migrationSourceThread.stop()
Line 1201:             return {'status': {'code': 0,
also progress?
Line 1202:                                'message': 'Migration process 
stopped'}}
Line 1203:         except libvirt.libvirtError, e:
Line 1204:             if e.get_error_code() == 
libvirt.VIR_ERR_OPERATION_INVALID:
Line 1205:                 return errCode['migCancelErr']


--
To view, visit http://gerrit.ovirt.org/6824
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I3ff00e85c88e865cd81697d427d6bd5473e0f79e
Gerrit-PatchSet: 11
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Peter V. Saveliev <[email protected]>
Gerrit-Reviewer: Ayal Baron <[email protected]>
Gerrit-Reviewer: Barak Azulay <[email protected]>
Gerrit-Reviewer: Dan Kenigsberg <[email protected]>
Gerrit-Reviewer: Mark Wu <[email protected]>
Gerrit-Reviewer: Michal Skrivanek <[email protected]>
Gerrit-Reviewer: Peter V. Saveliev <[email protected]>
Gerrit-Reviewer: Ryan Harper <[email protected]>
Gerrit-Reviewer: ShaoHe Feng <[email protected]>
Gerrit-Reviewer: Vinzenz Feenstra <[email protected]>
Gerrit-Reviewer: Vinzenz Feenstra <[email protected]>
Gerrit-Reviewer: oVirt Jenkins CI Server
_______________________________________________
vdsm-patches mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to