[libvirt-users] [Libvirt Users]how to provide password authentication for qemu driver

Dhaval_Shah1 at dell.com Dhaval_Shah1 at dell.com
Tue May 5 09:44:28 UTC 2015

Dell Customer Communication
Hi denial,

Thanks for explaining the codeflow which takes care of user name and password. I have gone through the function of virConnectAuthCallbackDefault(). Here this function asks user to provide password. Where as in my application I don't want and prompt. I want to provide this user name and password first time after that I don't want any prompt for password.

I wanted to understand that when I am using a function virConnectOpenAuth and providing my own callback to retrieve the username and password then why it doesn't work for qemu hypervisor.
Do I need to change any settings in libvirtd.conf file to make this happen?

Thanks & Regards,
Dhaval Shah

-----Original Message-----
From: Daniel P. Berrange [mailto:berrange at redhat.com]
Sent: Monday, April 27, 2015 6:19 PM
To: Shah1, Dhaval
Cc: libvirt-users at redhat.com
Subject: Re: [libvirt-users] [Libvirt Users]how to provide password authentication for qemu driver

On Mon, Apr 27, 2015 at 05:13:36AM -0700, Dhaval_Shah1 at dell.com wrote:
> Dell Customer Communication
> Hi All,
> I am using
> Compiled against library: libvirt 1.2.9 Using library: libvirt 1.2.9
> Using API: QEMU 1.2.9 Running hypervisor: QEMU 2.1.2
> I want user to provide username and password authentication to
> virConnectPtr virConnectOpenAuth(const char *name,
> virConnectAuthPtr auth,
> unsigned int flags) to login remotely for the qemu hypervisor.
> But it is not taking user provided username and driver. Because
> internally it is calling below qemu driver function,
> static virDrvOpenStatus qemuConnectOpen(virConnectPtr conn,
> virConnectAuthPtr auth ATTRIBUTE_UNUSED,
> unsigned int flags)
> so it is not taking any user provided auth parameters and it is
> internally calling separate function for prompting password. I don't
> want to provide password here.
> In case of windows HyperV it is working fine as it takes auth
> parameters but for Qemu Hypervisor I am facing this issue since here
> the auth parameters as marked as ATTRIBUTE_UNUSED.

Actually your intepretation of the callpath is not quite right. The
virConnectOpenAuth() method in libvirt.so will end up calling the remoteConnectOpen() method in src/remote/remote_driver.c.
This opens an RPC connection to libvirtd, performs authentication, and then calls qemuConnectOpen(). So from that sequence it is the
remoteConnectOpen() method that deals with passwords/usernames, not qemuConnectOpen().

If you want to get an idea how to provide username/password via the callback, take a look at the virConnectAuthCallbackDefault() method in src/libvirt.c which is the default impl that just prompts on the terminal console.

|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20150505/bd4309a1/attachment.htm>

More information about the libvirt-users mailing list