The branch, master 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 ----------------------------------------------------------------- commit f7bffc7d1e9e8c64a3e01e3c79ec8a94ed7b4970 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed Nov 21 10:33:29 2012 +0100 more work on the folder mounting code ----------------------------------------------------------------------- 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).