[libvirt] [PATCH] Explicitly error on uri=qemu://system
Peter Krempa
pkrempa at redhat.com
Tue Apr 19 08:30:08 UTC 2016
On Mon, Apr 18, 2016 at 19:04:04 -0400, Cole Robinson wrote:
> It's a fairly common error that a user tries to connect to a URI
> like qemu://system or qemu://session (missing a slash). This errors
> like:
>
> $ virsh --connect qemu://session
> error: failed to connect to the hypervisor
> error: Unable to resolve address 'session' service '16514': No address associated with hostname
>
> If you already know that the standard qemu URI has 3 slashes, that
> error will make it obvious enough. But new user's may not get it.
> There's even a RHEL support page explicitly mentioning it!:
>
> https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/sect-Troubleshooting-Common_libvirt_errors_and_troubleshooting.html
>
> Catch this error early in libvirt.c virConnectOpen for qemu (and vbox
> which has similar rules
>
> https://bugzilla.redhat.com/show_bug.cgi?id=1038304
> ---
> src/libvirt.c | 32 ++++++++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/src/libvirt.c b/src/libvirt.c
> index a21d00e..7607ae3 100644
> --- a/src/libvirt.c
> +++ b/src/libvirt.c
> @@ -928,6 +928,33 @@ virConnectGetDefaultURI(virConfPtr conf,
> }
>
>
> +/*
> + * Check to see if an invalid URI like qemu://system (missing /) was passed,
> + * offer the suggested fix.
> + */
> +static int
> +check_uri_missing_slash(const char *uristr, virURIPtr uri)
Please use a name with "vir" prefix and camel case. This is totaly
against our naming convention.
> +{
> + /* These drivers _only_ accepts URIs with a 'path' element */
Only these drivers accept ... ? I don't quite follow the message of this
comment.
> + if (STRNEQ(uri->sceme, "qemu") &&
> + STRNEQ(uri->scheme, "vbox"))
> + return 0;
> +
> + if (uri->path != NULL)
> + return 0;
> +
> + if (STREQ(uri->server, "session") ||
> + STREQ(uri->server, "system")) {
> + virReportError(VIR_ERR_INTERNAL_ERROR,
> + _("invalid URI %s (maybe you want %s:///%s)"),
> + uristr, uri->scheme, uri->server);
> + return -1;
> + }
> +
> + return 0;
> +}
ACK with the rename and fix of the comment.
Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160419/d3b26b46/attachment-0001.sig>
More information about the libvir-list
mailing list