Don't try to flush/unflush more than once
This commit is contained in:
parent
b24d8afc77
commit
266d2c3544
|
@ -42,6 +42,7 @@ class NodeInstance():
|
||||||
self.domains_count = 0
|
self.domains_count = 0
|
||||||
self.memused = 0
|
self.memused = 0
|
||||||
self.memfree = 0
|
self.memfree = 0
|
||||||
|
self.inflush = False
|
||||||
|
|
||||||
# Zookeeper handlers for changed states
|
# Zookeeper handlers for changed states
|
||||||
@zk.DataWatch('/nodes/{}/daemonstate'.format(self.name))
|
@zk.DataWatch('/nodes/{}/daemonstate'.format(self.name))
|
||||||
|
@ -58,7 +59,7 @@ class NodeInstance():
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
self.domain_state = 'stop'
|
self.domain_state = 'stop'
|
||||||
|
|
||||||
if self.name == self.this_node:
|
if self.name == self.this_node and self.inflush == False:
|
||||||
if self.domain_state == 'flush':
|
if self.domain_state == 'flush':
|
||||||
self.flush()
|
self.flush()
|
||||||
if self.domain_state == 'unflush':
|
if self.domain_state == 'unflush':
|
||||||
|
@ -120,6 +121,7 @@ class NodeInstance():
|
||||||
|
|
||||||
# Flush all VMs on the host
|
# Flush all VMs on the host
|
||||||
def flush(self):
|
def flush(self):
|
||||||
|
self.inflush = True
|
||||||
ansiiprint.echo('Flushing node "{}" of running VMs'.format(self.name), '', 'i')
|
ansiiprint.echo('Flushing node "{}" of running VMs'.format(self.name), '', 'i')
|
||||||
self.zk.set('/nodes/{}/domainstate'.format(self.name), 'flushed'.encode('ascii'))
|
self.zk.set('/nodes/{}/domainstate'.format(self.name), 'flushed'.encode('ascii'))
|
||||||
for dom_uuid in self.domain_list:
|
for dom_uuid in self.domain_list:
|
||||||
|
@ -162,7 +164,10 @@ class NodeInstance():
|
||||||
# Wait 1s between migrations
|
# Wait 1s between migrations
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
|
self.inflush = False
|
||||||
|
|
||||||
def unflush(self):
|
def unflush(self):
|
||||||
|
self.inflush = True
|
||||||
ansiiprint.echo('Restoring node {} to active service.'.format(self.name), '', 'i')
|
ansiiprint.echo('Restoring node {} to active service.'.format(self.name), '', 'i')
|
||||||
self.zk.set('/nodes/{}/domainstate'.format(self.name), 'ready'.encode('ascii'))
|
self.zk.set('/nodes/{}/domainstate'.format(self.name), 'ready'.encode('ascii'))
|
||||||
for dom_uuid in self.s_domain:
|
for dom_uuid in self.s_domain:
|
||||||
|
@ -180,6 +185,8 @@ class NodeInstance():
|
||||||
# Wait 1s between migrations
|
# Wait 1s between migrations
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
|
self.inflush = False
|
||||||
|
|
||||||
def update_zookeeper(self):
|
def update_zookeeper(self):
|
||||||
# Connect to libvirt
|
# Connect to libvirt
|
||||||
libvirt_name = "qemu:///system"
|
libvirt_name = "qemu:///system"
|
||||||
|
|
Loading…
Reference in New Issue