[libvirt] [PATCH] repeat lookup by name in LookupByID

Daniel Veillard veillard at redhat.com
Wed Jul 16 19:53:29 UTC 2008


On Wed, Jul 16, 2008 at 08:10:21PM +0100, Daniel P. Berrange wrote:
> 
> Yes, the documentation is wrong - all inactive VMs have an ID
> of -1, and thus lookup-by-ID is nonsensical for inactive VMs. 
> 
> If any application did make use of this change which falls back to
> lookup-by-name, then it would only ever work with OpenVZ and not
> any of the other libvirt drivers, which isn't useful behaviour.
[...]
> >   Then the virLookupById description must be updated, I'm not against it,
> > but we need to be coherent.
> 
> Indeed, the docs need to be clarified.

  okay, what about
   * Try to find a domain based on the hypervisor ID number
   * Note that this won't work for inactive domains which have an ID of -1,
   * in that case a lookup based on the Name or UUId need to be done instead.

and then revert that specific part of the patch, as attached. Also 
I would make a 'make rebuild' in the doc directory and push the doc update

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillard at redhat.com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/
-------------- next part --------------
Index: src/libvirt.c
===================================================================
RCS file: /data/cvs/libxen/src/libvirt.c,v
retrieving revision 1.148
diff -u -p -p -r1.148 libvirt.c
--- src/libvirt.c	10 Jul 2008 15:29:39 -0000	1.148
+++ src/libvirt.c	16 Jul 2008 19:50:28 -0000
@@ -1253,6 +1253,8 @@ virDomainCreateLinux(virConnectPtr conn,
  * @id: the domain ID number
  *
  * Try to find a domain based on the hypervisor ID number
+ * Note that this won't work for inactive domains which have an ID of -1,
+ * in that case a lookup based on the Name or UUId need to be done instead.
  *
  * Returns a new domain object or NULL in case of failure.  If the
  * domain cannot be found, then VIR_ERR_NO_DOMAIN error is raised.
Index: src/openvz_driver.c
===================================================================
RCS file: /data/cvs/libxen/src/openvz_driver.c,v
retrieving revision 1.30
diff -u -p -p -r1.30 openvz_driver.c
--- src/openvz_driver.c	16 Jul 2008 15:27:00 -0000	1.30
+++ src/openvz_driver.c	16 Jul 2008 19:50:28 -0000
@@ -202,15 +202,6 @@ static virDomainPtr openvzDomainLookupBy
 
     vm = openvzFindVMByID(driver, id);
 
-    if (!vm) { /*try to find by name*/
-        char name[OPENVZ_NAME_MAX];
-        if (snprintf(name, OPENVZ_NAME_MAX, "%d",id) >= OPENVZ_NAME_MAX) {
-            openvzError(conn, VIR_ERR_INTERNAL_ERROR, _("Too long domain name"));
-            return NULL;
-        }
-        vm = openvzFindVMByName(driver, name);
-    }
-
     if (!vm) {
         openvzError(conn, VIR_ERR_NO_DOMAIN, NULL);
         return NULL;


More information about the libvir-list mailing list