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

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


The branch, build-baikal has been updated
       via  90aad3a3a8d6c92d41deccde992980181f3acd23 (commit)
      from  978b28093cac10c0b230af8d3fe71de3e8d865e0 (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 |    7 +++++--
 x2go/client.py                   |   31 +++++++++++++++++++++++++++++++
 3 files changed, 37 insertions(+), 2 deletions(-)

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index e7c49da..2204732 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -92,6 +92,7 @@ python-x2go (0.1.2.0-0~x2go1) UNRELEASED; urgency=low
     - Transform blanks in mount points into underscores.
     - Add support for renaming X2Go session windows on Windows.
     - Add support for Windows for bringing X2Go session windows to foreground.
+    - Provide X2goClient.get_published_applications() method.
   * 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 01b4c30..fa6d78b 100644
--- a/x2go/backends/control/_stdout.py
+++ b/x2go/backends/control/_stdout.py
@@ -1030,10 +1030,13 @@ class X2goControlSessionSTDOUT(paramiko.SSHClient):
                     if hasattr(self.associated_terminals[_session_name], 'session_info') and not self.associated_terminals[_session_name].is_session_info_protected():
                         self.associated_terminals[_session_name].session_info.update(_listsessions[_session_name])
                 else:
-                    del self.associated_terminals[_session_name]
+                    try: del self.associated_terminals[_session_name]
+                    except KeyError: pass
                     self.terminated_terminals.append(_session_name)
                 if _terminal.is_suspended():
-                    del self.associated_terminals[_session_name]
+                    try: del self.associated_terminals[_session_name]
+                    except KeyError: pass
+
 
             return _listsessions
 
diff --git a/x2go/client.py b/x2go/client.py
index 4fed0e3..c64259e 100644
--- a/x2go/client.py
+++ b/x2go/client.py
@@ -141,6 +141,7 @@ from defaults import X2GO_SESSIONPROFILES_FILENAME as _X2GO_SESSIONPROFILES_FILE
 from defaults import X2GO_SETTINGS_FILENAME as _X2GO_SETTINGS_FILENAME
 from defaults import X2GO_PRINTING_FILENAME as _X2GO_PRINTING_FILENAME
 from defaults import X2GO_XCONFIG_FILENAME as _X2GO_XCONFIG_FILENAME
+from defaults import PUBAPP_MAX_NO_SUBMENUS as _PUBAPP_MAX_NO_SUBMENUS
 
 from defaults import BACKENDS_CONTROLSESSION as _BACKENDS_CONTROLSESSION
 from defaults import BACKENDS_TERMINALSESSION as _BACKENDS_TERMINALSESSION
@@ -1093,6 +1094,36 @@ class X2goClient(object):
         return self.session_registry(session_uuid).get_session_info()
     __get_session_info = get_session_info
 
+    def get_published_applications(self, session_uuid=None, profile_name=None, lang=None, refresh=False, raw=False, very_raw=False, max_no_submenus=_PUBAPP_MAX_NO_SUBMENUS):
+        """\
+        Retrieve the server-side X2Go published applications menu for the session
+        registered under C{session_uuid} or for profile name C{profile_name}.
+
+        @param session_uuid: the X2Go session's UUID registry hash
+        @type session_uuid: C{str}
+        @param profile_name: a valid session profile name
+        @type profile_name: C{str}
+
+        @return: a representative of the published applications menu tree
+        @rtype: C{dict}
+
+        """
+        if session_uuid is None and profile_name:
+            _session_uuids = self._X2goClient__client_pubapp_sessions_of_profile_name(profile_name, return_objects=False)
+            if len(_session_uuids): session_uuid = _session_uuids[0]
+        if session_uuid:
+            try:
+                if self.session_registry(session_uuid).is_published_applications_provider():
+                    return self.session_registry(session_uuid).get_published_applications(lang=lang, refresh=refresh, raw=raw, very_raw=False, max_no_submenus=max_no_submenus)
+            except x2go_exceptions.X2goSessionRegistryException:
+                pass
+        else:
+            self.logger('Cannot find a terminal session for profile ,,%s\'\' that can be used to query a published applications menu tree' % profile_name, loglevel=log.loglevel_INFO)
+        return None
+    __get_published_applications = get_published_applications
+    profile_get_published_applications = get_published_applications
+    __profile_get_published_applications = get_published_applications
+
     def set_session_username(self, session_uuid, username):
         """\
         Set the session username for the L{X2goSession} that has been registered under C{session_uuid}.


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