[X2Go-Commits] python-x2go.git - brokerclient (branch) updated: 0.1.1.4-127-g2a96e1e

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


The branch, brokerclient 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 at 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).




More information about the x2go-commits mailing list