[libvirt PATCH] esx: improve some of the virErrorNumber used

Neal Gompa ngompa13 at gmail.com
Thu Sep 10 11:59:46 UTC 2020


On Thu, Sep 10, 2020 at 7:57 AM Pino Toscano <ptoscano at redhat.com> wrote:
>
> A lot of virReportError() calls use VIR_ERR_INTERNAL_ERROR to represent
> the number of the error, even in cases where there is one fitting more.
> Hence, replace some of them with better virErrorNumber values.
>
> Signed-off-by: Pino Toscano <ptoscano at redhat.com>
> ---
>  src/esx/esx_network_driver.c        |  4 ++--
>  src/esx/esx_storage_backend_iscsi.c |  4 ++--
>  src/esx/esx_storage_backend_vmfs.c  | 12 +++++-----
>  src/esx/esx_util.c                  |  4 ++--
>  src/esx/esx_vi.c                    | 36 ++++++++++++++---------------
>  5 files changed, 30 insertions(+), 30 deletions(-)
>
> diff --git a/src/esx/esx_network_driver.c b/src/esx/esx_network_driver.c
> index d46fc9253d..88843aae2f 100644
> --- a/src/esx/esx_network_driver.c
> +++ b/src/esx/esx_network_driver.c
> @@ -355,7 +355,7 @@ esxNetworkDefineXML(virConnectPtr conn, const char *xml)
>              for (hostPortGroup = hostPortGroupList; hostPortGroup;
>                   hostPortGroup = hostPortGroup->_next) {
>                  if (STREQ(def->portGroups[i].name, hostPortGroup->spec->name)) {
> -                    virReportError(VIR_ERR_INTERNAL_ERROR,
> +                    virReportError(VIR_ERR_NETWORK_EXIST,
>                                     _("HostPortGroup with name '%s' exists already"),
>                                     def->portGroups[i].name);
>                      goto cleanup;
> @@ -388,7 +388,7 @@ esxNetworkDefineXML(virConnectPtr conn, const char *xml)
>
>              if (def->forward.ifs[i].type !=
>                  VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_NETDEV) {
> -                virReportError(VIR_ERR_INTERNAL_ERROR,
> +                virReportError(VIR_ERR_NO_SUPPORT,
>                                 _("unsupported device type in network %s "
>                                   "interface pool"),
>                                 def->name);
> diff --git a/src/esx/esx_storage_backend_iscsi.c b/src/esx/esx_storage_backend_iscsi.c
> index 395a347cf3..017b800f06 100644
> --- a/src/esx/esx_storage_backend_iscsi.c
> +++ b/src/esx/esx_storage_backend_iscsi.c
> @@ -321,7 +321,7 @@ esxStoragePoolGetXMLDesc(virStoragePoolPtr pool, unsigned int flags)
>
>      if (!target) {
>          /* pool not found */
> -        virReportError(VIR_ERR_INTERNAL_ERROR,
> +        virReportError(VIR_ERR_NO_STORAGE_POOL,
>                         _("Could not find storage pool with name '%s'"),
>                         pool->name);
>          goto cleanup;
> @@ -699,7 +699,7 @@ esxStorageVolGetXMLDesc(virStorageVolPtr volume,
>      }
>
>      if (!scsiLun) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR,
> +        virReportError(VIR_ERR_NO_STORAGE_VOL,
>                         _("Could find volume with name: %s"), volume->name);
>          goto cleanup;
>      }
> diff --git a/src/esx/esx_storage_backend_vmfs.c b/src/esx/esx_storage_backend_vmfs.c
> index 4f613bf93b..a98001d6b2 100644
> --- a/src/esx/esx_storage_backend_vmfs.c
> +++ b/src/esx/esx_storage_backend_vmfs.c
> @@ -897,7 +897,7 @@ esxStorageVolCreateXML(virStoragePoolPtr pool,
>          goto cleanup;
>
>      if (def->type != VIR_STORAGE_VOL_FILE) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_NO_SUPPORT, "%s",
>                         _("Creating non-file volumes is not supported"));
>          goto cleanup;
>      }
> @@ -913,7 +913,7 @@ esxStorageVolCreateXML(virStoragePoolPtr pool,
>      }
>
>      if (!virStringHasCaseSuffix(def->name, ".vmdk")) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR,
> +        virReportError(VIR_ERR_NO_SUPPORT,
>                         _("Volume name '%s' has unsupported suffix, "
>                           "expecting '.vmdk'"), def->name);
>          goto cleanup;
> @@ -1032,7 +1032,7 @@ esxStorageVolCreateXML(virStoragePoolPtr pool,
>              key = g_strdup(datastorePath);
>          }
>      } else {
> -        virReportError(VIR_ERR_INTERNAL_ERROR,
> +        virReportError(VIR_ERR_NO_SUPPORT,
>                         _("Creation of %s volumes is not supported"),
>                         virStorageFileFormatTypeToString(def->target.format));
>          goto cleanup;
> @@ -1111,7 +1111,7 @@ esxStorageVolCreateXMLFrom(virStoragePoolPtr pool,
>          goto cleanup;
>
>      if (def->type != VIR_STORAGE_VOL_FILE) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_NO_SUPPORT, "%s",
>                         _("Creating non-file volumes is not supported"));
>          goto cleanup;
>      }
> @@ -1127,7 +1127,7 @@ esxStorageVolCreateXMLFrom(virStoragePoolPtr pool,
>      }
>
>      if (!virStringHasCaseSuffix(def->name, ".vmdk")) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR,
> +        virReportError(VIR_ERR_NO_SUPPORT,
>                         _("Volume name '%s' has unsupported suffix, "
>                           "expecting '.vmdk'"), def->name);
>          goto cleanup;
> @@ -1212,7 +1212,7 @@ esxStorageVolCreateXMLFrom(virStoragePoolPtr pool,
>              key = g_strdup(datastorePath);
>          }
>      } else {
> -        virReportError(VIR_ERR_INTERNAL_ERROR,
> +        virReportError(VIR_ERR_NO_SUPPORT,
>                         _("Creation of %s volumes is not supported"),
>                         virStorageFileFormatTypeToString(def->target.format));
>          goto cleanup;
> diff --git a/src/esx/esx_util.c b/src/esx/esx_util.c
> index 11f43acc19..8755d80877 100644
> --- a/src/esx/esx_util.c
> +++ b/src/esx/esx_util.c
> @@ -217,7 +217,7 @@ esxUtil_ParseDatastorePath(const char *datastorePath, char **datastoreName,
>      if ((datastoreName && *datastoreName) ||
>          (directoryName && *directoryName) ||
>          (directoryAndFileName && *directoryAndFileName)) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("Invalid argument"));
>          return -1;
>      }
>
> @@ -226,7 +226,7 @@ esxUtil_ParseDatastorePath(const char *datastorePath, char **datastoreName,
>      /* Expected format: '[<datastore>] <path>' where <path> is optional */
>      if (!(tmp = STRSKIP(copyOfDatastorePath, "[")) || *tmp == ']' ||
>          !(preliminaryDatastoreName = strtok_r(tmp, "]", &saveptr))) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR,
> +        virReportError(VIR_ERR_INVALID_ARG,
>                         _("Datastore path '%s' doesn't have expected format "
>                           "'[<datastore>] <path>'"), datastorePath);
>          goto cleanup;
> diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
> index a4f3be02a4..61e9bcd920 100644
> --- a/src/esx/esx_vi.c
> +++ b/src/esx/esx_vi.c
> @@ -430,7 +430,7 @@ esxVI_CURL_Upload(esxVI_CURL *curl, const char *url, const char *content)
>      int responseCode = 0;
>
>      if (!content) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("Invalid argument"));
>          return -1;
>      }
>
> @@ -547,13 +547,13 @@ esxVI_SharedCURL_Add(esxVI_SharedCURL *shared, esxVI_CURL *curl)
>      size_t i;
>
>      if (!curl->handle) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
>                         _("Cannot share uninitialized CURL handle"));
>          return -1;
>      }
>
>      if (curl->shared) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
>                         _("Cannot share CURL handle that is already shared"));
>          return -1;
>      }
> @@ -602,19 +602,19 @@ int
>  esxVI_SharedCURL_Remove(esxVI_SharedCURL *shared, esxVI_CURL *curl)
>  {
>      if (!curl->handle) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
>                         _("Cannot unshare uninitialized CURL handle"));
>          return -1;
>      }
>
>      if (!curl->shared) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
>                         _("Cannot unshare CURL handle that is not shared"));
>          return -1;
>      }
>
>      if (curl->shared != shared) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("CURL (share) mismatch"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("CURL (share) mismatch"));
>          return -1;
>      }
>
> @@ -657,13 +657,13 @@ int
>  esxVI_MultiCURL_Add(esxVI_MultiCURL *multi, esxVI_CURL *curl)
>  {
>      if (!curl->handle) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
>                         _("Cannot add uninitialized CURL handle to a multi handle"));
>          return -1;
>      }
>
>      if (curl->multi) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
>                         _("Cannot add CURL handle to a multi handle twice"));
>          return -1;
>      }
> @@ -695,21 +695,21 @@ int
>  esxVI_MultiCURL_Remove(esxVI_MultiCURL *multi, esxVI_CURL *curl)
>  {
>      if (!curl->handle) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
>                         _("Cannot remove uninitialized CURL handle from a "
>                           "multi handle"));
>          return -1;
>      }
>
>      if (!curl->multi) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
>                         _("Cannot remove CURL handle from a multi handle when it "
>                           "wasn't added before"));
>          return -1;
>      }
>
>      if (curl->multi != multi) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("CURL (multi) mismatch"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("CURL (multi) mismatch"));
>          return -1;
>      }
>
> @@ -839,7 +839,7 @@ esxVI_Context_Connect(esxVI_Context *ctx, const char *url,
>
>      if (!ctx || !url || !ipAddress || !username ||
>          !password || ctx->url || ctx->service || ctx->curl) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("Invalid argument"));
>          return -1;
>      }
>
> @@ -1247,7 +1247,7 @@ esxVI_Context_Execute(esxVI_Context *ctx, const char *methodName,
>      xmlNodePtr responseNode = NULL;
>
>      if (!request || !response || *response) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("Invalid argument"));
>          return -1;
>      }
>
> @@ -1390,7 +1390,7 @@ esxVI_Context_Execute(esxVI_Context *ctx, const char *methodName,
>              }
>          }
>      } else {
> -        virReportError(VIR_ERR_INTERNAL_ERROR,
> +        virReportError(VIR_ERR_HTTP_ERROR,
>                         _("HTTP response code %d for call to '%s'"),
>                         (*response)->responseCode, methodName);
>          goto cleanup;
> @@ -1440,14 +1440,14 @@ esxVI_Enumeration_CastFromAnyType(const esxVI_Enumeration *enumeration,
>      size_t i;
>
>      if (!anyType || !value) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("Invalid argument"));
>          return -1;
>      }
>
>      *value = 0; /* undefined */
>
>      if (anyType->type != enumeration->type) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR,
> +        virReportError(VIR_ERR_INVALID_ARG,
>                         _("Expecting type '%s' but found '%s'"),
>                         esxVI_Type_ToString(enumeration->type),
>                         esxVI_AnyType_TypeToString(anyType));
> @@ -1476,7 +1476,7 @@ esxVI_Enumeration_Serialize(const esxVI_Enumeration *enumeration,
>      const char *name = NULL;
>
>      if (!element || !output) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("Invalid argument"));
>          return -1;
>      }
>
> @@ -1515,7 +1515,7 @@ esxVI_Enumeration_Deserialize(const esxVI_Enumeration *enumeration,
>      char *name = NULL;
>
>      if (!value) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("Invalid argument"));
>          return -1;
>      }
>

Yay for quality of life improvements in error reporting! Looks good to me.

Reviewed-by: Neal Gompa <ngompa13 at gmail.com>


-- 
真実はいつも一つ!/ Always, there's only one truth!





More information about the libvir-list mailing list