
On Mon, May 06, 2013 at 09:40:43PM -0600, Jim Fehlig wrote:
Jim Fehlig wrote:
Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange@redhat.com>
Unconditionally invoke the xenHypervisorLookupDomainByID, xenHypervisorLookupDomainByUUID or xenDaemonLookupByName for looking up domains. Fallback to xenXMDomainLookupByUUID and xenXMDomainLookupByName for legacy XenD without inactive domain support
Do you think there are any Xen installations running such an old xend toolstack, and if so wanting to use e.g. libvirt 1.0.6? Seems all of the XEND_CONFIG_VERSION_3_0_3 logic could be removed from the code.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- src/xen/xen_driver.c | 99 +++++++++++-------------------------------------- src/xen/xend_internal.c | 89 -------------------------------------------- src/xen/xend_internal.h | 14 ------- src/xen/xs_internal.c | 62 ------------------------------- src/xen/xs_internal.h | 2 - 5 files changed, 22 insertions(+), 244 deletions(-)
I spent some time testing this one and didn't notice any problems.
Apparently "some" time was not enough time. With this patch, I noticed 'virsh undefine dom' failing because the tri-state virDomainIsActive() is returning -1.
Opps, I made a mistake only checking the hypervisor, which of course will not know about the domain if it is shutoff :-) Adding the following extra hunk fixes it @@ -664,11 +664,21 @@ xenUnifiedDomainIsActive(virDomainPtr dom) int ret = -1; /* ID field in dom may be outdated, so re-lookup */ - currdom = xenHypervisorLookupDomainByUUID(dom->conn, dom->uuid); + currdom = xenHypervisorLookupDomainByUUID(conn, uuid); + + /* Try XM for inactive domains. */ + if (!currdom) { + if (priv->xendConfigVersion <= XEND_CONFIG_VERSION_3_0_3) + currdom = xenXMDomainLookupByUUID(conn, uuid); + else + currdom = xenDaemonLookupByUUID(conn, uuid); + } if (currdom) { ret = currdom->id == -1 ? 0 : 1; virDomainFree(currdom); + } else if (virGetLastError() == NULL) { + virReportError(VIR_ERR_NO_DOMAIN, __FUNCTION__); } return ret; Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|