Stefan Berger
2006-Dec-21 20:38 UTC
[Xen-devel] [resend] [PATCH] [XS-TEST] Support for Xen-API authenticated session
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@us.ibm.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ewan Mellor
2006-Dec-23 12:45 UTC
[Xen-devel] Re: [resend] [PATCH] [XS-TEST] Support for Xen-API authenticated session
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@us.ibm.com>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, 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@lists.xensource.com http://lists.xensource.com/xen-devel
Stefan Berger
2006-Dec-26 13:41 UTC
[Xen-devel] Re: [resend] [PATCH] [XS-TEST] Support for Xen-API authenticated session
Ewan Mellor <ewan@xensource.com> 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 isstored> > 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@us.ibm.com> > > 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@lists.xensource.com http://lists.xensource.com/xen-devel
Ewan Mellor
2006-Dec-27 16:09 UTC
[Xen-devel] Re: [resend] [PATCH] [XS-TEST] Support for Xen-API authenticated session
On Tue, Dec 26, 2006 at 08:41:30AM -0500, Stefan Berger wrote:> Ewan Mellor <ewan@xensource.com> 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@us.ibm.com> > > > > 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.No, it doesn''t go in by default at the moment, because it arrived quite late in the 3.0.4 run-up, so I decided not to activate it by default. Sorry that you''d missed it. I''m going to change the Makefile in unstable now so that it gets put in there 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) ?You could if you want to, but you''ll have a lot less code to write if you just import the relevant bits from xm: ~ # python Python 2.4.4 (#2, Oct 19 2006, 23:03:48) [GCC 4.1.2 20061007 (prerelease) (Debian 4.1.1-16)] on linux2 Type "help", "copyright", "credits" or "license" for more information.>>> import sys >>> sys.path.append(''/usr/lib/python'') >>> import xen.xm.main >>> xen.xm.main.serverTypeu''Xen-API''>>> xen.xm.main.serverURIu''http://localhost:9363/''>>> xen.xm.main.parseAuthentication()(u''ewan'', u''letmein'') Connecting to the server should be a lot easier now too:>>> from xen.xm import XenAPI >>> session = XenAPI.Session(xen.xm.main.serverURI) >>> session.login_with_password(*xen.xm.main.parseAuthentication()) >>> session.xenapi.VM.get_all()[''00000000-0000-0000-0000-000000000000'', ''2f8dada9-387c-d981-0e51-6f5e2732d752'', ''53a01d42-c8c8-e561-6939-e2bc750454f7''] It would be best, I think, if xm-test shares those bits of code with xm. It''s possible that xm-test doesn''t need that code at all, in the long run, because it ought to be able to drive xm from the outside (that''s the whole point of xm-test after all -- its an end-to-end test). What you seem to be writing is tests for the API, but that don''t test xm itself. That''s great, if xm itself will never have the bits of functionality under test. The plan is for xm to move over to using the new API throughout, so for the majority of the functionality, we ought to be doing the full end-to-end test, and prodding xm from the outside, rather than using ServerProxy. Coverage from both aspects -- the raw API and the xm-sanitised version -- would be best, of course, but we''re already struggling to get enough people writing tests, so it''d be best to concentrate on the end-to-end tests for now. Ewan.> > 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@lists.xensource.com http://lists.xensource.com/xen-devel
Stefan Berger
2006-Dec-27 16:56 UTC
Re: [Xen-devel] Re: [resend] [PATCH] [XS-TEST] Support for Xen-API authenticated session
xen-devel-bounces@lists.xensource.com wrote on 12/27/2006 11:09:46 AM:> On Tue, Dec 26, 2006 at 08:41:30AM -0500, Stefan Berger wrote: > > > Ewan Mellor <ewan@xensource.com> 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 beingable> > > > to setup authentication credentials needed for automaticallyrunning> > > > 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 foravailability> > > > of the python PAM module. The test is skipped if the module is not > > > > available on the system. > > > > > > > > Signed-off-by: Stefan Berger <stefanb@us.ibm.com> > > > > > > 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. > > No, it doesn''t go in by default at the moment, because it arrived quitelate> in the 3.0.4 run-up, so I decided not to activate it by default. Sorrythat> you''d missed it. I''m going to change the Makefile in unstable now sothat it> gets put in there by default.On my system I had quite a few problems when I copied the xm-config.xml file to /etc/xen. Probably you should change its contents so it does not use Xen-API by default, yet, since for example Fedora core installs don''t come with a pyhton PAM module - at least I could not find it and many others might not have installed the package, either. The patch I sent before was due to me trying to create a VM using the Xen_API and the ramdisk not becoming available. So I think there is a need for testing the raw Xen-API as well. I wrote a basic test case for this and put it into a new directory tests/xapi into the xm-test suite.> > > 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 firstand> > if it does not exist read the file created by the tool that I add tothe> > xm test suite (xapi-setup.py) ? > > You could if you want to, but you''ll have a lot less code to write ifyou just> import the relevant bits from xm: > > ~ # python > Python 2.4.4 (#2, Oct 19 2006, 23:03:48) > [GCC 4.1.2 20061007 (prerelease) (Debian 4.1.1-16)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> import sys > >>> sys.path.append(''/usr/lib/python'') > >>> import xen.xm.main > >>> xen.xm.main.serverType > u''Xen-API'' > >>> xen.xm.main.serverURI > u''http://localhost:9363/'' > >>> xen.xm.main.parseAuthentication() > (u''ewan'', u''letmein'') > > > Connecting to the server should be a lot easier now too: > > >>> from xen.xm import XenAPI > >>> session = XenAPI.Session(xen.xm.main.serverURI) > >>> session.login_with_password(*xen.xm.main.parseAuthentication()) > >>> session.xenapi.VM.get_all() > [''00000000-0000-0000-0000-000000000000'', > ''2f8dada9-387c-d981-0e51-6f5e2732d752'', > ''53a01d42-c8c8-e561-6939-e2bc750454f7'']Thanks. This is helpful for raw xen-api testing.> > > It would be best, I think, if xm-test shares those bits of code with xm. > > It''s possible that xm-test doesn''t need that code at all, in the longrun,> because it ought to be able to drive xm from the outside (that''s thewhole> point of xm-test after all -- its an end-to-end test). What you seem tobe I understand, but functionality of xm will likely not cover the whole xen-api and so I think that separate tests for the raw xen-api can be useful.> writing is tests for the API, but that don''t test xm itself.That''sgreat, if> xm itself will never have the bits of functionality under test. Theplan is> for xm to move over to using the new API throughout, so for the majorityof> the functionality, we ought to be doing the full end-to-end test, andprodding> xm from the outside, rather than using ServerProxy. > > Coverage from both aspects -- the raw API and the xm-sanitised version--> would be best, of course, but we''re already struggling to get enoughpeople> writing tests, so it''d be best to concentrate on the end-to-end testsfor now. Agreed. Stefan> > Ewan. > > > > > > Stefan > > > there''s code for parsing the config file, and also for using theXenAPI> > > session manager and server proxy -- you ought to be able to importthat> > > code now rather than using ServerProxy, and then there will be lessfor> > > 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. Runxapi-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@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ewan Mellor
2006-Dec-27 17:20 UTC
Re: [Xen-devel] Re: [resend] [PATCH] [XS-TEST] Support for Xen-API authenticated session
On Wed, Dec 27, 2006 at 11:56:55AM -0500, Stefan Berger wrote:> On my system I had quite a few problems when I copied the xm-config.xml > file to /etc/xen. Probably you should change its contents so it does not > use Xen-API by default, yet, since for example Fedora core installs don''t > come with a pyhton PAM module - at least I could not find it and many > others might not have installed the package, either.The version I''ve just committed keeps the config settings at their defaults, yes. For full authenticated access, you need Python-PAM, yes. As an alternative, you can now set your Xen-API server up to use no authentication, with something like this in xend-config.sxp: (xen-api-server ((127.0.0.1:9363 none))) This will open TCP port 9363, listening only on the local interface, using no authentication.> The patch I sent before was due to me trying to create a VM using the > Xen_API and the ramdisk not becoming available. So I think there is a need > for testing the > raw Xen-API as well. I wrote a basic test case for this and put it into a > new directory tests/xapi into the xm-test suite.Certainly, I''d like to see tests that hit the raw API too. It''s still a moving target, of course, but things are starting to settle down a bit, so comprehensive test suites, either through the Python bindings, or even the C bindings or the CIM providers would all be good. Cheers, Ewan. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel