[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [resend] [PATCH] [XS-TEST] Support for Xen-API authenticated session
Ewan Mellor <ewan@xxxxxxxxxxxxx> wrote on 12/23/2006 07:45:04 AM: > On Thu, Dec 21, 2006 at 03:38:21PM -0500, Stefan Berger wrote: > > > I am adding a tool 'xapi-setup.py' to the xm-test suite for being able > > to setup authentication credentials needed for automatically running > > Xen-API - related tests. The username and password information is stored > > in cleartext in lib/XmTestLib/xapi_auth.py. > > In the one test using the Xen-API I add another check for availability > > of the python PAM module. The test is skipped if the module is not > > available on the system. > > > > Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxx> > > Ah, sorry, I'd forgotten about this one. > > There is now a configuration file for xm (see > tools/examples/xm-config.xml) so would it make sense to pull the > username and password from there? If you look at xen/xm/main.py, I had not seen this file, but it seems not to be copied into /etc/xen/ by default. Would it be ok for now if I adapted the XML format and have xapi.py try to get username/password from the xm-config.xml file first and if it does not exist read the file created by the tool that I add to the xm test suite (xapi-setup.py) ? Stefan > there's code for parsing the config file, and also for using the XenAPI > session manager and server proxy -- you ought to be able to import that > code now rather than using ServerProxy, and then there will be less for > xapi.py to do, because it will be sharing with xm. > > Cheers, > > Ewan. > > > Index: root/xen-unstable.hg/tools/xm-test/lib/XmTestLib/xapi.py > > =================================================================== > > --- root.orig/xen-unstable.hg/tools/xm-test/lib/XmTestLib/xapi.py > > +++ root/xen-unstable.hg/tools/xm-test/lib/XmTestLib/xapi.py > > @@ -24,9 +24,6 @@ from xen.util.xmlrpclib2 import ServerPr > > from types import DictType > > > > > > -XAPI_DEFAULT_LOGIN = " " > > -XAPI_DEFAULT_PASSWORD = " " > > - > > class XenAPIError(Exception): > > pass > > > > @@ -58,8 +55,12 @@ def _connect(*args): > > global _server, _session, _initialised > > if not _initialised: > > _server = ServerProxy('httpu:///var/run/xend/xen-api.sock') > > - login = XAPI_DEFAULT_LOGIN > > - password = XAPI_DEFAULT_PASSWORD > > + try: > > + from XmTestLib import xapi_auth > > + except: > > + FAIL("Missing Xen-API credentials. Run xapi-setup.py!") > > + login = xapi_auth.XAPI_DEFAULT_LOGIN > > + password = xapi_auth.XAPI_DEFAULT_PASSWORD > > creds = (login, password) > > _session = execute(_server.session.login_with_password, *creds) > > _initialised = True > > Index: root/xen-unstable.hg/tools/xm-test/tests/vtpm/09_vtpm-xapi.py > > =================================================================== > > --- root.orig/xen-unstable.hg/tools/xm-test/tests/vtpm/09_vtpm-xapi.py > > +++ root/xen-unstable.hg/tools/xm-test/tests/vtpm/09_vtpm-xapi.py > > @@ -68,6 +68,10 @@ def do_test(): > > domain.destroy() > > > > > > +try: > > + import PAM > > +except ImportError: > > + SKIP("Skipping test. Python-PAM module not found.") > > > > try: > > do_test() > > Index: root/xen-unstable.hg/tools/xm-test/xapi-setup.py > > =================================================================== > > --- /dev/null > > +++ root/xen-unstable.hg/tools/xm-test/xapi-setup.py > > @@ -0,0 +1,41 @@ > > +#!/usr/bin/python > > +import sys as sys > > +import getpass as getpass > > + > > +XAPI_AUTH_FILE = "xapi_auth.py" > > +XAPI_AUTH_PATH = "./lib/XmTestLib/" > > +XAPI_FILE = XAPI_AUTH_PATH + XAPI_AUTH_FILE > > + > > +def usage(): > > + print "Usage: xapi-setup.py [<username>] [<password>]\n\n" \ > > + "Tool to setup the xm-test suite for being able to use > the Xen-API\n" \ > > + "with authenticated sessions. Username and password are > stored in\n" \ > > + "cleartext in %s.\n" % XAPI_FILE > > + > > +def main(): > > + if (len(sys.argv) >= 2) and sys.argv[1] == "-?": > > + usage() > > + sys.exit(0) > > + print "Enter username and password for usage with Xen-API:\n" > > + if (len(sys.argv) >=2 ): > > + username = sys.argv[1] > > + print "Login: %s" % username > > + else: > > + username = rawinput("Login: ") > > + if (len(sys.argv) >= 3 ): > > + password = sys.argv[2] > > + print "Password: <given>" > > + else: > > + password = getpass.getpass() > > + f = open(XAPI_FILE, "w") > > + if f: > > + f.write("# File was created by xapi-setup.py.\n" > > + "XAPI_DEFAULT_LOGIN = \"%s\"\n" > > + "XAPI_DEFAULT_PASSWORD = \"%s\"\n" > > + % (username, password)) > > + f.close() > > + else: > > + print("Could not open file %s for writing." % XAPI_FILE) > > + > > +if __name__ == "__main__": > > + sys.exit(main()) > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |