[X2Go-Commits] python-x2go.git - build-baikal (branch) updated: 0.1.0.3-16-ga93a351

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


The branch, build-baikal has been updated
       via  a93a3515718f8308feff5a704bfded92df932e1f (commit)
      from  116df2c20b8f779dacec59d7b389911c9f053c70 (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/registry.py |   19 +++++++++++--------
 x2go/session.py  |   25 +++++++++++++++++++++++--
 3 files changed, 35 insertions(+), 10 deletions(-)

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 28d517c..2ff1b74 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,7 @@ python-x2go (0.1.1.0-0~x2go1) UNRELEASED; urgency=low
     - Fix SSH authentication failures (close session on failure).
     - Close SSH connection first, then close down SSH proxy.
     - Make sure SSH proxy password gets forgotten between two sessions.
+    - Add X2goSession status property ,,faulty''.
 
  -- Mike Gabriel <mike at mimino.das-netzwerkteam.de>  Mon, 20 Jun 2011 14:16:54 +0200
 
diff --git a/x2go/registry.py b/x2go/registry.py
index 3dec99a..e2665d7 100644
--- a/x2go/registry.py
+++ b/x2go/registry.py
@@ -106,7 +106,10 @@ class X2goSessionRegistry(object):
         @rtype: L{X2goSession} instance
 
         """
-        return self.registry[session_uuid]
+        try:
+            return self.registry[session_uuid]
+        except KeyError:
+            raise X2goSessionException('No session found for UUID %s' % session_uuid)
 
     def get_profile_id(self, session_uuid):
         """\
@@ -231,7 +234,7 @@ class X2goSessionRegistry(object):
                 if len(self.virgin_sessions_of_profile_name(profile_name)) > 1:
                     del self.registry[_session_uuid]
 
-            elif _last_status['running'] == False and _current_status['running'] == True:
+            elif _last_status['running'] == False and _current_status['running'] == True and not _current_status['faulty']:
                 # session has started
                 if _last_status['connected']:
                     if self(_session_uuid).has_terminal_session():
@@ -252,11 +255,11 @@ class X2goSessionRegistry(object):
                     # from a suspended state
                     self.client_instance.HOOK_on_found_session_running_after_connect(session_uuid=_session_uuid, profile_name=_profile_name, session_name=_session_name)
 
-            elif _last_status['connected'] == True and (_last_status['suspended'] == False and _current_status['suspended'] == True):
+            elif _last_status['connected'] == True and (_last_status['suspended'] == False and _current_status['suspended'] == True) and not _current_status['faulty']:
                 # session has been suspended
                 self(_session_uuid).session_cleanup()
                 self.client_instance.HOOK_on_session_has_been_suspended(session_uuid=_session_uuid, profile_name=_profile_name, session_name=_session_name)
-            elif _last_status['connected'] == True and (_last_status['terminated'] == False and _current_status['terminated'] == True):
+            elif _last_status['connected'] == True and (_last_status['terminated'] == False and _current_status['terminated'] == True) and not _current_status['faulty']:
                 # session has terminated
                 self.client_instance.HOOK_on_session_has_terminated(session_uuid=_session_uuid, profile_name=_profile_name, session_name=_session_name)
                 self(_session_uuid).session_cleanup()
@@ -288,7 +291,7 @@ class X2goSessionRegistry(object):
 
             # make sure the session registry gets updated before registering new session
             # (if the server name has changed, this will kick out obsolete X2goSessions)
-            self.update_status(profile_name=profile_name, session_list=session_list, force_update=True)
+            self.update_status(profile_name=profile_name, session_list=session_list)
             for session_name in session_list.keys():
                 if session_name not in _session_names:
                     server = _ctrl_session.get_server_hostname()
@@ -326,7 +329,7 @@ class X2goSessionRegistry(object):
                                                      **kwargs
                                                     )
                         self(session_uuid).connected = True
-            self.update_status(profile_name=profile_name, session_list=session_list, force_update=True)
+                        self.update_status(session_uuid=session_uuid, session_list=session_list, force_update=True)
 
     def register(self, server, profile_id, profile_name,
                  session_name=None,
@@ -399,7 +402,7 @@ class X2goSessionRegistry(object):
             self(session_uuid).update_params(_params)
             self(session_uuid).set_server(server)
             self(session_uuid).set_profile_name(profile_name)
-            self.logger('using already initially-registered yet-unused session %s' % session_uuid, log.loglevel_NOTICE)
+            self.logger('using already initially-registered yet-unused session %s' % session_uuid, loglevel=log.loglevel_NOTICE)
             return session_uuid
 
         try:
@@ -409,7 +412,7 @@ class X2goSessionRegistry(object):
             self(session_uuid).update_params(_params)
             self(session_uuid).set_server(server)
             self(session_uuid).set_profile_name(profile_name)
-            self.logger('using already registered-by-session-name session %s' % session_uuid, log.loglevel_NOTICE)
+            self.logger('using already registered-by-session-name session %s' % session_uuid, loglevel=log.loglevel_NOTICE)
             return session_uuid
 
         except X2goSessionException:
diff --git a/x2go/session.py b/x2go/session.py
index 4420ed2..7278e34 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -114,7 +114,7 @@ class X2goSession(object):
                  add_to_known_hosts=False,
                  known_hosts=None,
                  logger=None, loglevel=log.loglevel_DEFAULT,
-                 virgin=True, running=None, suspended=None, terminated=None,
+                 virgin=True, running=None, suspended=None, terminated=None, faulty=None,
                  client_instance=None,
                  **params):
         """\
@@ -176,6 +176,8 @@ class X2goSession(object):
         @type suspended: C{bool}
         @param terminated: manipulate session state »terminated« by giving a pre-set value
         @type terminated: C{bool}
+        @param faulty: manipulate session state »faulty« by giving a pre-set value
+        @type faulty: C{bool}
         @param client_instance: if available, the underlying L{X2goClient} instance
         @type client_instance: C{X2goClient} instance
         @param params: further control session, terminal session and SSH proxy class options
@@ -197,6 +199,7 @@ class X2goSession(object):
         self.running = running
         self.suspended = suspended
         self.terminated = terminated
+        self.faulty = faulty
         self.keep_controlsession_alive = keep_controlsession_alive
 
         self.profile_id = profile_id
@@ -212,6 +215,7 @@ class X2goSession(object):
             'running': self.running,
             'suspended': self.suspended,
             'terminated': self.terminated,
+            'faulty': self.faulty,
         }
         self._last_status = None
 
@@ -286,6 +290,9 @@ class X2goSession(object):
         @type chain_port: C{str}
 
         """
+        # mark session as faulty
+        self.faulty = True
+
         if self.client_instance:
             self.client_instance.HOOK_forwarding_tunnel_setup_failed(profile_name=self.profile_name, session_name=self.session_name, chain_host=chain_host, chain_port=chain_port)
         else:
@@ -391,6 +398,7 @@ class X2goSession(object):
                     'running': self.running,
                     'suspended': self.suspended,
                     'terminated': self.terminated,
+                    'faulty': self.faulty,
                 }
                 self._last_status = None
                 self.session_name = None
@@ -729,6 +737,7 @@ class X2goSession(object):
         self.running = None
         self.suspended = None
         self.terminated = None
+        self.faults = None
         retval = self.control_session.disconnect()
         try:
             self.update_status()
@@ -861,6 +870,7 @@ class X2goSession(object):
                 self.running = None
                 self.suspended = None
                 self.terminated = None
+                self.faulty = None
 
         if self.connected:
             try:
@@ -886,9 +896,10 @@ class X2goSession(object):
             'running': self.running,
             'suspended': self.suspended,
             'terminated': self.terminated,
+            'faulty': self.faulty,
         }
 
-        if not self.connected and e:
+        if (not self.connected or self.faulty) and e:
             raise e
 
     __update_status = update_status
@@ -953,6 +964,7 @@ class X2goSession(object):
                 self.suspended = False
                 self.running = True
                 self.terminated = False
+                self.faulty = False
 
                 self.terminal_session = _terminal
                 return True
@@ -1016,6 +1028,7 @@ class X2goSession(object):
                 self.suspended = False
                 self.running = True
                 self.terminated = False
+                self.faulty = False
 
                 return self.running
             else:
@@ -1041,6 +1054,7 @@ class X2goSession(object):
                     self.running = False
                     self.suspended = True
                     self.terminated = False
+                    self.faults = False
                     self.session_cleanup()
                     return True
 
@@ -1050,6 +1064,7 @@ class X2goSession(object):
                     self.running = False
                     self.suspended = True
                     self.terminated = False
+                    self.faulty = False
                     self.session_cleanup()
                     return True
 
@@ -1077,6 +1092,7 @@ class X2goSession(object):
                     self.running = False
                     self.suspended = False
                     self.terminated = True
+                    self.faulty = False
                     self.session_cleanup()
                     return True
 
@@ -1086,6 +1102,7 @@ class X2goSession(object):
                     self.running = False
                     self.suspended = False
                     self.terminated = True
+                    self.faulty = False
                     self.session_cleanup()
                     return True
             else:
@@ -1151,6 +1168,7 @@ class X2goSession(object):
             self.running = None
             self.suspended = None
             self.terminated = None
+            self.faulty = None
         return self.connected
     __is_connected = is_connected
 
@@ -1167,6 +1185,7 @@ class X2goSession(object):
             if self.running:
                 self.suspended = False
                 self.terminated = False
+                self.faulty = False
             if self.virgin and not self.running:
                 self.running = None
         return self.running
@@ -1185,6 +1204,7 @@ class X2goSession(object):
             if self.suspended:
                 self.running = False
                 self.terminated = False
+                self.faulty = False
             if self.virgin and not self.suspended:
                 self.suspended = None
         return self.suspended
@@ -1203,6 +1223,7 @@ class X2goSession(object):
             if self.terminated:
                 self.running = False
                 self.suspended = False
+                self.faulty = False
             if self.virgin and not self.terminated:
                 self.terminated = None
         return self.has_terminated


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