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:berra...@redhat.com] Sent: Monday, April 27, 2015 6:19 PM To: Shah1, Dhaval Cc: libvirt-users@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_sh...@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. Regards, Daniel -- |: 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 :|
_______________________________________________ libvirt-users mailing list libvirt-users@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-users