From d39f41980b89d7218af919847cf50d79a5d05e0b Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Tue, 19 Jun 2018 19:45:35 -0400 Subject: [PATCH] Add cleanup of local domain list during VM check --- pvcd/NodeInstance.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/pvcd/NodeInstance.py b/pvcd/NodeInstance.py index 7900f8ac..7a5b831a 100644 --- a/pvcd/NodeInstance.py +++ b/pvcd/NodeInstance.py @@ -203,14 +203,20 @@ class NodeInstance(): # Toggle state management of dead VMs to restart them for domain, instance in self.s_domain.items(): if instance.inshutdown == False and domain in self.domain_list: - if instance.getstate() == 'start' and instance.gethypervisor() == self.name: - if instance.getdom() != None: - try: - if instance.getdom().state()[0] != libvirt.VIR_DOMAIN_RUNNING: - raise - except Exception as e: - # Toggle a state "change" - self.zk_conn.set('/domains/{}/state'.format(domain), instance.getstate().encode('ascii')) + if instance.gethypervisor() == self.name: + if instance.getstate() == 'start': + if instance.getdom() != None: + try: + if instance.getdom().state()[0] != libvirt.VIR_DOMAIN_RUNNING: + raise + except Exception as e: + # Toggle a state "change" + self.zk_conn.set('/domains/{}/state'.format(domain), instance.getstate().encode('ascii')) + else: + self.domain_list.remove(domain) + else: + self.domain_list.remove(domain) + # Set our information in zookeeper self.name = lv_conn.getHostname()