gui: improved throughputs start/stop to coincide with session start and stop based on a tracked variable
This commit is contained in:
parent
03775c2c3c
commit
e0a21fb099
2 changed files with 17 additions and 7 deletions
|
@ -70,6 +70,9 @@ class CoreClient:
|
|||
self.session: Optional[Session] = None
|
||||
self.user = getpass.getuser()
|
||||
|
||||
# menu options
|
||||
self.show_throughputs: tk.BooleanVar = tk.BooleanVar(value=False)
|
||||
|
||||
# global service settings
|
||||
self.services: Dict[str, Set[str]] = {}
|
||||
self.config_services_groups: Dict[str, Set[str]] = {}
|
||||
|
@ -242,6 +245,7 @@ class CoreClient:
|
|||
logger.warning("unknown node event: %s", event)
|
||||
|
||||
def enable_throughputs(self) -> None:
|
||||
if not self.handling_throughputs:
|
||||
self.handling_throughputs = self.client.throughputs(
|
||||
self.session.id, self.handle_throughputs
|
||||
)
|
||||
|
@ -431,13 +435,15 @@ class CoreClient:
|
|||
definition,
|
||||
result,
|
||||
)
|
||||
if self.show_throughputs.get():
|
||||
self.enable_throughputs()
|
||||
except grpc.RpcError as e:
|
||||
self.app.show_grpc_exception("Start Session Error", e)
|
||||
return result, exceptions
|
||||
|
||||
def stop_session(self, session_id: int = None) -> bool:
|
||||
if not session_id:
|
||||
session_id = self.session.id
|
||||
session_id = session_id or self.session.id
|
||||
self.cancel_throughputs()
|
||||
result = False
|
||||
try:
|
||||
result = self.client.stop_session(session_id)
|
||||
|
|
|
@ -235,7 +235,11 @@ class Menubar(tk.Menu):
|
|||
menu.add_command(
|
||||
label="Configure Throughput", command=self.click_config_throughput
|
||||
)
|
||||
menu.add_checkbutton(label="Enable Throughput?", command=self.click_throughput)
|
||||
menu.add_checkbutton(
|
||||
label="Enable Throughput?",
|
||||
command=self.click_throughput,
|
||||
variable=self.core.show_throughputs,
|
||||
)
|
||||
widget_menu.add_cascade(label="Throughput", menu=menu)
|
||||
|
||||
def draw_widgets_menu(self) -> None:
|
||||
|
@ -393,7 +397,7 @@ class Menubar(tk.Menu):
|
|||
dialog.show()
|
||||
|
||||
def click_throughput(self) -> None:
|
||||
if not self.core.handling_throughputs:
|
||||
if self.core.show_throughputs.get():
|
||||
self.core.enable_throughputs()
|
||||
else:
|
||||
self.core.cancel_throughputs()
|
||||
|
|
Loading…
Reference in a new issue