diff options
| author | Matt Riedemann <mriedem@us.ibm.com> | 2013-06-15 20:42:42 -0700 |
|---|---|---|
| committer | Matt Riedemann <mriedem@us.ibm.com> | 2013-06-17 05:35:57 -0700 |
| commit | e387e7bd34d6389c8c9dc599b93b4b1d8197a38a (patch) | |
| tree | b2967a8deb425ac48f1312a6a418893254e90bc0 /nova/virt | |
| parent | 328b347cd058f1c87d7e32a18d9decc0ba517266 (diff) | |
| download | nova-e387e7bd34d6389c8c9dc599b93b4b1d8197a38a.tar.gz nova-e387e7bd34d6389c8c9dc599b93b4b1d8197a38a.tar.xz nova-e387e7bd34d6389c8c9dc599b93b4b1d8197a38a.zip | |
Log xml in libvirt _create_domain failures
When an error occurs defining, launching or enabling hairpin mode on a
libvirt domain, log the xml for reproduction and analysis.
Fixes bug 1183534
Change-Id: Ic8f1d11c5a92779c686b7248895bbc6f2cfdbf0b
Diffstat (limited to 'nova/virt')
| -rwxr-xr-x | nova/virt/libvirt/driver.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 6cfa2c7c7..90695d1c3 100755 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -2481,10 +2481,28 @@ class LibvirtDriver(driver.ComputeDriver): use_cow=CONF.use_cow_images) if xml: - domain = self._conn.defineXML(xml) + try: + domain = self._conn.defineXML(xml) + except Exception as e: + LOG.error(_("An error occurred while trying to define a domain" + " with xml: %s") % xml) + raise e + if power_on: - domain.createWithFlags(launch_flags) - self._enable_hairpin(domain.XMLDesc(0)) + try: + domain.createWithFlags(launch_flags) + except Exception as e: + with excutils.save_and_reraise_exception(): + LOG.error(_("An error occurred while trying to launch a " + "defined domain with xml: %s") % + domain.XMLDesc(0)) + + try: + self._enable_hairpin(domain.XMLDesc(0)) + except Exception: + with excutils.save_and_reraise_exception(): + LOG.error(_("An error occurred while enabling hairpin mode on " + "domain with xml: %s") % domain.XMLDesc(0)) # NOTE(uni): Now the container is running with its own private mount # namespace and so there is no need to keep the container rootfs |
