[libvirt-users] question about using openAuth with Python

Martin Kletzander mkletzan at redhat.com
Mon Aug 27 13:48:09 UTC 2012


On 08/26/2012 03:39 PM, lulin Fan wrote:
> Hi guys
> 
> Is anybody can help me how to use openAuth to connect a remote URI
> without input the boring  password? we assume the password of root for
> remote machine is "123456".
> 
> Even I running the example in libvirt library esxlist.py(change uri to a
> qemu type and assign the username and password).
> 
> Bellow is my simple test code, unfortunately it still need me to input
> the password.
> 
> import libvirt
> 
> def authcb(ncred, cbdata):
> for cred in  ncred:
> if cred[0] == libvirt.VIR_CRED_AUTHNAME:
> cred[4] = "root"
> elif cred == libvirt.VIR_CRED_PASSPHRASE:
> cred[4] = "123456"
> return 0
> class connection:
> def __init__(self, uri):
> self.uri = uri
> def open(self):
> auth = [[libvirt.VIR_CRED_AUTHNAME, libvirt.VIR_CRED_PASSPHRASE],
> authcb, None]
> vm_conn =  libvirt.openAuth(self.uri, auth, 0);
> print self.uri
> if vm_conn == None:
> print 'Failed to open connection to %s' % self.uri
> 
> for name in vm_conn.listDefinedDomains():
> print name
> vm = vm_conn.lookupByName(name)
> 
> if __name__ == '__main__':
> conn = connection('qemu+ssh://root@192.168.1.203/system
> <http://root@192.168.1.203/system>')
> conn.open()
> Thanks
> 

Hi,

the formatting has gone wrong, but that doesn't matter. The auth you are
supplying is for libvirt authentication (might not be required as you
use ssh to root) and the password you are being asked for is needed for
the ssh connection. You can either create ssh keys for password-less
connection or use other type of transport (uri
qemu://192.168.1.203/system which defaults to qemu+tls or
qemu+tcp://192.168.1.203/system). For setting up the other transports
you can have a look at docs or web pages.

Martin




More information about the libvirt-users mailing list