From fceef3a8d9670e4569bf43e84905ad7d37b717eb Mon Sep 17 00:00:00 2001 From: Anael Beutot <anael.beutot@smartjog.com> Date: Mon, 18 Jun 2012 17:58:49 +0200 Subject: [PATCH] Fix bad libvirt behaviour. Sometimes, libvirt tells us too late that a domain has been removed. --- cloudcontrol/node/hypervisor/domains/vm_tags.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cloudcontrol/node/hypervisor/domains/vm_tags.py b/cloudcontrol/node/hypervisor/domains/vm_tags.py index 32def24..4f9d83c 100644 --- a/cloudcontrol/node/hypervisor/domains/vm_tags.py +++ b/cloudcontrol/node/hypervisor/domains/vm_tags.py @@ -23,7 +23,13 @@ def _vir_tag(func): return try: return func(dom) - except libvirt.libvirtError: + except libvirt.libvirtError as exc: + if 'Domain not found' in str(exc): + # sometimes, libvirt tells us too late when a domain is removed + # we just ignore the error and remove the domain + dom.hypervisor.domains.pop(dom.name) + dom.tag_db.remove_sub_object(dom.name) + return logger.exception('Unexpected libvirt error') dom.hypervisor.handler.virt_connect_restart() -- GitLab