[X2Go-Commits] x2gobroker.git - build-main (branch) updated: 0.0.0.2-2-g8cec21a
X2Go dev team
git-admin at x2go.org
Sun May 19 13:03:16 CEST 2013
The branch, build-main has been updated
via 8cec21a5f2e9dde24155f47aa6b7450e56b770c4 (commit)
from e6d532ca4ffa675beda709a2b861c7ad2b542330 (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 -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
debian/changelog | 4 +-
debian/control | 1 -
sbin/x2gobroker-pubkeyauthorizer | 83 +++++++++++++++++++++++++++++---------
3 files changed, 67 insertions(+), 21 deletions(-)
The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 3d7d3d0..bbc3d05 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
x2gobroker (0.0.0.3-0~x2go1) UNRELEASED; urgency=low
- * Continue development...
+ * New upstream version (0.0.0.3):
+ - Script x2gobroker-pubkeyauthorizer is now independent
+ from Python module x2gobroker.
-- Mike Gabriel <mike.gabriel at das-netzwerkteam.de> Thu, 21 Feb 2013 20:00:43 +0100
diff --git a/debian/control b/debian/control
index 6d78bbd..07868bd 100644
--- a/debian/control
+++ b/debian/control
@@ -183,7 +183,6 @@ Depends:
perl,
python,
adduser,
- python-x2gobroker (>= ${source:Version}), python-x2gobroker (<< ${source:Version}.1~),
x2goserver,
Description: X2Go http(s) based session broker (common files)
X2Go is a server based computing environment with
diff --git a/sbin/x2gobroker-pubkeyauthorizer b/sbin/x2gobroker-pubkeyauthorizer
index 66ad1ce..a28a068 100755
--- a/sbin/x2gobroker-pubkeyauthorizer
+++ b/sbin/x2gobroker-pubkeyauthorizer
@@ -29,38 +29,81 @@ import logging
import binascii
import paramiko
import urllib
+import getpass
+import logging
+import logging.config
from pwd import getpwnam
from grp import getgrnam
-try:
- import x2gobroker.defaults
-except ImportError:
- sys.path.insert(0, os.path.join(os.getcwd(), '..'))
- import x2gobroker.defaults
+__VERSION__ = '0.0.0.3'
+__AUTHOR__ = 'Mike Gabriel (X2Go Project) <mike.gabriel at das-netzwerkteam.de>'
PROG_NAME = os.path.basename(sys.argv[0])
PROG_OPTIONS = sys.argv[1:]
setproctitle.setproctitle("%s %s" % (PROG_NAME, " ".join(PROG_OPTIONS)))
-from x2gobroker import __VERSION__
-from x2gobroker import __AUTHOR__
-from x2gobroker.loggers import logger_broker, logger_error
+### The following is a code duplication of x2gobroker.loggers and x2gobroker.defaults.
+### Normally, we would avoid that. However, this is to make this script independent from
+### the python-x2gobroker package (and its manifold python module dependencies).
+
+if os.environ.has_key('X2GOBROKER_DAEMON_USER'):
+ X2GOBROKER_DAEMON_USER=os.environ['X2GOBROKER_DAEMON_USER']
+else:
+ X2GOBROKER_DAEMON_USER="x2gobroker"
+if os.environ.has_key('X2GOBROKER_DAEMON_GROUP'):
+ X2GOBROKER_DAEMON_GROUP=os.environ['X2GOBROKER_DAEMON_GROUP']
+else:
+ X2GOBROKER_DAEMON_GROUP="x2gobroker"
+if os.environ.has_key('X2GOBROKER_LOGCONFIG'):
+ X2GOBROKER_LOGCONFIG=os.environ['X2GOBROKER_LOGCONFIG']
+else:
+ X2GOBROKER_LOGCONFIG="/etc/x2go/broker/x2gobroker-loggers.conf"
+if os.environ.has_key('X2GOBROKER_DEBUG'):
+ X2GOBROKER_DEBUG = ( os.environ['X2GOBROKER_DEBUG'].lower() in ('1', 'on', 'true', 'yes', ) )
+else:
+ X2GOBROKER_DEBUG = False
+# the home directory of the user that the daemon/cgi runs as
+X2GOBROKER_HOME = os.path.normpath(os.path.expanduser('~{broker_uid}'.format(broker_uid=X2GOBROKER_DAEMON_USER)))
if os.geteuid() == 0:
+
+ # we run in standalone daemon mode, so let's use the system configuration for logging
+ logging.config.fileConfig(X2GOBROKER_LOGCONFIG)
+
+ # create loggers
+ logger_broker = logging.getLogger('broker')
+ logger_error = logging.getLogger('error')
+
# propagate msgs for the broker logger to the root logger (i.e. to stderr)
logger_broker.propagate = 1
logger_error.propagate = 1
+else:
+ logger_root = logging.getLogger()
+ stderr_handler = logging.StreamHandler(sys.stderr)
+ stderr_handler.setFormatter(logging.Formatter(fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt=''))
+
+ # all loggers stream to stderr...
+ logger_root.addHandler(stderr_handler)
+
+ logger_broker = logging.getLogger('broker')
+ logger_broker.addHandler(stderr_handler)
+ logger_broker.propagate = 0
+
+ logger_error = logging.getLogger('error')
+ logger_error.addHandler(stderr_handler)
+ logger_error.propagate = 0
+
# raise log level to DEBUG if requested...
-if x2gobroker.defaults.X2GOBROKER_DEBUG and not x2gobroker.defaults.X2GOBROKER_TESTSUITE:
+if X2GOBROKER_DEBUG:
logger_broker.setLevel(logging.DEBUG)
logger_broker.info('X2Go Session Broker ({version}), written by {author}'.format(version=__VERSION__, author=__AUTHOR__))
logger_broker.info('Setting up the »PubKey Authorizer«\'s environment...')
-logger_broker.info(' X2GOBROKER_DEBUG: {value}'.format(value=x2gobroker.defaults.X2GOBROKER_DEBUG))
-logger_broker.info(' X2GOBROKER_DAEMON_USER: {value}'.format(value=x2gobroker.defaults.X2GOBROKER_DAEMON_USER))
-logger_broker.info(' X2GOBROKER_DAEMON_GROUP: {value}'.format(value=x2gobroker.defaults.X2GOBROKER_DAEMON_GROUP))
+logger_broker.info(' X2GOBROKER_DEBUG: {value}'.format(value=X2GOBROKER_DEBUG))
+logger_broker.info(' X2GOBROKER_DAEMON_USER: {value}'.format(value=X2GOBROKER_DAEMON_USER))
+logger_broker.info(' X2GOBROKER_DAEMON_GROUP: {value}'.format(value=X2GOBROKER_DAEMON_GROUP))
# check effective UID the broker runs as and complain appropriately...
if os.geteuid() != 0:
@@ -87,21 +130,23 @@ if __name__ == '__main__':
cmdline_args = p.parse_args()
if cmdline_args.broker_url is None:
- logger_error.error('Cannot proceed without having an URL specified. Use --broker-url as cmdline parameter. Exiting...')
+ logger_error.error('Cannot proceed without having an URL specified. Use --broker-url as cmdline parameter.')
+ logger_error.error('Exiting...')
sys.exit(-2)
- broker_uid = x2gobroker.defaults.X2GOBROKER_DAEMON_USER
+ broker_uid = X2GOBROKER_DAEMON_USER
broker_uidnumber = getpwnam(broker_uid).pw_uid
- broker_gid = x2gobroker.defaults.X2GOBROKER_DAEMON_GROUP
+ broker_gid = X2GOBROKER_DAEMON_GROUP
broker_gidnumber = getgrnam(broker_gid).gr_gid
- broker_home = x2gobroker.defaults.X2GOBROKER_HOME
+ broker_home = X2GOBROKER_HOME
if not os.path.exists(broker_home):
- logger_error.error('The home directory {home} of user {user} does not exists. Cannot continue. Exiting...'.format(home=broker_home, user=broker_uid))
+ logger_error.error('The home directory {home} of user {user} does not exists.')
+ logger_error.error('Cannot continue. Exiting...'.format(home=broker_home, user=broker_uid))
sys.exit(-2)
- logger_broker.info('Authorizing access to this X2Go server for X2Go Session Broker at URL {url}'.format(url=cmdline_args.broker_url))
-
+ logger_broker.info('Authorizing access to this X2Go server for X2Go Session Broker')
+ logger_broker.info(' at URL {url}'.format(url=cmdline_args.broker_url))
if not os.path.exists('{home}/.ssh'.format(home=broker_home)):
os.mkdir('{home}/.ssh'.format(home=broker_home))
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).
More information about the x2go-commits
mailing list