This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2gobroker. commit b972d9696f97aeab4b392938548a48202d4b8aa4 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed Mar 19 00:18:32 2014 +0100 more work/testing on x2gobroker-testagent --- lib/x2gobroker-agent.pl | 15 +++++++-------- sbin/x2gobroker-testagent | 34 +++++++++++++++++++++++----------- x2gobroker/utils.py | 1 + 3 files changed, 31 insertions(+), 19 deletions(-) diff --git a/lib/x2gobroker-agent.pl b/lib/x2gobroker-agent.pl index 7c04a42..ee359bf 100755 --- a/lib/x2gobroker-agent.pl +++ b/lib/x2gobroker-agent.pl @@ -117,23 +117,22 @@ if($mode eq 'ping') exit; } -my ($uid, $passwd, $uidNumber, $gidNumber, $quota, $comment, $gcos, $home, $shell, $expire) = getpwnam($username); - -if($uidNumber < 1000) -{ - die 'operation on system user'; -} - if($mode eq 'availabletasks') { - InitX2GoUser($uid, $uidNumber, $gidNumber, $home); print "OK\n"; my $available_task; foreach $available_task (@available_tasks) { print "$available_task\n"; } + exit; } +my ($uid, $passwd, $uidNumber, $gidNumber, $quota, $comment, $gcos, $home, $shell, $expire) = getpwnam($username); + +if($uidNumber < 1000) +{ + die "operation on system user $uidNumber"; +} if($mode eq 'listsessions') { diff --git a/sbin/x2gobroker-testagent b/sbin/x2gobroker-testagent index 29ca0ed..eef96a8 100755 --- a/sbin/x2gobroker-testagent +++ b/sbin/x2gobroker-testagent @@ -50,11 +50,11 @@ setproctitle.setproctitle("%s %s" % (PROG_NAME, " ".join(PROG_OPTIONS))) if __name__ == "__main__": agent_options = [ - {'args':['-H','--host'], 'default': 'LOCAL', 'metavar': 'HOSTNAME', 'help': 'Test X2Go Session Broker Agent on this host (default: LOCAL)', }, - {'args':['-p','--port'], 'default': 22, 'metavar': 'PORT', 'help': 'For remote agent calls (via SSH) use this port as SSH port (default: 22)', }, + {'args':['--list-tasks'], 'default': False, 'action': 'store_true', 'help': 'List available broker agent tasks', }, {'args':['-u','--username', '--user'], 'default': None, 'metavar': 'USERNAME', 'help': 'When testing the broker agent, test on behalf of this user (default: none)', }, {'args':['-t','--task'], 'default': 'PING_ICMP', 'metavar': 'AGENT_TASK', 'help': 'Perform this task on the (remote) broker agent', }, - {'args':['--list-tasks'], 'default': False, 'action': 'store_true', 'help': 'List available broker agent tasks', }, + {'args':['-H','--host'], 'default': 'LOCAL', 'metavar': 'HOSTNAME', 'help': 'Test X2Go Session Broker Agent on this (remote) host (default: LOCAL)', }, + {'args':['-p','--port'], 'default': 22, 'metavar': 'PORT', 'help': 'For remote agent calls (via SSH) use this port as SSH port (default: 22)', }, ] misc_options = [ {'args':['-C','--config-file'], 'default': None, 'metavar': 'CONFIG_FILE', 'help': 'Specify a special configuration file name, default is: {default}'.format(default=x2gobroker.defaults.X2GOBROKER_CONFIG), }, @@ -74,6 +74,13 @@ if __name__ == "__main__": cmdline_args = p.parse_args() + if os.getuid() != 0: + p.print_help() + print + print "*** The {progname} tool needs to be run with super-user privileges... ***".format(progname=PROG_NAME) + print + sys.exit(-1) + if cmdline_args.username is None and not cmdline_args.list_tasks: p.print_help() print @@ -104,19 +111,24 @@ query_mode = local_agent and 'LOCAL' or 'SSH' if local_agent: remote_agent = None else: remote_agent = {'hostname': hostname, 'port': port, } -agent_client_tasks = x2gobroker.agent.tasks -if 'availabletasks' in agent_client_tasks: - try: - remote_agent_tasks = x2gobroker.agent.tasks_available(username=username, query_mode=query_mode, remote_agent=remote_agent) - except x2gobroker.x2gobroker_exceptions.X2GoBrokerAgentException, e: - print e - sys.exit(0) - def call_agent(task): return agent_client_tasks[task](username=username, query_mode=query_mode, remote_agent=remote_agent) if __name__ == "__main__": + print + print "X2Go Session Broker (Agent Test Utility)" + print "----------------------------------------" + + agent_client_tasks = x2gobroker.agent.tasks + if 'availabletasks' in agent_client_tasks: + try: + remote_agent_tasks = x2gobroker.agent.tasks_available(username=username, query_mode=query_mode, remote_agent=remote_agent) + except x2gobroker.x2gobroker_exceptions.X2GoBrokerAgentException, e: + print e + print + sys.exit(0) + # drop root privileges and run as X2GOBROKER_DAEMON_USER drop_privileges(uid=x2gobroker.defaults.X2GOBROKER_DAEMON_USER, gid=x2gobroker.defaults.X2GOBROKER_DAEMON_GROUP) diff --git a/x2gobroker/utils.py b/x2gobroker/utils.py index 776f380..0d8af2c 100644 --- a/x2gobroker/utils.py +++ b/x2gobroker/utils.py @@ -25,6 +25,7 @@ import types import locale import netaddr import distutils.version +import pwd, grp def _checkConfigFileDefaults(data_structure): """\ -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git