From b6f68e0b06a59c19cd13499966c0a1f3503b5dfc Mon Sep 17 00:00:00 2001 From: Huy Pham <42948410+hpham@users.noreply.github.com> Date: Mon, 20 Jan 2020 16:01:46 -0800 Subject: [PATCH] destroy any mobility player dialog before joinning a different session, pass in old_session_id to Menuaction.cleanup_old_session() so that the old session is deleted rather than the new one --- daemon/core/gui/coreclient.py | 4 +++- daemon/core/gui/menuaction.py | 11 ++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/daemon/core/gui/coreclient.py b/daemon/core/gui/coreclient.py index 8beffc49..e4fd5fac 100644 --- a/daemon/core/gui/coreclient.py +++ b/daemon/core/gui/coreclient.py @@ -121,6 +121,8 @@ class CoreClient: self.emane_config = None self.service_configs.clear() self.file_configs.clear() + for mobility_player in self.mobility_players.values(): + mobility_player.handle_close() self.mobility_players.clear() # clear streams if self.handling_throughputs: @@ -408,7 +410,7 @@ class CoreClient: session_id = self.session_id try: response = self.client.delete_session(session_id) - logging.info("deleted session result: %s", response) + logging.info("deleted session(%s) result: %s", session_id, response) except grpc.RpcError as e: self.app.after(0, show_grpc_error, e) diff --git a/daemon/core/gui/menuaction.py b/daemon/core/gui/menuaction.py index 5767d4b1..c9ca355e 100644 --- a/daemon/core/gui/menuaction.py +++ b/daemon/core/gui/menuaction.py @@ -32,10 +32,10 @@ class MenuAction: self.app = app self.canvas = app.canvas - def cleanup_old_session(self): + def cleanup_old_session(self, session_id): logging.info("cleaning up old session") self.app.core.stop_session() - self.app.core.delete_session() + self.app.core.delete_session(session_id) def prompt_save_running_session(self, quitapp: bool = False): """ @@ -49,7 +49,12 @@ class MenuAction: callback = None if quitapp: callback = self.app.quit - task = BackgroundTask(self.app, self.cleanup_old_session, callback) + task = BackgroundTask( + self.app, + self.cleanup_old_session, + callback, + (self.app.core.session_id,), + ) task.start() elif quitapp: self.app.quit()