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

X2Go dev team git-admin at x2go.org
Wed Jan 8 15:28:55 CET 2014


The branch, build-baikal 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