The branch, build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d has been updated via 2689544a7184a8509b4c5ed4021b1f560f4894e6 (commit) from a1c77b0af5b5f817b501d40574ca382d58922345 (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: pyhoca-gui | 4 +++- pyhoca/wxgui/frontend.py | 49 +++++++++++++++++++++++++++++++++++----------- pyhoca/wxgui/logon.py | 6 +----- 3 files changed, 42 insertions(+), 17 deletions(-) The diff of changes is: diff --git a/pyhoca-gui b/pyhoca-gui index 53c2e62..2b1508f 100755 --- a/pyhoca-gui +++ b/pyhoca-gui @@ -77,7 +77,9 @@ x2go_gui_options = [ {'args':['-P','--session-profile'], 'default': None, 'help': 'directly connect to a session profile', }, {'args':['--auto-connect'], 'default': False, 'action': 'store_true', 'help': 'connect sessions via SSH pubkey authentication if possible', }, {'args':['--start-on-connect'], 'default': False, 'action': 'store_true', 'help': 'start a session directly after authentication', }, - {'args':['--resume-on-connect'], 'default': False, 'action': 'store_true', 'help': 'if there is only one session it will be auto-resume', }, + {'args':['--resume-newest-on-connect', '--resume-on-connect'], 'default': False, 'action': 'store_true', 'help': ' on connect auto-resume the newest suspended session', }, + {'args':['--resume-oldest-on-connect'], 'default': False, 'action': 'store_true', 'help': ' on connect auto-resume the oldest suspended session', }, + {'args':['--resume-all-on-connect'], 'default': False, 'action': 'store_true', 'help': 'auto-resume all suspended session on connect', }, ] def parseargs(): diff --git a/pyhoca/wxgui/frontend.py b/pyhoca/wxgui/frontend.py index 9e8f5d7..b0297e2 100644 --- a/pyhoca/wxgui/frontend.py +++ b/pyhoca/wxgui/frontend.py @@ -196,7 +196,9 @@ class PyHocaGUI(wx.App, x2go.X2goClient): gevent.spawn(self._auto_connect, session_uuid) self.start_on_connect = self.args.start_on_connect - self.resume_on_connect =self.args.resume_on_connect + self.resume_newest_on_connect =self.args.resume_newest_on_connect + self.resume_oldest_on_connect =self.args.resume_oldest_on_connect + self.resume_all_on_connect =self.args.resume_all_on_connect def _auto_connect(self, session_uuid): @@ -224,15 +226,45 @@ class PyHocaGUI(wx.App, x2go.X2goClient): if not self._X2goClient__list_sessions(session_uuid): self.OnSessionStart(evt) - def _resume_on_connect(self, evt, session_uuid): + def _resume_newest_on_connect(self, evt, session_uuid): session_infos = self._X2goClient__list_sessions(session_uuid) - if session_infos: + if session_infos: newest_session_name = x2go.utils.session_names_by_timestamp(session_infos)[-1] - self._eventid_sessionnames_map[evt.GetId()] = newest_session_name - self.OnSessionResume(evt) + self._resume_on_connect(evt, session_uuid, newest_session_name) return True return False + def _resume_oldest_on_connect(self, evt, session_uuid): + session_infos = self._X2goClient__list_sessions(session_uuid) + if session_infos: + newest_session_name = x2go.utils.session_names_by_timestamp(session_infos)[0] + self._resume_on_connect(evt, session_uuid, newest_session_name) + return True + return False + + def _resume_all_on_connect(self, evt, session_uuid): + session_infos = self._X2goClient__list_sessions(session_uuid) + if session_infos: + for session_name in session_infos.keys(): + self._resume_on_connect(evt, session_uuid, session_name) + return True + return False + + def _resume_on_connect(self, evt, session_uuid, session_name): + self._eventid_sessionnames_map[evt.GetId()] = session_name + self.OnSessionResume(evt) + + def _post_authenticate(self, evt, session_uuid): + # try SSH key auth first + if self.resume_newest_on_connect: + _resumed = self._resume_newest_on_connect(evt, session_uuid) + elif self.resume_oldest_on_connect: + _resumed = self._resume_oldest_on_connect(evt, session_uuid) + elif self.resume_all_on_connect: + _resumed = self._resume_all_on_connect(evt, session_uuid) + if not _resumed and self.start_on_connect: + self._start_on_connect(evt, session_uuid) + def OnSessionAuthenticate(self, evt): """\ STILL UNDOCUMENTED @@ -242,15 +274,10 @@ class PyHocaGUI(wx.App, x2go.X2goClient): self.current_profile_name = profile_name session_uuid = self._X2goClient__register_session(profile_name=self.current_profile_name) try: - # try SSH key auth first self._X2goClient__connect_session(session_uuid) - if self.resume_on_connect: - _resumed = self._resume_on_connect(evt, session_uuid) - if not _resumed and self.start_on_connect: - self._start_on_connect(evt, session_uuid) + self._post_authenticate(evt, session_uuid) except x2go.AuthenticationException: logon.PyHocaGUI_DialogBoxPassword(self, caller=self, current_profile_name=profile_name) - if self._X2goClient__is_session_connected(session_uuid): self._pyhoca_logger('authentication to server has been successful', x2go.loglevel_INFO, ) else: diff --git a/pyhoca/wxgui/logon.py b/pyhoca/wxgui/logon.py index 9285d46..6f3e240 100644 --- a/pyhoca/wxgui/logon.py +++ b/pyhoca/wxgui/logon.py @@ -167,11 +167,7 @@ class PyHocaGUI_DialogBoxPassword(sc.SizedFrame): session_uuid = self._PyHocaGUI._X2goClient__client_registered_sessions_of_name(self.current_profile_name)[0].get_uuid() self._PyHocaGUI._X2goClient__connect_session(session_uuid, username=username, password=password, force_password_auth=True) - if self._PyHocaGUI.resume_on_connect: - _resumed = self._PyHocaGUI._resume_on_connect(evt, session_uuid) - if not _resumed and self._PyHocaGUI.start_on_connect: - self._PyHocaGUI._start_on_connect(evt, session_uuid) - + self._PyHocaGUI._post_authenticate(evt, session_uuid) self.Destroy() def OnCancel(self, evt): hooks/post-receive -- pyhoca-gui.git (Python X2Go Client (wxPython GUI)) 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 "pyhoca-gui.git" (Python X2Go Client (wxPython GUI)).