[X2Go-Commits] python-x2go.git - brokerclient (branch) updated: 0.1.0.3-32-g21c4a93
X2Go dev team
git-admin at x2go.org
Tue Jan 7 16:20:43 CET 2014
The branch, brokerclient has been updated
via 21c4a93cb38b98a7c20a39b91d5faeaab88c77db (commit)
from 2051ce5c73f9abe4d0124173f1bb784684202560 (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 | 2 ++
x2go/backends/control/_stdout.py | 4 ----
x2go/session.py | 46 +++++++++++++++++++++++++-------------
3 files changed, 32 insertions(+), 20 deletions(-)
The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index b5f5cab..c2d04af 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,6 +15,8 @@ python-x2go (0.1.1.0-0~x2go1) UNRELEASED; urgency=low
- Fix multiple notifications for the same session state change, reliably
differentiate between found sessions after connect and newly started
sessions from another client.
+ - Mark terminals as PENDING even before the X2goTerminalSession object is
+ created.
-- Mike Gabriel <mike at mimino.das-netzwerkteam.de> Wed, 22 Jun 2011 01:20:48 +0200
diff --git a/x2go/backends/control/_stdout.py b/x2go/backends/control/_stdout.py
index 5c7ce76..98cda04 100644
--- a/x2go/backends/control/_stdout.py
+++ b/x2go/backends/control/_stdout.py
@@ -563,10 +563,6 @@ class X2goControlSessionSTDOUT(paramiko.SSHClient):
_success = False
if session_name is not None:
- if self.is_running(session_name):
- self.suspend(session_name)
- gevent.sleep(10)
-
try:
_success = _terminal.resume()
except x2go_exceptions.X2goFwTunnelException:
diff --git a/x2go/session.py b/x2go/session.py
index 01441c7..8893583 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -624,6 +624,8 @@ class X2goSession(object):
@rtype: C{X2goControlTerminal*} instance
"""
+ if self.terminal_session == 'PENDING':
+ return None
return self.terminal_session
__get_terminal_session = get_terminal_session
@@ -636,7 +638,7 @@ class X2goSession(object):
"""
- return self.terminal_session is not None
+ return self.terminal_session not in (None, 'PENDING')
__has_terminal_session = has_terminal_session
def check_host(self):
@@ -936,25 +938,30 @@ class X2goSession(object):
@rtype: C{bool}
"""
+ self.terminal_session == 'PENDING'
_new_session = False
if self.session_name is None:
self.session_name = session_name
if self.is_alive():
_control = self.control_session
- _terminal = _control.resume(session_name=self.session_name,
- session_instance=self,
- logger=self.logger, **self.terminal_params)
+
+ if _control.is_running(session_name):
+ _control.suspend(session_name)
+ gevent.sleep(10)
+
+ self.terminal_session = _control.resume(session_name=self.session_name,
+ session_instance=self,
+ logger=self.logger, **self.terminal_params)
if self.session_name is None:
_new_session = True
- self.session_name = _terminal.session_info.name
+ self.session_name = self.terminal_session.session_info.name
- if _terminal is not None:
+ if self.terminal_session != 'PENDING':
- self.terminal_session = _terminal
if SUPPORTED_SOUND and self.terminal_session.params.snd_system is not 'none':
- _terminal.start_sound()
+ self.terminal_session.start_sound()
if (SUPPORTED_PRINTING and self.printing) or \
(SUPPORTED_MIMEBOX and self.allow_mimebox) or \
@@ -990,6 +997,7 @@ class X2goSession(object):
return True
else:
+ self.terminal_session = None
return False
return self.running
@@ -1031,12 +1039,13 @@ class X2goSession(object):
@rtype: C{bool}
"""
+ self.terminal_session = 'PENDING'
if self.is_alive():
_control = self.control_session
- _terminal = _control.share_desktop(desktop=desktop, user=user, display=display, share_mode=share_mode,
- logger=self.logger, **self.terminal_params)
+ self.terminal_session = _control.share_desktop(desktop=desktop, user=user, display=display, share_mode=share_mode,
+ logger=self.logger, **self.terminal_params)
- if _terminal:
+ if self.terminal_session != 'PENDING':
self.terminal_session = _terminal
self.session_name = self.terminal_session.session_info.name
@@ -1052,6 +1061,7 @@ class X2goSession(object):
return self.running
else:
+ self.terminal_session = None
return False
else:
@@ -1169,7 +1179,7 @@ class X2goSession(object):
@rtype: C{bool}
"""
- if self.terminal_session is not None:
+ if self.has_terminal_session():
return self.terminal_session.ok()
return False
__session_ok = session_ok
@@ -1262,10 +1272,13 @@ class X2goSession(object):
@rtype: C{bool}
"""
- if self.allow_share_local_folders:
- return self.terminal_session.share_local_folder(folder_name=folder_name)
+ if self.has_terminal_session():
+ if self.allow_share_local_folders:
+ return self.terminal_session.share_local_folder(folder_name=folder_name)
+ else:
+ self.logger('local folder sharing is disabled for this session profile', loglevel=log.loglevel_WARN)
else:
- self.logger('local folder sharing is disabled for this session profile', loglevel=log.loglevel_WARN)
+ raise X2goSessionException('this X2goSession object does not have any associated terminal')
__share_local_folder = share_local_folder
def session_cleanup(self):
@@ -1275,5 +1288,6 @@ class X2goSession(object):
"""
if self.has_terminal_session():
self.terminal_session.release_proxy()
+ if self.has_terminal_session():
self.terminal_session.__del__()
- self.terminal_session = None
+ self.terminal_session = 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