diff options
| author | Dan Smith <danms@us.ibm.com> | 2012-06-29 09:35:02 -0700 |
|---|---|---|
| committer | Dan Smith <danms@us.ibm.com> | 2012-07-02 09:14:38 -0700 |
| commit | 540f28ea10684e2ff473f5efce0088d12d827af1 (patch) | |
| tree | 3407592f35eee7335f42b080f16995fbc4756cfb /nova | |
| parent | c2853c48166cb8d0f1d7b4307c96bba27345419c (diff) | |
Redefine the domain's XML on volume attach/detach
This fixes bug 1004791 by adding new disk definitions to the defined
XML instead of just modifying the running instance.
Change-Id: I6596dae7c54158c32bc7b399c55a1797b2d98242
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/tests/fakelibvirt.py | 2 | ||||
| -rw-r--r-- | nova/virt/libvirt/driver.py | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/nova/tests/fakelibvirt.py b/nova/tests/fakelibvirt.py index 4350a8878..369b468b8 100644 --- a/nova/tests/fakelibvirt.py +++ b/nova/tests/fakelibvirt.py @@ -68,6 +68,8 @@ VIR_DOMAIN_SHUTDOWN = 4 VIR_DOMAIN_SHUTOFF = 5 VIR_DOMAIN_CRASHED = 6 +VIR_DOMAIN_XML_SECURE = 1 + VIR_CPU_COMPARE_ERROR = -1 VIR_CPU_COMPARE_INCOMPATIBLE = 0 VIR_CPU_COMPARE_IDENTICAL = 1 diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 96ae61d70..1ff41ef4e 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -616,6 +616,13 @@ class LibvirtDriver(driver.ComputeDriver): raise exception.DeviceIsBusy(device=mount_device) raise + # TODO(danms) once libvirt has support for LXC hotplug, + # replace this re-define with use of the + # VIR_DOMAIN_AFFECT_LIVE & VIR_DOMAIN_AFFECT_CONFIG flags with + # attachDevice() + domxml = virt_dom.XMLDesc(libvirt.VIR_DOMAIN_XML_SECURE) + self._conn.defineXML(domxml) + @staticmethod def _get_disk_xml(xml, device): """Returns the xml for the disk mounted at device""" @@ -650,6 +657,13 @@ class LibvirtDriver(driver.ComputeDriver): connection_info, mount_device) + # TODO(danms) once libvirt has support for LXC hotplug, + # replace this re-define with use of the + # VIR_DOMAIN_AFFECT_LIVE & VIR_DOMAIN_AFFECT_CONFIG flags with + # detachDevice() + domxml = virt_dom.XMLDesc(libvirt.VIR_DOMAIN_XML_SECURE) + self._conn.defineXML(domxml) + @exception.wrap_exception() def _attach_lxc_volume(self, xml, virt_dom, instance_name): LOG.info(_('attaching LXC block device')) |
