From 11fa3b0df33cd3e2ba405b9932c67de78a781482 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Tue, 20 Oct 2020 15:55:44 -0400 Subject: [PATCH] Remove additional wait and add last_node entries These allow for aborting a migration to retain the previous settings and override what the client set. --- node-daemon/pvcnoded/VMInstance.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/node-daemon/pvcnoded/VMInstance.py b/node-daemon/pvcnoded/VMInstance.py index 62be6d35..6a20222b 100644 --- a/node-daemon/pvcnoded/VMInstance.py +++ b/node-daemon/pvcnoded/VMInstance.py @@ -108,6 +108,8 @@ class VMInstance(object): self.state = zkhandler.readdata(self.zk_conn, '/domains/{}/state'.format(self.domuuid)) self.node = zkhandler.readdata(self.zk_conn, '/domains/{}/node'.format(self.domuuid)) self.lastnode = zkhandler.readdata(self.zk_conn, '/domains/{}/lastnode'.format(self.domuuid)) + self.last_currentnode = zkhandler.readdata(self.zk_conn, '/domains/{}/node'.format(self.domuuid)) + self.last_lastnode = zkhandler.readdata(self.zk_conn, '/domains/{}/lastnode'.format(self.domuuid)) try: self.pinpolicy = zkhandler.readdata(self.zk_conn, '/domains/{}/pinpolicy'.format(self.domuuid)) except: @@ -359,7 +361,6 @@ class VMInstance(object): self.logger.out('Queueing for completion of existing migration', state='i', prefix='Domain {}'.format(self.domuuid)) while zkhandler.readdata(self.zk_conn, '/locks/domain_migrate') != '': time.sleep(0.1) - time.sleep(0.2) self.inmigrate = True self.logger.out('Migrating VM to node "{}"'.format(self.node), state='i', prefix='Domain {}'.format(self.domuuid)) @@ -370,7 +371,7 @@ class VMInstance(object): zkhandler.writedata(self.zk_conn, { '/domains/{}/state'.format(self.domuuid): 'start', '/domains/{}/node'.format(self.domuuid): self.this_node.name, - '/domains/{}/lastnode'.format(self.domuuid): '' + '/domains/{}/lastnode'.format(self.domuuid): self.last_lastnode }) # Acquire exclusive lock on the domain node key @@ -440,6 +441,9 @@ class VMInstance(object): self.console_log_instance.stop() self.removeDomainFromList() + self.last_currentnode = zkhandler.readdata(self.zk_conn, '/domains/{}/node'.format(self.domuuid)) + self.last_lastnode = zkhandler.readdata(self.zk_conn, '/domains/{}/lastnode'.format(self.domuuid)) + return True def migrate_shutdown(): @@ -523,7 +527,6 @@ class VMInstance(object): self.logger.out('Queueing for completion of existing migration', state='i', prefix='Domain {}'.format(self.domuuid)) while zkhandler.readdata(self.zk_conn, '/locks/domain_migrate') != '': time.sleep(0.1) - time.sleep(0.5) self.inreceive = True live_receive = True