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

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


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