[X2Go-Commits] python-x2go.git - build-baikal (branch) updated: 0.2.0.10-86-gf7bffc7
X2Go dev team
git-admin at x2go.org
Wed Jan 8 15:27:25 CET 2014
The branch, build-baikal has been updated
via f7bffc7d1e9e8c64a3e01e3c79ec8a94ed7b4970 (commit)
from fc277361b4e764ef8f5a9b9c66fbd61b0c7cad40 (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/session.py | 36 ++++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
The diff of changes is:
diff --git a/x2go/session.py b/x2go/session.py
index a399514..752a5a7 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -623,7 +623,8 @@ class X2goSession(object):
# retrieve an up-to-date list of sharable local folders from the client instance
if self.client_instance:
- self.share_local_folders = self.client_instance.get_profile_config(self.profile_name, 'export').keys()
+ _exports = self.client_instance.get_profile_config(self.profile_name, 'export')
+ self.share_local_folders = [ sf for sf in _exports.keys() if _exports[sf] ]
i = 0
while i < max_wait:
@@ -2450,25 +2451,32 @@ class X2goSession(object):
# compat for Python-X2Go (<=0.1.1.6)
if folder_name: local_path=folder_name
+ local_path = unicode(local_path)
+
retval = False
if self.has_terminal_session():
if self.is_folder_sharing_available() and self.is_master_session():
# for the sake of non-blocking I/O: let's pretend the action has already been successful
- if self.shared_folders.has_key(unicode(local_path)):
- self.shared_folders[unicode(local_path)]['status'] = 'mounted'
+ if self.shared_folders.has_key(local_path):
+ self.shared_folders[local_path]['status'] = 'mounted'
else:
- self.shared_folders.update({ unicode(local_path): { 'status': 'new', 'mountpoint': '', }, })
+ self.shared_folders.update({ local_path: { 'status': 'new', 'mountpoint': '', }, })
if self.terminal_session.share_local_folder(local_path=local_path):
if update_exported_folders:
self._update_restore_exported_folders()
retval = True
else:
# remove local_path from folder again if the mounting process failed
- if self.shared_folders[unicode(local_path)]['status'] == 'new':
- del self.shared_folders[unicode(local_path)]
+ if self.shared_folders[local_path]['status'] == 'new':
+ del self.shared_folders[local_path]
else:
- self.shared_folders[unicode(local_path)]['status'] = 'unmounted'
+ self.shared_folders[local_path]['status'] = 'unmounted'
+
+ # disable this local folder in session profile if restoring shared folders for following sessions is activated
+ if self.client_instance and self.restore_shared_local_folders:
+ if local_path in self._restore_exported_folders.keys():
+ self._restore_exported_folders[local_path] = False
else:
raise x2go_exceptions.X2goSessionException('this X2goSession object does not have any associated terminal')
@@ -2525,16 +2533,19 @@ class X2goSession(object):
"""
retval = False
+
+ local_path = unicode(local_path)
+
if self.has_terminal_session():
if self.is_folder_sharing_available() and self.is_master_session() and local_path in self.shared_folders.keys():
# for the sake of non-blocking I/O: let's pretend the action has already been successful
- self.shared_folders[unicode(local_path)]['status'] = 'unmounted'
+ self.shared_folders[local_path]['status'] = 'unmounted'
if self.terminal_session.unshare_local_folder(local_path=local_path):
retval = True
else:
# if unmounting failed restore the status with ,,mounted'', not sure if that works ok...
- self.shared_folders[unicode(local_path)]['status'] = 'mounted'
+ self.shared_folders[local_path]['status'] = 'mounted'
else:
raise x2go_exceptions.X2goSessionException('this X2goSession object does not have any associated terminal')
@@ -2621,14 +2632,15 @@ class X2goSession(object):
break
unshared_folders = False
+
for sf in self.shared_folders.keys():
m = self.shared_folders[sf]['mountpoint']
- if m not in _defacto_mounts:
+ if m and m not in _defacto_mounts:
try:
- if self.shared_folders[sf]['status'] != 'new':
+ if self.shared_folders[sf]['status'] == 'mounted':
self.shared_folders[sf]['status'] = 'unmounted'
+ self.logger('Detected server-side unsharing of client-side folder for profile %s: %s:' % (self.get_profile_name(), sf), loglevel=log.loglevel_INFO)
unshared_folders = True
- self.logger('Detected server-side unsharing of client-side folder for profile %s: %s:' % (self.get_profile_name(), sf), loglevel=log.loglevel_INFO)
except IndexError:
pass
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