2013/10/8 Michal Privoznik <mprivozn@xxxxxxxxxx>: > On 07.10.2013 16:04, Hongwei Bi wrote: >> 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_EXIST 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"); >> > > ACKed and pushed. > > Michal Pushed; Thanks. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list