[X2Go-Commits] python-x2go.git - brokerclient (branch) updated: 0.0.44.2-28-gf085f47

X2Go dev team git-admin at x2go.org
Tue Jan 7 16:20:36 CET 2014


The branch, brokerclient has been updated
       via  f085f47043f003f1c6123b8cd3d65582b223f0f2 (commit)
      from  49529de671fb76aa6c75407dec5ee4e82c1dc27b (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:
 x2go/client.py |  230 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 229 insertions(+), 1 deletion(-)

The diff of changes is:
diff --git a/x2go/client.py b/x2go/client.py
index f030a2d..2c69158 100644
--- a/x2go/client.py
+++ b/x2go/client.py
@@ -175,6 +175,7 @@ class X2goClient(object):
     with a remote X2go server (passing of session options, initialization of the
     session object etc.) and connected to it (authentication). For these two steps
     use these methods: L{X2goClient.register_session()} and L{X2goClient.connect_session()}.
+
     """
     def __init__(self, 
                  control_backend=control.X2goControlSession,
@@ -198,6 +199,44 @@ class X2goClient(object):
                  pulseaudio_installdir=os.path.join(os.getcwd(), 'pulseaudio'),
                  logger=None, loglevel=log.loglevel_DEFAULT):
         """\
+        @param control_backend: X2go control session backend to use
+        @type control_backend: C{class}
+        @param terminal_backend: X2go terminal session backend to use
+        @type terminal_backend: C{class}
+        @param info_backend: X2go session info backend to use
+        @type info_backend: C{class}
+        @param list_backend: X2go session list backend to use
+        @type list_backend: C{class}
+        @param proxy_backend: X2go proxy backend to use
+        @type proxy_backend: C{class}
+        @param profiles_backend: X2go session profiles backend to use
+        @type profiles_backend: C{class}
+        @param settings_backend: X2go client settings backend to use
+        @type settings_backend: C{class}
+        @param printing_backend: X2go client printing backend to use
+        @type printing_backend: C{class}
+        @param client_rootdir: client base dir (default: ~/.x2goclient)
+        @type client_rootdir: C{str}
+        @param sessions_rootdir: sessions base dir (default: ~/.x2go)
+        @type sessions_rootdir: C{str}
+        @param ssh_rootdir: ssh base dir (default: ~/.ssh)
+        @type ssh_rootdir: C{str}
+        @param start_xserver: start XServer when registering an L{X2goClient} instance
+        @type start_xserver: C{bool}
+        @param start_pulseaudio: start PulseAudio daemon when registering an L{X2goClient} instance
+        @type start_pulseaudio: C{bool}
+        @param use_listsessions_cache: activate the X2go list sessions cache (L{X2goListSessionsCache})
+        @type use_listsessions_cache: C{bool}
+        @param auto_update_listsessions_cache: activate automatic updates of the X2go list sessions cache (L{X2goListSessionsCache})
+        @type auto_update_listsessions_cache: C{bool}
+        @param auto_update_sessionregistry: activate automatic updates of the X2go session registry
+        @type auto_update_sessionregistry: C{bool}
+        @param auto_register_sessions: activate automatic X2go session registration
+        @type auto_register_sessions: C{bool}
+        @param refresh_interval: refresh list sessions cache and session status every C{<refresh_interval} seconds
+        @type refresh_interval: C{int}
+        @param pulseaudio_installdir: install path of Pulseaudio binary
+        @type pulseaudio_installdir: C{str}
         @param logger: you can pass an L{X2goLogger} object to the
             L{X2goClient} constructor
         @type logger: L{X2goLogger} instance
@@ -283,68 +322,257 @@ class X2goClient(object):
 
     # user hooks for detecting/notifying what happened during application runtime
     def HOOK_no_known_xserver_found(self):
-        self.logger('the Python X2go module could not find any usable XServer application, you will not be able to start X2go sessions without XServer', loglevel=log.loglevel_WARN)
+        """\
+        HOOK method: called if the Python X2go module could not find any usable XServer
+        application to start. You will not be able to start X2go sessions without an XServer.
+
+        """
+        self.logger('the Python X2go module could not find any usable XServer application, you will not be able to start X2go sessions without an XServer', loglevel=log.loglevel_WARN)
 
     def HOOK_open_print_dialog(self, profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called if an incoming print job has been detected by X2goClient and a print dialog box is
+        detected.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_open_print_dialog: incoming print job detected by X2goClient hook method', loglevel=log.loglevel_WARN)
 
     def HOOK_no_such_command(self, cmd, profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK: the command <cmd> is not available for X2go server.
+
+        @param cmd: the command that failed
+        @type cmd: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_no_such_command: the command %s is not available for X2go server (profile: %s, session: %s)' % (cmd, profile_name, session_name), loglevel=log.loglevel_WARN)
 
     def HOOK_open_mimebox_saveas_dialog(self, filename, profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called on detection of an incoming MIME box job ,,<filename>''.
+
+        @param filename: file name of the incoming MIME box job
+        @type filename: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_open_mimebox_saveas_dialog: incoming MIME box job ,, %s'' detected by X2goClient hook method' % filename, loglevel=log.loglevel_WARN)
 
     def HOOK_printaction_error(self, filename, profile_name='UNKNOWN', session_name='UNKNOWN', err_msg='GENERIC_ERROR', printer=None):
+        """\
+        HOOK method: called if an incoming print job caused an error.
+
+        @param filename: file name of the print job that failed
+        @type filename: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+        @param err_msg: if available, an appropriate error message
+        @type err_msg: C{str}
+        @param printer: if available, the printer name the print job failed on
+        @type printer: C{str}
+
+        """
         if printer:
             self.logger('HOOK_printaction_error: incoming print job ,, %s'' on printer %s caused error: %s' % (filename, printer, err_msg), loglevel=log.loglevel_ERROR)
         else:
             self.logger('HOOK_printaction_error: incoming print job ,, %s'' caused error: %s' % (filename, err_msg), loglevel=log.loglevel_ERROR)
 
     def HOOK_check_host_dialog(self, profile_name='UNKNOWN', host='UNKNOWN', port=22, fingerprint='no fingerprint', fingerprint_type='RSA'):
+        """\
+        HOOK method: called if a host check is requested. This hook has to either return C{true} (default) or C{false}.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param host: SSH server name to validate
+        @type host: C{str}
+        @param port: SSH server port to validate
+        @type port: C{int}
+        @param fingerprint: the server's fingerprint
+        @type fingerprint: C{str}
+        @param fingerprint_type: finger print type (like RSA, DSA, ...)
+        @type fingerprint_type: C{str}
+        @return: if host validity is verified, the hook method should return C{true}
+        @rtype: C{bool}
+
+        """
         self.logger('HOOK_check_host_dialog: host check requested for session profile %s: Automatically adding host [%s]:%s with fingerprint: ,,%s\'\' as a known host.' % (profile_name, host, port, fingerprint), loglevel=log.loglevel_WARN)
         # this HOOK has to return either True (accept host connection) or False (deny host conection)
         return True
 
     def HOOK_on_control_session_death(self, profile_name):
+        """\
+        HOOK method: called if a control session (server connection) has unexpectedly encountered a failure.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+
+        """
         self.logger('HOOK_on_control_session_death: the control session of profile %s has died unexpectedly' % profile_name, loglevel=log.loglevel_WARN)
 
     def HOOK_pulseaudio_not_supported_in_RDPsession(self):
+        """HOOK method: called if trying to run the Pulseaudio daemon within an RDP session, which is not supported by Pulseaudio."""
         self.logger('HOOK_pulseaudio_not_supported_in_RDPsession: The pulseaudio daemon cannot be used within RDP sessions', loglevel=log.loglevel_WARN)
 
     def HOOK_pulseaudio_server_startup_failed(self):
+        """HOOK method: called if the Pulseaudio daemon startup failed."""
         self.logger('HOOK_pulseaudio_server_startup_failed: The pulseaudio daemon could not be started', loglevel=log.loglevel_ERROR)
 
     def HOOK_pulseaudio_server_died(self):
+        """HOOK method: called if the Pulseaudio daemon has died away unexpectedly."""
         self.logger('HOOK_pulseaudio_server_died: The pulseaudio daemon has just died away', loglevel=log.loglevel_ERROR)
 
     def HOOK_on_sound_tunnel_failed(self, profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called if a sound tunnel setup failed.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_on_sound_tunnel_failed: setting up X2go sound for %s (%s) support failed' % (profile_name, session_name))
 
     def HOOK_rforward_request_denied(self, profile_name='UNKNOWN', session_name='UNKNOWN', server_port=0):
+        """\
+        HOOK method: called if a reverse port forwarding request has been denied.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+        @param server_port: remote server port (starting point of reverse forwarding tunnel)
+        @type server_port: C{str}
+
+        """
         self.logger('TCP port (reverse) forwarding request for session %s to server port %s has been denied by the X2go server. This is a common issue with SSH, it might help to restart the X2go server\'s SSH daemon.' % (session_name, server_port), loglevel=log.loglevel_WARN)
 
     def HOOK_forwarding_tunnel_setup_failed(self, profile_name='UNKNOWN', session_name='UNKNOWN', chain_host='UNKNOWN', chain_port=0):
+        """\
+        HOOK method: called if a forwarding tunnel setup failed.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+        @param chain_host: hostname of chain host (forwarding tunnel end point)
+        @type chain_host: C{str}
+        @param chain_port: port of chain host (forwarding tunnel end point)
+        @type chain_port: C{str}
+
+        """
         self.logger('Forwarding tunnel request to [%s]:%s for session %s (%s) was denied by remote X2go/SSH server. Session startup failed.' % (chain_host, chain_port, self.session_name, self.profile_name), loglevel=log.loglevel_ERROR)
 
     def HOOK_on_session_has_started_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called if a session has been started by this instance of L{X2goClient}.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_on_session_has_started_by_me (session_uuid: %s, profile_name: %s): a new session %s has been started by this application' %  (session_uuid, profile_name, session_name), loglevel=log.loglevel_NOTICE)
 
     def HOOK_on_session_has_started_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called if a session has been started by another C{x2goclient}.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_on_session_has_started (session_uuid: %s, profile_name: %s): a new session %s has started been started by other application' %  (session_uuid, profile_name, session_name), loglevel=log.loglevel_NOTICE)
 
     def HOOK_on_session_has_resumed_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called if a session has been resumed by this instance of L{X2goClient}.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_on_session_has_resumed_by_me (session_uuid: %s, profile_name: %s): suspended session %s has been resumed by this application' %  (session_uuid, profile_name, session_name), loglevel=log.loglevel_NOTICE)
 
     def HOOK_on_session_has_resumed_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called if a session has been resumed by another C{x2goclient}.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_on_session_has_resumed_by_other (session_uuid: %s, profile_name: %s): suspended session %s has been resumed by other application' %  (session_uuid, profile_name, session_name), loglevel=log.loglevel_NOTICE)
 
     def HOOK_on_found_session_running_after_connect(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called after server connect if an already running session has been found.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_found_session_running_after_connect (session_uuid: %s, profile_name: %s): running session %s has been found after connecting to session profile %s' %  (session_uuid, profile_name, session_name, profile_name), loglevel=log.loglevel_NOTICE)
 
     def HOOK_on_session_has_been_suspended(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called if a session has been suspended by this instance of L{X2goClient}.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_on_session_has_been_suspended (session_uuid: %s, profile_name: %s): session %s has been suspended' %  (session_uuid, profile_name, session_name), loglevel=log.loglevel_NOTICE)
 
     def HOOK_on_session_has_terminated(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """\
+        HOOK method: called if a session has been suspended by another C{x2goclient}.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2go session name
+        @type session_name: C{str}
+
+        """
         self.logger('HOOK_on_session_has_terminated (session_uuid: %s, profile_name: %s): session %s has terminated' % (session_uuid, profile_name, session_name), loglevel=log.loglevel_NOTICE)
 
     def _detect_backend_classes(self):


hooks/post-receive
-- 
python-x2go.git (Python X2Go Client API)

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 "python-x2go.git" (Python X2Go Client API).




More information about the x2go-commits mailing list