[X2Go-Commits] python-x2go.git - release/0.4.0.x (branch) updated: 1b39b26c782a431bea3dc99d3dab61edceb253cc

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


The branch, release/0.4.0.x has been updated
       via  1b39b26c782a431bea3dc99d3dab61edceb253cc (commit)
      from  c4b70151df3b4f2572f1d9dc1699f29b072016b7 (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/cache.py    |    4 ++--
 x2go/client.py   |   12 +++++-----
 x2go/registry.py |   68 +++++++++++++++++++++++++++++++++++++++++-------------
 x2go/session.py  |   43 ++++++++++++++++++++--------------
 4 files changed, 86 insertions(+), 41 deletions(-)

The diff of changes is:
diff --git a/x2go/cache.py b/x2go/cache.py
index e0b4dfd..7010613 100644
--- a/x2go/cache.py
+++ b/x2go/cache.py
@@ -63,7 +63,7 @@ class X2goListSessionsCache(object):
     def check_cache(self):
 
         for profile_name in self.x2go_listsessions_cache.keys():
-            if profile_name not in self.client_instance.connected_profiles(return_profile_names=True):
+            if profile_name not in self.client_instance.client_connected_profiles(return_profile_names=True):
                 del self.x2go_listsessions_cache[profile_name]
 
     def update_all(self):
@@ -71,7 +71,7 @@ class X2goListSessionsCache(object):
         Update L{X2goListSessionsCache} for all connected profiles.
 
         """
-        for profile_name in self.client_instance.connected_profiles(return_profile_names=True):
+        for profile_name in self.client_instance.client_connected_profiles(return_profile_names=True):
             self.update(profile_name)
 
         self.check_cache()
diff --git a/x2go/client.py b/x2go/client.py
index 56c909f..3e247d4 100644
--- a/x2go/client.py
+++ b/x2go/client.py
@@ -1390,7 +1390,7 @@ class X2goClient(object):
         """
         return self.session_profiles.get_profile_metatype(profile_name)
 
-    def connected_profiles(self, return_profile_names=False):
+    def client_connected_profiles(self, return_profile_names=False):
         """\
         STILL UNDOCUMENTED
 
@@ -1399,7 +1399,7 @@ class X2goClient(object):
             return [ self.to_profile_name(p_id) for p_id in self.session_registry.connected_profiles ]
         else:
             return self.session_registry.connected_profiles
-    __connected_profiles = connected_profiles
+    __client_connected_profiles = client_connected_profiles
 
     def disconnect_profile(self, profile_name):
         """\
@@ -1445,7 +1445,7 @@ class X2goClient(object):
         STILL UNDOCUMENTED
 
         """
-        for profile_name in self.connected_profiles(return_profile_names=True):
+        for profile_name in self.client_connected_profiles(return_profile_names=True):
             self.__update_sessionregistry_status_by_profile_name(profile_name)
     __update_sessionregistry_status_all_profiles = update_sessionregistry_status_all_profiles
 
@@ -1479,7 +1479,7 @@ class X2goClient(object):
 
         """
         if self.listsessions_cache is not None:
-            for profile_name in self.connected_profiles(return_profile_names=True):
+            for profile_name in self.client_connected_profiles(return_profile_names=True):
                 self.__update_cache_by_profile_name(profile_name)
 
             self.listsessions_cache.check_cache()
@@ -1490,7 +1490,7 @@ class X2goClient(object):
         STILL UNDOCUMENTED
 
         """
-        for profile_name in self.connected_profiles(return_profile_names=True):
+        for profile_name in self.client_connected_profiles(return_profile_names=True):
             session_list = self.list_sessions(profile_name=profile_name, 
                                               update_sessionregistry=False,
                                               register_sessions=False,
@@ -1512,6 +1512,6 @@ class X2goClient(object):
         STILL UNDOCUMENTED
 
         """
-        for profile_name in self.connected_profiles(return_profile_names=True):
+        for profile_name in self.client_connected_profiles(return_profile_names=True):
             self.__register_available_server_sessions_by_profile_name(profile_name)
     __register_available_server_sessions_all_profiles = register_available_server_sessions_all_profiles
diff --git a/x2go/registry.py b/x2go/registry.py
index 53f934f..daf2bb8 100644
--- a/x2go/registry.py
+++ b/x2go/registry.py
@@ -216,24 +216,31 @@ class X2goSessionRegistry(object):
 
                     # reconstruct all session options of _ctrl_session to auto-register a suspended session
                     # found on the _ctrl_session's connected server
-                    _pre_kwargs = _ctrl_session.__dict__
+                    _clone_kwargs = _ctrl_session.__dict__
                     kwargs = {}
-                    kwargs.update(_pre_kwargs['terminal_params'])
-                    kwargs.update(_pre_kwargs['control_params'])
-                    kwargs['control_backend'] = _pre_kwargs['_control_backend']
-                    kwargs['terminal_backend'] = _pre_kwargs['_terminal_backend']
-                    kwargs['proxy_backend'] = _pre_kwargs['_proxy_backend']
-                    kwargs['info_backend'] = _pre_kwargs['_info_backend']
-                    kwargs['list_backend'] = _pre_kwargs['_list_backend']
-                    kwargs['settings_backend'] = _pre_kwargs['_settings_backend']
-                    kwargs['printing_backend'] = _pre_kwargs['_printing_backend']
-                    kwargs['keep_controlsession_alive'] = _pre_kwargs['keep_controlsession_alive']
-                    kwargs['client_rootdir'] = _pre_kwargs['client_rootdir']
-                    kwargs['sessions_rootdir'] = _pre_kwargs['sessions_rootdir']
+                    kwargs.update(self.client_instance.session_profiles.to_session_params(profile_id))
+                    kwargs['client_instance'] = self.client_instance
+                    kwargs['control_backend'] = _clone_kwargs['_control_backend']
+                    kwargs['terminal_backend'] = _clone_kwargs['_terminal_backend']
+                    kwargs['proxy_backend'] = _clone_kwargs['_proxy_backend']
+                    kwargs['info_backend'] = _clone_kwargs['_info_backend']
+                    kwargs['list_backend'] = _clone_kwargs['_list_backend']
+                    kwargs['settings_backend'] = _clone_kwargs['_settings_backend']
+                    kwargs['printing_backend'] = _clone_kwargs['_printing_backend']
+                    kwargs['keep_controlsession_alive'] = _clone_kwargs['keep_controlsession_alive']
+                    kwargs['client_rootdir'] = _clone_kwargs['client_rootdir']
+                    kwargs['sessions_rootdir'] = _clone_kwargs['sessions_rootdir']
+
+                    try: del kwargs['server'] 
+                    except: pass
+                    try: del kwargs['profile_name']
+                    except: pass
+                    try: del kwargs['profile_id'] 
+                    except: pass
 
                     # this if clause catches problems when x2golistsessions commands give weird results
                     if not self.has_session_of_session_name(session_name):
-                        self.register(server, profile_id, profile_name, 
+                        self.register(server, profile_id, profile_name,
                                       session_name=session_name,
                                       virgin=False, running=False, suspended=True, terminated=None,
                                       **kwargs
@@ -268,13 +275,42 @@ class X2goSessionRegistry(object):
         if _virgin_sessions and not session_name:
 
             session_uuid = _virgin_sessions[0].get_uuid()
+            _params = self.client_instance.session_profiles.to_session_params(profile_id)
+
+            try: del _params['server'] 
+            except: pass
+            try: del _params['printing'] 
+            except: pass
+            try: del _params['share_local_folders'] 
+            except: pass
+            try: del _params['profile_name']
+            except: pass
+            try: del _params['profile_id'] 
+            except: pass
+
+            self(session_uuid).update_params(_params)
             self.logger('using already initially-registered yet-unused session %s' % session_uuid, log.loglevel_NOTICE)
             return session_uuid
 
         try:
-            _retval = self.get_session_of_session_name(session_name)
+            session_uuid = self.get_session_of_session_name(session_name)
+            _params = self.client_instance.session_profiles.to_session_params(profile_id)
+
+            try: del _params['server'] 
+            except: pass
+            try: del _params['printing'] 
+            except: pass
+            try: del _params['share_local_folders'] 
+            except: pass
+            try: del _params['profile_name']
+            except: pass
+            try: del _params['profile_id'] 
+            except: pass
+
+            self(session_uuid).update_params(_params)
             self.logger('using already registered-by-session-name session %s' % session_uuid, log.loglevel_NOTICE)
-            return _retval
+            return session_uuid
+
         except X2goSessionException:
             # no registered session for session_name found... FINE, go ahead!
             pass
diff --git a/x2go/session.py b/x2go/session.py
index bab60b0..8668fc9 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -135,25 +135,21 @@ class X2goSession(object):
             _client_instance = params['client_instance']
             del params['client_instance']
 
-        _terminal_params = copy.deepcopy(params)
-        _control_params = copy.deepcopy(params)
-        for p in params.keys():
-            if p in session._X2GO_SESSION_PARAMS:
-                del _control_params[p]
-            else:
-                del _terminal_params[p]
+        self.control_params = {}
+        self.terminal_params = {}
+        self.update_params(params)
+
+        try: del self.control_params['server']
+        except: pass
 
-        _terminal_params['client_instance'] = _client_instance
+        self.terminal_params['client_instance'] = _client_instance
 
         self.logger('X2go control session parameters for profile %s:' % profile_name, log.loglevel_DEBUG)
-        for p in _control_params:
-            self.logger('    %s: %s' % (p, _control_params[p]), log.loglevel_DEBUG)
+        for p in self.control_params:
+            self.logger('    %s: %s' % (p, self.control_params[p]), log.loglevel_DEBUG)
         self.logger('X2go terminal session parameters for profile %s:' % profile_name, log.loglevel_DEBUG)
-        for p in _terminal_params:
-            self.logger('    %s: %s' % (p,_terminal_params[p]), log.loglevel_DEBUG)
-
-        self.control_params = _control_params
-        self.terminal_params = _terminal_params
+        for p in self.terminal_params:
+            self.logger('    %s: %s' % (p,self.terminal_params[p]), log.loglevel_DEBUG)
 
         self.logger('starting X2goSession', loglevel=log.loglevel_DEBUG)
         if control_session is None:
@@ -220,6 +216,21 @@ class X2goSession(object):
             self.get_terminal_session().__del__()
             self.terminal_session = None
 
+    def update_params(self, params):
+        """\
+        STILL UNDOCUMENTED
+
+        """
+        _terminal_params = copy.deepcopy(params)
+        _control_params = copy.deepcopy(params)
+        for p in params.keys():
+            if p in session._X2GO_SESSION_PARAMS:
+                del _control_params[p]
+            else:
+                del _terminal_params[p]
+        self.control_params.update(_control_params)
+        self.terminal_params.update(_terminal_params)
+
     def get_uuid(self):
         """\
         STILL UNDOCUMENTED
@@ -500,8 +511,6 @@ class X2goSession(object):
                 _new_session = True
                 self.session_name = self.terminal_session.session_info.name
 
-            print 'STARTING SESSION: %s'  % self.session_name
-
             if _terminal is not None:
 
                 if SUPPORTED_SOUND and _terminal.params.snd_system is not 'none':


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