Loading cloudcontrol/server/jobs.py +12 −14 Original line number Diff line number Diff line Loading @@ -647,20 +647,18 @@ class CloneJob(BaseMigrationJob): raise JobCancelError('author have no right to migrate to this hv') # Update the VM object: try: self.manager.server.objects.update(ids=(vm_id,)) vm = self.manager.server.objects.get_by_id(vm_id) except UnknownObjectError: raise JobCancelError('Cloned VM not found') vm = self.manager.server.db.get_by_id(vm_id) if vm is None: raise JobCancelError('Source VM not found') # Get the source and destination hv clients: try: source = self.manager.server.get_connection(self['hv_source']) source = self.manager.server.get_client(self['hv_source']) except KeyError: raise JobCancelError('source hypervisor is not connected') try: dest = self.manager.server.get_connection(self['hv_dest']) dest = self.manager.server.get_client(self['hv_dest']) except KeyError: raise JobCancelError('destination hypervisor is not connected') Loading @@ -669,7 +667,7 @@ class CloneJob(BaseMigrationJob): self.report('waiting lock for source and dest hypervisors') self.logger.info('Job-%s: Trying to acquire locks', self['id']) with AcquiresAllOrNone(source.lock, dest.lock): with AcquiresAllOrNone(source.hvlock, dest.hvlock): self.logger.info('Job-%s: Locks acquired', self['id']) self.checkpoint() Loading Loading @@ -767,11 +765,11 @@ class CloneJob(BaseMigrationJob): self['func_cancel_xfer'] = cancel_xfer # Wait for the end of transfert: cids = set() cids.add(source.connection.async_call('vol_export', pool, name, dest.get_ip(), xferprop['port'])) cids.add(dest.connection.async_call('vol_import_wait', xferprop['id'])) msgs = self.manager.server.manager.wait(frozenset(cids)) watcher = AsyncWatcher() watcher.register(source.conn, 'vol_export', pool, name, dest.ip, xferprop['port']) watcher.register(dest.conn, 'vol_import_wait', xferprop['id']) msgs = watcher.wait() del self['func_cancel_xfer'] # Compare checksum of two answers: Loading @@ -783,7 +781,7 @@ class CloneJob(BaseMigrationJob): msg = 'error while copy: %s' % msg['error']['message'] raise JobCancelError(msg) else: checksums.append(msg.get('checksum')) checksums.append(msg['return'].get('checksum')) self.checkpoint() if checksums[0] != checksums[1]: Loading Loading
cloudcontrol/server/jobs.py +12 −14 Original line number Diff line number Diff line Loading @@ -647,20 +647,18 @@ class CloneJob(BaseMigrationJob): raise JobCancelError('author have no right to migrate to this hv') # Update the VM object: try: self.manager.server.objects.update(ids=(vm_id,)) vm = self.manager.server.objects.get_by_id(vm_id) except UnknownObjectError: raise JobCancelError('Cloned VM not found') vm = self.manager.server.db.get_by_id(vm_id) if vm is None: raise JobCancelError('Source VM not found') # Get the source and destination hv clients: try: source = self.manager.server.get_connection(self['hv_source']) source = self.manager.server.get_client(self['hv_source']) except KeyError: raise JobCancelError('source hypervisor is not connected') try: dest = self.manager.server.get_connection(self['hv_dest']) dest = self.manager.server.get_client(self['hv_dest']) except KeyError: raise JobCancelError('destination hypervisor is not connected') Loading @@ -669,7 +667,7 @@ class CloneJob(BaseMigrationJob): self.report('waiting lock for source and dest hypervisors') self.logger.info('Job-%s: Trying to acquire locks', self['id']) with AcquiresAllOrNone(source.lock, dest.lock): with AcquiresAllOrNone(source.hvlock, dest.hvlock): self.logger.info('Job-%s: Locks acquired', self['id']) self.checkpoint() Loading Loading @@ -767,11 +765,11 @@ class CloneJob(BaseMigrationJob): self['func_cancel_xfer'] = cancel_xfer # Wait for the end of transfert: cids = set() cids.add(source.connection.async_call('vol_export', pool, name, dest.get_ip(), xferprop['port'])) cids.add(dest.connection.async_call('vol_import_wait', xferprop['id'])) msgs = self.manager.server.manager.wait(frozenset(cids)) watcher = AsyncWatcher() watcher.register(source.conn, 'vol_export', pool, name, dest.ip, xferprop['port']) watcher.register(dest.conn, 'vol_import_wait', xferprop['id']) msgs = watcher.wait() del self['func_cancel_xfer'] # Compare checksum of two answers: Loading @@ -783,7 +781,7 @@ class CloneJob(BaseMigrationJob): msg = 'error while copy: %s' % msg['error']['message'] raise JobCancelError(msg) else: checksums.append(msg.get('checksum')) checksums.append(msg['return'].get('checksum')) self.checkpoint() if checksums[0] != checksums[1]: Loading