[libvirt] [PATCH 4/8] qemu: Cleanup improper VIR_ERR_NO_SUPPORT use
Osier Yang
jyang at redhat.com
Thu Sep 1 07:02:50 UTC 2011
于 2011年08月25日 05:47, Daniel P. Berrange 写道:
> On Tue, Aug 23, 2011 at 05:39:41PM +0800, Osier Yang wrote:
>> * src/qemu/qemu_command.c: s/VIR_ERR_NO_SUPPORT/VIR_ERR_CONFIG_UNSUPPORTED/
>>
>> * src/qemu/qemu_driver.c: s/VIR_ERR_NO_SUPPORT/VIR_ERR_OPERATION_INVALID/
>>
>> * src/qemu/qemu_process.c: s/VIR_ERR_NO_SUPPORT/VIR_ERR_OPERATION_INVALID/
>> ---
>> src/qemu/qemu_command.c | 4 ++--
>> src/qemu/qemu_driver.c | 16 ++++++++--------
>> src/qemu/qemu_process.c | 4 ++--
>> 3 files changed, 12 insertions(+), 12 deletions(-)
>>
>> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>> index dbfc7d9..287ad8d 100644
>> --- a/src/qemu/qemu_command.c
>> +++ b/src/qemu/qemu_command.c
>> @@ -4084,7 +4084,7 @@ qemuBuildCommandLine(virConnectPtr conn,
>> switch(console->targetType) {
>> case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO:
>> if (!qemuCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) {
>> - qemuReportError(VIR_ERR_NO_SUPPORT, "%s",
>> + qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
>> _("virtio channel requires QEMU to support -device"));
>> goto error;
>> }
>> @@ -4109,7 +4109,7 @@ qemuBuildCommandLine(virConnectPtr conn,
>> break;
>>
>> default:
>> - qemuReportError(VIR_ERR_NO_SUPPORT,
>> + qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>> _("unsupported console target type %s"),
>> NULLSTR(virDomainChrConsoleTargetTypeToString(console->targetType)));
>> goto error;
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index c8dda73..fc2538a 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -1552,7 +1552,7 @@ static int qemuDomainReboot(virDomainPtr dom, unsigned int flags) {
>> vm = NULL;
>> } else {
>> #endif
>> - qemuReportError(VIR_ERR_NO_SUPPORT, "%s",
>> + qemuReportError(VIR_ERR_OPERATION_INVALID, "%s",
>> _("Reboot is not supported without the JSON monitor"));
>> #if HAVE_YAJL
>> }
>> @@ -3309,7 +3309,7 @@ qemudDomainPinVcpuFlags(virDomainPtr dom,
>> cpumap, maplen, maxcpu)< 0)
>> goto cleanup;
>> } else {
>> - qemuReportError(VIR_ERR_NO_SUPPORT,
>> + qemuReportError(VIR_ERR_OPERATION_INVALID,
>> "%s", _("cpu affinity is not supported"));
>> goto cleanup;
>> }
>> @@ -3563,7 +3563,7 @@ qemudDomainGetVcpus(virDomainPtr dom,
>> goto cleanup;
>> }
>> } else {
>> - qemuReportError(VIR_ERR_NO_SUPPORT,
>> + qemuReportError(VIR_ERR_OPERATION_INVALID,
>> "%s", _("cpu affinity is not available"));
>> goto cleanup;
>> }
>> @@ -5637,7 +5637,7 @@ static int qemuDomainSetBlkioParameters(virDomainPtr dom,
>> }
>>
>> if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_BLKIO)) {
>> - qemuReportError(VIR_ERR_NO_SUPPORT, _("blkio cgroup isn't mounted"));
>> + qemuReportError(VIR_ERR_OPERATION_INVALID, _("blkio cgroup isn't mounted"));
>> goto cleanup;
>> }
>>
>> @@ -5790,7 +5790,7 @@ static int qemuDomainGetBlkioParameters(virDomainPtr dom,
>> }
>>
>> if (!qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_BLKIO)) {
>> - qemuReportError(VIR_ERR_NO_SUPPORT, _("blkio cgroup isn't mounted"));
>> + qemuReportError(VIR_ERR_OPERATION_INVALID, _("blkio cgroup isn't mounted"));
>> goto cleanup;
>> }
>>
> THe use of VIR_ERR_OPERATION_INVALID is not correct here, but I'm not
> certain what other error is best. Perhaps ARGUMENT_UNSUPPORTED
For VIR_ERR_OPERATION_INVALID:
errmsg = _("Requested operation is not valid");
For VIR_ERR_ARGUMENT_UNSUPPORTED:
errmsg = _("argument unsupported");
From the user's point of view, I think OPERATION_INVALID is more clear
and sensiable. E.g.
"Requested operation is not valid: blkio cgroup isn't mounted"
"argument unsupported: blkio cgroup isn't mounted"
Could we just extend the meaning for OPERATION_INVALID
so that it's not just used when the object operated on is not in
correct state, and used for things like above?
Otherwise, I'd prefer INTERNAL_ERROR here.
>
>> @@ -6887,8 +6887,8 @@ qemudDomainInterfaceStats (virDomainPtr dom,
>> const char *path ATTRIBUTE_UNUSED,
>> struct _virDomainInterfaceStats *stats ATTRIBUTE_UNUSED)
>> {
>> - qemuReportError(VIR_ERR_NO_SUPPORT,
>> - "%s", __FUNCTION__);
>> + qemuReportError(VIR_ERR_OPERATION_INVALID, "%s",
>> + _("interface stats not implemented on this platform"));
>> return -1;
>> }
>> #endif
>
> The original code was correct here.
>
>
>> @@ -8004,7 +8004,7 @@ qemuCPUCompare(virConnectPtr conn,
>> qemuDriverLock(driver);
>>
>> if (!driver->caps || !driver->caps->host.cpu) {
>> - qemuReportError(VIR_ERR_NO_SUPPORT,
>> + qemuReportError(VIR_ERR_OPERATION_INVALID,
>> "%s", _("cannot get host CPU capabilities"));
>> } else {
>> ret = cpuCompareXML(driver->caps->host.cpu, xmlDesc);
> The use of OPERATION_INVALID is not correct here. Perhaps
> ARGUMENT_UNSUPPORTED
perhaps INTERNAL_ERROR is better here, as translated error string
for ARGUMENT_UNSUPPORTED is quite confused.
>
>> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
>> index 6f54b30..616c8e2 100644
>> --- a/src/qemu/qemu_process.c
>> +++ b/src/qemu/qemu_process.c
>> @@ -261,7 +261,7 @@ qemuProcessGetVolumeQcowPassphrase(virConnectPtr conn,
>> if (conn->secretDriver == NULL ||
>> conn->secretDriver->lookupByUUID == NULL ||
>> conn->secretDriver->getValue == NULL) {
>> - qemuReportError(VIR_ERR_NO_SUPPORT, "%s",
>> + qemuReportError(VIR_ERR_OPERATION_INVALID, "%s",
>> _("secret storage not supported"));
>> goto cleanup;
>> }
> NO_SUPPORT was the right value here.
>
>> @@ -1464,7 +1464,7 @@ qemuProcessSetVcpuAffinites(virConnectPtr conn,
>> return 0;
>>
>> if (priv->vcpupids == NULL) {
>> - qemuReportError(VIR_ERR_NO_SUPPORT,
>> + qemuReportError(VIR_ERR_OPERATION_INVALID,
>> "%s", _("cpu affinity is not supported"));
>> return -1;
>> }
> Perhaps ARGUMENT_UNSUPPORTED
Perhaps INTERNAL_ERROR?
>
> Daniel
More information about the libvir-list
mailing list