[libvirt] [PATCH v2] interface: report generic error message of lookup failure
Laine Stump
laine at laine.org
Wed May 15 09:03:21 UTC 2013
On 05/14/2013 08:16 PM, Guannan Ren wrote:
> "couldn't find interface named"
> "couldn't find interface with MAC address"
>
> use generic message as follows
> "couldn't find interface with"
If you were going to do this, having "with" at the end sounds awkward;
it would be better to just make it "couldn't find interface '%s'".
However, it doesn't make sense to make the messages in the driver itself
generic, because they are inside functions that are specific to mac
address / name, so it's appropriate for the error message to be specific.
I think I like Dan's suggestion (3) the best - in virsh, before doing
any lookups just try parsing the string into a mac address (with
virMacAddrParse()) - if virMacAddrParse() is successful, you then only
need to try lookupbymac (and can report "couldn't find interface with
MAC address '%s' if the lookup fails), and if virMacAddrParse fails, you
then only need to try lookupbyname.
Once you've done that, you shouldn't need any changes to the libvirtd
log messages at all.
> ---
> src/interface/interface_backend_netcf.c | 16 ++++++++--------
> src/interface/interface_backend_udev.c | 8 ++++----
> 2 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/src/interface/interface_backend_netcf.c b/src/interface/interface_backend_netcf.c
> index cbba4fd..c6f3f42 100644
> --- a/src/interface/interface_backend_netcf.c
> +++ b/src/interface/interface_backend_netcf.c
> @@ -104,12 +104,12 @@ static struct netcf_if *interfaceDriverGetNetcfIF(struct netcf *ncf, virInterfac
> int errcode = ncf_error(ncf, &errmsg, &details);
> if (errcode != NETCF_NOERROR) {
> virReportError(netcf_to_vir_err(errcode),
> - _("couldn't find interface named '%s': %s%s%s"),
> + _("couldn't find interface with '%s': %s%s%s"),
> ifinfo->name, errmsg, details ? " - " : "",
> details ? details : "");
> } else {
> virReportError(VIR_ERR_NO_INTERFACE,
> - _("couldn't find interface named '%s'"),
> + _("couldn't find interface with '%s'"),
> ifinfo->name);
> }
> }
> @@ -334,7 +334,7 @@ netcfConnectListAllInterfaces(virConnectPtr conn,
> int errcode = ncf_error(driver->netcf, &errmsg, &details);
> if (errcode != NETCF_NOERROR) {
> virReportError(netcf_to_vir_err(errcode),
> - _("couldn't find interface named '%s': %s%s%s"),
> + _("couldn't find interface with '%s': %s%s%s"),
> names[i], errmsg,
> details ? " - " : "", details ? details : "");
> goto cleanup;
> @@ -342,7 +342,7 @@ netcfConnectListAllInterfaces(virConnectPtr conn,
> /* Ignore the NETCF_NOERROR, as the interface is very likely
> * deleted by other management apps (e.g. virt-manager).
> */
> - VIR_WARN("couldn't find interface named '%s', might be "
> + VIR_WARN("couldn't find interface with '%s', might be "
> "deleted by other process", names[i]);
> continue;
> }
> @@ -421,12 +421,12 @@ static virInterfacePtr netcfInterfaceLookupByName(virConnectPtr conn,
> int errcode = ncf_error(driver->netcf, &errmsg, &details);
> if (errcode != NETCF_NOERROR) {
> virReportError(netcf_to_vir_err(errcode),
> - _("couldn't find interface named '%s': %s%s%s"),
> + _("couldn't find interface with '%s': %s%s%s"),
> name, errmsg,
> details ? " - " : "", details ? details : "");
> } else {
> virReportError(VIR_ERR_NO_INTERFACE,
> - _("couldn't find interface named '%s'"), name);
> + _("couldn't find interface with '%s'"), name);
> }
> goto cleanup;
> }
> @@ -454,14 +454,14 @@ static virInterfacePtr netcfInterfaceLookupByMACString(virConnectPtr conn,
> const char *errmsg, *details;
> int errcode = ncf_error(driver->netcf, &errmsg, &details);
> virReportError(netcf_to_vir_err(errcode),
> - _("couldn't find interface with MAC address '%s': %s%s%s"),
> + _("couldn't find interface with '%s': %s%s%s"),
> macstr, errmsg, details ? " - " : "",
> details ? details : "");
> goto cleanup;
> }
> if (niface == 0) {
> virReportError(VIR_ERR_NO_INTERFACE,
> - _("couldn't find interface with MAC address '%s'"),
> + _("couldn't find interface with '%s'"),
> macstr);
> goto cleanup;
> }
> diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c
> index 1fd7d46..e61be52 100644
> --- a/src/interface/interface_backend_udev.c
> +++ b/src/interface/interface_backend_udev.c
> @@ -420,7 +420,7 @@ udevInterfaceLookupByName(virConnectPtr conn, const char *name)
> dev = udev_device_new_from_subsystem_sysname(udev, "net", name);
> if (!dev) {
> virReportError(VIR_ERR_NO_INTERFACE,
> - _("couldn't find interface named '%s'"),
> + _("couldn't find interface with '%s'"),
> name);
> goto cleanup;
> }
> @@ -467,7 +467,7 @@ udevInterfaceLookupByMACString(virConnectPtr conn, const char *macstr)
> /* Check that we got something back */
> if (!dev_entry) {
> virReportError(VIR_ERR_NO_INTERFACE,
> - _("couldn't find interface with MAC address '%s'"),
> + _("couldn't find interface with '%s'"),
> macstr);
> goto cleanup;
> }
> @@ -940,7 +940,7 @@ udevGetIfaceDef(struct udev *udev, const char *name)
> dev = udev_device_new_from_subsystem_sysname(udev, "net", name);
> if (!dev) {
> virReportError(VIR_ERR_NO_INTERFACE,
> - _("couldn't find interface named '%s'"), name);
> + _("couldn't find interface with '%s'"), name);
> goto error;
> }
>
> @@ -1068,7 +1068,7 @@ udevInterfaceIsActive(virInterfacePtr ifinfo)
> ifinfo->name);
> if (!dev) {
> virReportError(VIR_ERR_NO_INTERFACE,
> - _("couldn't find interface named '%s'"),
> + _("couldn't find interface with '%s'"),
> ifinfo->name);
> status = -1;
> goto cleanup;
More information about the libvir-list
mailing list