[X2Go-Commits] [python-x2go] 01/02: make the TeKi client startup once more more robust...

git-admin at x2go.org git-admin at x2go.org
Wed Jul 9 20:08:28 CEST 2014


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository python-x2go.

commit d68f163ab9c2e00e20b35a1691230cd13e4188d1
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jul 2 22:53:13 2014 +0200

    make the TeKi client startup once more more robust...
---
 x2go/telekinesis.py |   48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/x2go/telekinesis.py b/x2go/telekinesis.py
index f14c4e7..74f6097 100644
--- a/x2go/telekinesis.py
+++ b/x2go/telekinesis.py
@@ -219,9 +219,6 @@ class X2GoTelekinesisClient(threading.Thread):
         self._keepalive = True
         self.tekiclient = None
 
-        if self.session_info is None or self.ssh_transport is None:
-            return None
-
         try:
             os.makedirs(self.session_info.local_container)
         except OSError, e:
@@ -249,31 +246,31 @@ class X2GoTelekinesisClient(threading.Thread):
 
         cmd_line = self._generate_cmdline()
 
-        if self.session_info and self.session_info.local_container:
-            self.tekiclient_log_stdout = open('%s/%s' % (self.session_info.local_container, self.tekiclient_log, ), 'a')
-            self.tekiclient_log_stderr = open('%s/%s' % (self.session_info.local_container, self.tekiclient_log, ), 'a')
-            self.logger('forking threaded subprocess: %s' % " ".join(cmd_line), loglevel=log.loglevel_DEBUG)
+        self.tekiclient_log_stdout = open('%s/%s' % (self.session_info.local_container, self.tekiclient_log, ), 'a')
+        self.tekiclient_log_stderr = open('%s/%s' % (self.session_info.local_container, self.tekiclient_log, ), 'a')
+        self.logger('forking threaded subprocess: %s' % " ".join(cmd_line), loglevel=log.loglevel_DEBUG)
 
-            while not self.tekiclient:
-                gevent.sleep(.2)
-                p = self.tekiclient = subprocess.Popen(cmd_line,
-                                                  env=self.TEKICLIENT_ENV,
-                                                  stdin=None,
-                                                  stdout=self.tekiclient_log_stdout,
-                                                  stderr=self.tekiclient_log_stderr,
-                                                  shell=False)
+        while not self.tekiclient:
+            gevent.sleep(.2)
+            p = self.tekiclient = subprocess.Popen(cmd_line,
+                                                   env=self.TEKICLIENT_ENV,
+                                                   stdin=None,
+                                                   stdout=self.tekiclient_log_stdout,
+                                                   stderr=self.tekiclient_log_stderr,
+                                                   shell=False)
 
-            while self._keepalive:
-                gevent.sleep(1)
+        while self._keepalive:
+            gevent.sleep(1)
 
-            try:
-                p.terminate()
-                self.logger('terminating Telekinesis client: %s' % p, loglevel=log.loglevel_DEBUG)
-            except OSError, e:
-                if e.errno == 3:
-                    # No such process
-                    pass
+        try:
+            p.terminate()
+            self.logger('terminating Telekinesis client: %s' % p, loglevel=log.loglevel_DEBUG)
+        except OSError, e:
+            if e.errno == 3:
+                # No such process
+                pass
 
+        # once all is over...
         self.tekiclient = None
 
     def _update_local_tekictrl_socket(self, port):
@@ -304,6 +301,9 @@ class X2GoTelekinesisClient(threading.Thread):
         # set up Telekinesis data channel first... (via an SSHFS mount)
         self.logger('Connecting Telekinesis data channel first via SSHFS host=127.0.0.1, port=%s.' % (self.session_info.tekidata_port,), loglevel=log.loglevel_DEBUG)
 
+        if self.session_info is None or self.ssh_transport is None or not self.session_info.local_container:
+            return None, False
+
         try:
             if self.ssh_transport.getpeername()[0] in ('::1', '127.0.0.1', 'localhost', 'localhost.localdomain'):
                 self.local_tekidata_port += 10000

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/python-x2go.git


More information about the x2go-commits mailing list