summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-12-04 05:30:29 +0000
committerGerrit Code Review <review@openstack.org>2012-12-04 05:30:29 +0000
commitd0ebec4f093e4f4a80d8dd28c34e8645afa41481 (patch)
tree4c9c40ad371b9725ac05bc96f9aadc194a8e35ce
parentc783a97326181c76ede3dab87163c93d313b2086 (diff)
parent0e85ba136e3c1c2f81f5ed7d594020539100939d (diff)
downloadnova-d0ebec4f093e4f4a80d8dd28c34e8645afa41481.tar.gz
nova-d0ebec4f093e4f4a80d8dd28c34e8645afa41481.tar.xz
nova-d0ebec4f093e4f4a80d8dd28c34e8645afa41481.zip
Merge "Add notifications when libvirtd goes down"
-rw-r--r--nova/virt/libvirt/driver.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index b39fd773b..4d2408ff1 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -67,6 +67,7 @@ from nova.openstack.common import fileutils
from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
+from nova.openstack.common.notifier import api as notifier
from nova import utils
from nova.virt import configdrive
from nova.virt.disk import api as disk
@@ -399,10 +400,22 @@ class LibvirtDriver(driver.ComputeDriver):
_connect_auth_cb,
None]
- if read_only:
- return libvirt.openReadOnly(uri)
- else:
- return libvirt.openAuth(uri, auth, 0)
+ try:
+ if read_only:
+ return libvirt.openReadOnly(uri)
+ else:
+ return libvirt.openAuth(uri, auth, 0)
+ except libvirt.libvirtError as ex:
+ LOG.exception(_("Connection to libvirt failed: %s"), ex)
+ payload = dict(ip=LibvirtDriver.get_host_ip_addr(),
+ method='_connect',
+ reason=ex)
+ notifier.notify(nova_context.get_admin_context(),
+ notifier.publisher_id('compute'),
+ 'compute.libvirt.error',
+ notifier.ERROR,
+ payload)
+ pass
def get_num_instances(self):
"""Efficient override of base instance_exists method."""