The branch, master has been updated via 5390f605e0c3d1ce459626985922dc051bc638ed (commit) via fd8d9373b9d278eea303b69170f25fccc3e3ee1b (commit) via 1a77bd8337305a0996a8e1fc17ec81b3a8197670 (commit) via 93478923dd6bf64fcea8fa4b3cebfaf9e8b288ee (commit) from bf53dfab0b17eb1ab474fddccf7220dd14c1ba81 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5390f605e0c3d1ce459626985922dc051bc638ed Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Jan 29 06:44:08 2013 +0100 update README, TODO commit fd8d9373b9d278eea303b69170f25fccc3e3ee1b Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Jan 29 06:43:35 2013 +0100 no load balancing support, yet commit 1a77bd8337305a0996a8e1fc17ec81b3a8197670 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Jan 29 06:43:04 2013 +0100 empty test unit for the web frontend + inifile broker backend commit 93478923dd6bf64fcea8fa4b3cebfaf9e8b288ee Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Jan 29 06:24:04 2013 +0100 add X2GOBROKER_DEBUG to x2gobroker-daemon.default ----------------------------------------------------------------------- Summary of changes: NEWS | 4 +- README | 54 +++++++++++++++++++- TODO | 25 ++++++++- debian/x2gobroker-daemon.default | 6 +++ etc/broker/x2gobroker-sessionprofiles.conf | 4 +- .../test_web_plain_inifile.py} | 28 ++++++---- 6 files changed, 106 insertions(+), 15 deletions(-) copy x2gobroker/{authmechs/pam_authmech.py => tests/test_web_plain_inifile.py} (59%) The diff of changes is: diff --git a/NEWS b/NEWS index 37d39b4..ec72a39 100644 --- a/NEWS +++ b/NEWS @@ -4,9 +4,9 @@ NEWS on X2Go Session Broker X2Go Session Broker is a Web project that provides session brokerage for X2Go via HTTP(S). -The framework was originally designed in Perl and his +The framework was originally designed in Perl and has been rewritten in Python using the web.py framework in 2012/2013. light+love, -Mike Gabriel, 20121129 \ No newline at end of file +Mike Gabriel, 20121129 diff --git a/README b/README index 763a825..03d87e4 100644 --- a/README +++ b/README @@ -4,5 +4,57 @@ README for X2Go Session Broker X2Go Session Broker is a Web project that provides session brokerage for X2Go via HTTP(S). +Dependencies: + + * This version of X2Go Session Broker requires X2Go Server + 4.1.0.0 and above. + * This version X2Go Session Broker works with X2Go Client + (>= 4.0.0.0) and Python X2Go (>= 0.5.0.0, not yet available) + as client. + +Available features: + + * easily extendible backend / submodule concept + * ACL based session profile provisioning + * X2Go load balancing + +Available backends: + + * ZEROCONF: the ,,zeroconf'' broker backend (which is the default) + is for testing X2Go client applications without much hassle + against the X2Go Session Broker + * INIFILE: the ,,inifile'' broker backend scales well with + small and medium X2Go deployments. It is configurable through + a single file (/etc/x2go/broker/x2gobroker-sessionprofiles.conf). + It provides flexible provisioning of session profiles based + on user, group and host ACLs. + +Configuration files: + + /etc/default/x2gobroker-daemon + /etc/x2go/x2gobroker.conf + /etc/x2go/broker/** + +Environment variables (and their defaults): + + # run XGo Session Broker in debug mode, this will make the broker + # available through http GET method calls (otherwise: POST method + # only) and you will be able to test the broker through your web + # browser + X2GOBROKER_DEBUG=false + + # default X2Go Session Broker backend (available: zeroconf, inifile) + X2GOBROKER_DEFAULT_BACKEND=zeroconf + + # path to the X2Go Session Broker's configuration file + X2GOBROKER_CONFIG=/etc/x2go/x2gobroker.conf + + # path to the X2Go Session Broker's session profiles file (when using the inifile backend) + X2GOBROKER_SESSIONPROFILES=/etc/x2go/broker/x2gobroker-sessionprofiles.conf + + # path to the X2Go Session Broker's agent command + X2GOBROKER_AGENT_CMD=/usr/lib/x2go/x2gobroker-agent + + light+love, -Mike Gabriel, 20121129 \ No newline at end of file +Mike Gabriel, 20130129 diff --git a/TODO b/TODO index 4787426..dc1c5f9 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,28 @@ TODO list for X2Go Session Broker ================================= -Plenty of work in the loop... +Several more thinkable broker backends: + + o USERGROUP backend (provide one session profiles file per user/group) + o LDAP backend (provide session profiles through LDAP) + o DNS backend (store X2Go server information in DNS and detect it from there) + o WEBCONFIG backend (click your session together TTW) + o ... + +For the INIFILE backend: + + o implement load balancing + o implement session resuing + o make use of X2Go::Server Perl API in x2gobroker-agent + o add Apache2 CGI support + +For the communication with Python X2Go: + + o add a JSON based server/client protocol + +For the communication with LightDM (being a replacement of UCS): + + o add an XML based server/client protocol light+love, -Mike Gabriel, 20121129 \ No newline at end of file +Mike Gabriel, 20130129 \ No newline at end of file diff --git a/debian/x2gobroker-daemon.default b/debian/x2gobroker-daemon.default index 0165e17..a0090df 100644 --- a/debian/x2gobroker-daemon.default +++ b/debian/x2gobroker-daemon.default @@ -3,6 +3,12 @@ # Uncomment to enable the X2Go Session Broker standalone daemon START_DAEMON=true +# run XGo Session Broker in debug mode, this will make the broker +# available through http GET method calls (otherwise: POST method +# only) and you will be able to test the broker through your web +# browser +#X2GOBROKER_DEBUG=false + # bind standalone daemon to this address:port #DAEMON_BIND_ADDRESS=127.0.0.1:8080 diff --git a/etc/broker/x2gobroker-sessionprofiles.conf b/etc/broker/x2gobroker-sessionprofiles.conf index 05c582a..8b332a3 100644 --- a/etc/broker/x2gobroker-sessionprofiles.conf +++ b/etc/broker/x2gobroker-sessionprofiles.conf @@ -143,7 +143,9 @@ acl-any-order=deny-allow [pool-C-XFCE] user= -host=s-E1.pool-c.domain.local,s-E2.pool-c.domain.local,s-E3.pool-c.domain.local,s-E4.pool-c.domain.local,s-E5.pool-c.domain.local,s-E6.pool-c.domain.local +# no load balancing support, yet +#host=s-E1.pool-c.domain.local,s-E2.pool-c.domain.local,s-E3.pool-c.domain.local,s-E4.pool-c.domain.local,s-E5.pool-c.domain.local,s-E6.pool-c.domain.local +host=s-E1.pool-c.domain.local name=XFCE - pool-C command=XFCE acl-users-allow=testuser-A,testuser-B diff --git a/x2gobroker/authmechs/pam_authmech.py b/x2gobroker/tests/test_web_plain_inifile.py similarity index 59% copy from x2gobroker/authmechs/pam_authmech.py copy to x2gobroker/tests/test_web_plain_inifile.py index fca5ec0..e957ed7 100644 --- a/x2gobroker/authmechs/pam_authmech.py +++ b/x2gobroker/tests/test_web_plain_inifile.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- # Copyright (C) 2012 by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -# Copyright (C) 2012 by Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> # # X2Go Session Broker is free software; you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by @@ -18,15 +17,26 @@ # Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. -import pam +import unittest +import tempfile +from paste.fixture import TestApp +from nose.tools import * -class X2GoBrokerAuthMech(object): +# Python X2GoBroker modules +import x2gobroker.defaults - def authenticate(self, username, password): +from x2gobroker.web.plain import * - # do a simple PAM authentication against the PAM service ,,x2gobroker'' - if username and password: - if pam.authenticate(username, password, service="x2gobroker"): - return True +urls = ( '/plain/(.*)', 'X2GoBrokerWebPlain',) +app = web.application(urls, globals()) - return False +x2gobroker.defaults.X2GOBROKER_CONFIG_DEFAULTS.update({'base': {'enable': True, },}) + +class TestX2GoBrokerWebPlainInifile(unittest.TestCase): + pass + +def test_suite(): + from unittest import TestSuite, makeSuite + suite = TestSuite() + suite.addTest(makeSuite(TestX2GoBrokerWebPlainInifile)) + return suite hooks/post-receive -- x2gobroker.git (HTTP(S) Session broker for X2Go) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2gobroker.git" (HTTP(S) Session broker for X2Go).