The branch, twofactorauth has been updated via 2a96e1e2fb82f305f3d2d5c88f0ece5eb7624ba1 (commit) from 8d90554cf0190a23569d52c31aee3c8811d1bcc2 (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 | 1 + x2go/backends/control/_stdout.py | 16 ++++++++++++++++ x2go/session.py | 19 +++++++++++++++++++ 3 files changed, 36 insertions(+) The diff of changes is: diff --git a/debian/changelog b/debian/changelog index d3f9768..65571f2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -38,6 +38,7 @@ python-x2go (0.1.2.0-0~x2go1) UNRELEASED; urgency=low - Run MIME box actions in background (gevent.spawn). - Amend list of default session options. - Update list of unsupported session options. + - Retrieve feature list from X2Go server per session. * Depend on python-xlib. -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Sat, 28 Sep 2012 01:44:21 +0100 diff --git a/x2go/backends/control/_stdout.py b/x2go/backends/control/_stdout.py index 9d59807..db170b2 100644 --- a/x2go/backends/control/_stdout.py +++ b/x2go/backends/control/_stdout.py @@ -122,6 +122,8 @@ class X2goControlSessionSTDOUT(paramiko.SSHClient): self._remote_home = None self._remote_group = {} + self._server_features = [] + self.locked = False if logger is None: @@ -239,6 +241,20 @@ class X2goControlSessionSTDOUT(paramiko.SSHClient): raise x2go_exceptions.X2goControlSessionException('the X2Go control session is not connected') return _retval + + @property + def _x2go_server_features(self): + if self._server_features is None: + (stdin, stdout, stderr) = self._x2go_exec_command('which x2gofeaturelist && x2gofeaturelist') + self._server_features = stdout.read().split('\n') + self.logger('server-side X2Go features are: %s' % self._server_features, loglevel=log.loglevel_DEBUG) + return self._server_features + else: + return self._server_features + + def query_server_features(self): + return self._x2go_server_features + @property def _x2go_remote_home(self): diff --git a/x2go/session.py b/x2go/session.py index 1d5c062..4fe945c 100644 --- a/x2go/session.py +++ b/x2go/session.py @@ -237,6 +237,7 @@ class X2goSession(object): self.shared_folders = [] self.session_environment = {} + self.server_features = [] try: del self.control_params['server'] except: pass @@ -909,6 +910,7 @@ class X2goSession(object): if self.connected: self.update_status() + self.retrieve_server_features() return self.connected __connect = connect @@ -935,6 +937,23 @@ class X2goSession(object): return retval __disconnect = disconnect + def retrieve_server_features(self): + """\ + Query the X2Go server for a list of supported features. + + """ + self.server_features = self.control_session.query_server_features() + + def get_server_features(self): + """\ + Return a list of X2Go server-sides features (supported functionalities). + + @return: a C{list} of X2Go feature names. + @rtype: C{list} + + """ + return self.server_features + def set_session_window_title(self, title=''): """\ Modify session window title. If the session ID does not occur in the 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).