[X2Go-Commits] [x2gobroker] 03/03: x2gobroker-testauth: handle extra arguments

git-admin at x2go.org git-admin at x2go.org
Wed Mar 19 01:14:43 CET 2014


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2gobroker.

commit 7cfda4d1acb114419bf8ea647955febaffe15dc7
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Mar 19 01:14:47 2014 +0100

    x2gobroker-testauth: handle extra arguments
---
 debian/changelog          |    1 +
 sbin/x2gobroker-testagent |   15 +++++++++++----
 x2gobroker/agent.py       |   16 ++++++++--------
 3 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 45b89b8..a9b3ccb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -101,6 +101,7 @@ x2gobroker (0.0.3.0-0x2go1) UNRELEASED; urgency=low
     - Provide tool: x2gobroker-testagent.
     - Allow for broker clients to send in public SSH keys that the client may
       use for authentication to X2Go Servers.
+    - broker agent: avoid one option system() calls in Perl.
   * debian/control:
     + Replace LDAP support with session brokerage support in LONG_DESCRIPTION.
     + Fix SYNOPSIS texts.
diff --git a/sbin/x2gobroker-testagent b/sbin/x2gobroker-testagent
index eef96a8..e09c81f 100755
--- a/sbin/x2gobroker-testagent
+++ b/sbin/x2gobroker-testagent
@@ -111,8 +111,8 @@ query_mode = local_agent and 'LOCAL' or 'SSH'
 if local_agent: remote_agent = None
 else: remote_agent = {'hostname': hostname, 'port': port, }
 
-def call_agent(task):
-    return agent_client_tasks[task](username=username, query_mode=query_mode, remote_agent=remote_agent)
+def call_agent(task, **kwargs):
+    return agent_client_tasks[task](username=username, query_mode=query_mode, remote_agent=remote_agent, **kwargs)
 
 if __name__ == "__main__":
 
@@ -149,6 +149,13 @@ if __name__ == "__main__":
             except KeyError:
                 print "   {task_name}: not supported by this broker version".format(task_name=task)
         print
-        sys.exit(0)
+        sys.exit(0);
 
-    call_agent(task)
+    kwargs = {}
+    if task == 'addauthkey':
+        pubkey, privvkey = x2gobroker.agent.genkeypair(local_username=username, client_address="localhost")
+        kwargs.update({
+            'pubkey_hash': pubkey,
+        })
+
+    print "\n".join(call_agent(task, **kwargs))
diff --git a/x2gobroker/agent.py b/x2gobroker/agent.py
index 7d0baca..0840023 100644
--- a/x2gobroker/agent.py
+++ b/x2gobroker/agent.py
@@ -200,7 +200,7 @@ def icmp_ping(hostname):
     return True
 
 
-def ping(query_mode='LOCAL', remote_agent=None):
+def ping(query_mode='LOCAL', remote_agent=None, **kwargs):
     """\
     Ping X2Go Broker Agent.
 
@@ -239,7 +239,7 @@ def list_sessions(username, query_mode='LOCAL', remote_agent=None):
 tasks['listsessions'] = list_sessions
 
 
-def suspend_session(username, session_name, query_mode='LOCAL', remote_agent=None):
+def suspend_session(username, session_name, query_mode='LOCAL', remote_agent=None, **kwargs):
     """\
     Trigger a session suspensions via the X2Go Broker Agent.
 
@@ -258,7 +258,7 @@ def suspend_session(username, session_name, query_mode='LOCAL', remote_agent=Non
 tasks['suspendsession'] = suspend_session
 
 
-def terminate_session(username, session_name, query_mode='LOCAL', remote_agent=None):
+def terminate_session(username, session_name, query_mode='LOCAL', remote_agent=None, **kwargs):
     """\
     Trigger a session termination via the X2Go Broker Agent.
 
@@ -297,7 +297,7 @@ def has_sessions(username, query_mode='LOCAL', remote_agent=None):
     return ([ s.split('|')[3] for s in _session_list if s.split('|')[4] == 'R' ], [ s.split('|')[3] for s in _session_list if s.split('|')[4] == 'S' ])
 
 
-def find_busy_servers(username, query_mode='LOCAL', remote_agent=None):
+def find_busy_servers(username, query_mode='LOCAL', remote_agent=None, **kwargs):
     """\
     Query X2Go Broker Agent for a list of  servers with running
     and/or suspended sessions and a percentage that tells about
@@ -330,7 +330,7 @@ def find_busy_servers(username, query_mode='LOCAL', remote_agent=None):
 tasks['findbusyservers'] = find_busy_servers
 
 
-def add_authorized_key(username, pubkey_hash, authorized_keys_file='%h/.x2go/authorized_keys', query_mode='LOCAL', remote_agent=None):
+def add_authorized_key(username, pubkey_hash, authorized_keys_file='%h/.x2go/authorized_keys', query_mode='LOCAL', remote_agent=None, **kwargs):
     """\
     Add a public key hash to the user's authorized_keys file.
 
@@ -353,7 +353,7 @@ def add_authorized_key(username, pubkey_hash, authorized_keys_file='%h/.x2go/aut
 tasks['addauthkey'] = add_authorized_key
 
 
-def delete_authorized_key(username, pubkey_hash, authorized_keys_file='%h/.x2go/authorized_keys', query_mode='LOCAL', remote_agent=None, delay_deletion=0):
+def delete_authorized_key(username, pubkey_hash, authorized_keys_file='%h/.x2go/authorized_keys', query_mode='LOCAL', remote_agent=None, delay_deletion=0, **kwargs):
     """\
     Remove a public key hash from the user's authorized_keys file.
 
@@ -386,7 +386,7 @@ def delete_authorized_key(username, pubkey_hash, authorized_keys_file='%h/.x2go/
 tasks['delauthkey'] = delete_authorized_key
 
 
-def get_servers(username, query_mode='LOCAL', remote_agent=None):
+def get_servers(username, query_mode='LOCAL', remote_agent=None, **kwargs):
     """\
     Query X2Go Broker Agent for the list of currently used servers.
 
@@ -407,7 +407,7 @@ def get_servers(username, query_mode='LOCAL', remote_agent=None):
 tasks['getservers'] = get_servers
 
 
-def tasks_available(username, query_mode='LOCAL', remote_agent=None):
+def tasks_available(username, query_mode='LOCAL', remote_agent=None, **kwargs):
     """\
     Query X2Go Broker Agent for the list of available tasks.
 

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git



More information about the x2go-commits mailing list