[PATCH] fix a ambiguous output of the command:'virsh vol-create-as'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I created a storage volume(eg: test) from a storage pool(eg:vg10) using the
following command:"virsh vol-create-as --pool vg10 --name test --capacity 300M."
When I re-executed the above command, the output was as the following:
"error: Failed to create vol test
 error: Storage volume not found: storage vol 'test' already exists"

I think the output "Storage volume not found" is not appropriate. Because in fact storage
vol test has been found at this time. And then I think virErrorNumber should includes
VIR_ERR_STORAGE_VOL_EXISTS which can also be used elsewhere. So I make this patch. The result 
is as following:
"error: Failed to create vol test
 error: storage volume 'test' exists already"

---
 include/libvirt/virterror.h  |    1 +
 src/storage/storage_driver.c |    4 ++--
 src/util/virerror.c          |    6 ++++++
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/include/libvirt/virterror.h b/include/libvirt/virterror.h
index c1960c8..fd14237 100644
--- a/include/libvirt/virterror.h
+++ b/include/libvirt/virterror.h
@@ -296,6 +296,7 @@ typedef enum {
     VIR_ERR_ACCESS_DENIED = 88,         /* operation on the object/resource
                                            was denied */
     VIR_ERR_DBUS_SERVICE = 89,          /* error from a dbus service */
+    VIR_ERR_STORAGE_VOL_EXISTS = 90,         /* the storage vol already exists */
 } virErrorNumber;
 
 /**
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 6c39284..d419a36 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -1538,8 +1538,8 @@ storageVolCreateXML(virStoragePoolPtr obj,
         goto cleanup;
 
     if (virStorageVolDefFindByName(pool, voldef->name)) {
-        virReportError(VIR_ERR_NO_STORAGE_VOL,
-                       _("storage vol '%s' already exists"), voldef->name);
+        virReportError(VIR_ERR_STORAGE_VOL_EXISTS,
+                       _("'%s'"), voldef->name);
         goto cleanup;
     }
 
diff --git a/src/util/virerror.c b/src/util/virerror.c
index ca25678..3f55cec 100644
--- a/src/util/virerror.c
+++ b/src/util/virerror.c
@@ -1004,6 +1004,12 @@ virErrorMsg(virErrorNumber error, const char *info)
             else
                 errmsg = _("Storage volume not found: %s");
             break;
+        case VIR_ERR_STORAGE_VOL_EXISTS:
+            if (info == NULL)
+                errmsg = _("this storage volume exists already");
+            else
+                errmsg = _("storage volume %s exists already");
+            break;
         case VIR_ERR_STORAGE_PROBE_FAILED:
             if (info == NULL)
                 errmsg = _("Storage pool probe failed");
-- 
1.7.1

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]