]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
lookup by ID function and error report fix for OpenVZ
authorDaniel Veillard <veillard@redhat.com>
Wed, 16 Jul 2008 15:27:00 +0000 (15:27 +0000)
committerDaniel Veillard <veillard@redhat.com>
Wed, 16 Jul 2008 15:27:00 +0000 (15:27 +0000)
* src/openvz_driver.c: fix the lookup by ID function and error
  reporting in OpenVZ, fix by Evgeniy Sokolov
Daniel

ChangeLog
src/openvz_driver.c

index 2af46c735121f6752ab226b2d965f6b602f358e0..e35a1ad0027afb74e3654f2cf2ceb9478297367f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jul 16 17:25:02 CEST 2008 Daniel Veillard <veillard@redhat.com>
+
+       * src/openvz_driver.c: fix the lookup by ID function and error
+         reporting in OpenVZ, fix by Evgeniy Sokolov
+
 Wed Jul 16 16:44:27 CEST 2008 Daniel Veillard <veillard@redhat.com>
 
        * src/openvz_driver.c: another cleanup patch from Evgeniy Sokolov
index 82296971767c982125e7a9c3770e524f509c4b96..d1aa87b8ea30b2f7b70c4ea0221b341d24e20d3e 100644 (file)
@@ -197,11 +197,22 @@ static int openvzDomainDefineCmd(virConnectPtr conn,
 static virDomainPtr openvzDomainLookupByID(virConnectPtr conn,
                                    int id) {
     struct openvz_driver *driver = (struct openvz_driver *)conn->privateData;
-    struct openvz_vm *vm = openvzFindVMByID(driver, id);
+    struct openvz_vm *vm;
     virDomainPtr dom;
 
+    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_INTERNAL_ERROR, _("no domain with matching id"));
+        openvzError(conn, VIR_ERR_NO_DOMAIN, NULL);
         return NULL;
     }
 
@@ -229,7 +240,7 @@ static virDomainPtr openvzDomainLookupByUUID(virConnectPtr conn,
     virDomainPtr dom;
 
     if (!vm) {
-        openvzError(conn, VIR_ERR_INVALID_DOMAIN, _("no domain with matching uuid"));
+        openvzError(conn, VIR_ERR_NO_DOMAIN, NULL);
         return NULL;
     }
 
@@ -250,7 +261,7 @@ static virDomainPtr openvzDomainLookupByName(virConnectPtr conn,
     virDomainPtr dom;
 
     if (!vm) {
-        openvzError(conn, VIR_ERR_INTERNAL_ERROR, _("no domain with matching name"));
+        openvzError(conn, VIR_ERR_NO_DOMAIN, NULL);
         return NULL;
     }