pygui: updates to leveraged wrapped grpc client for proper type hinting without manual conversion
This commit is contained in:
parent
be0e0175a2
commit
f7f54d9aa6
11 changed files with 160 additions and 294 deletions
|
@ -86,12 +86,12 @@ class ConfigServiceConfigDialog(Dialog):
|
|||
self.validation_time = service.validation_timer
|
||||
self.validation_period.set(service.validation_period)
|
||||
|
||||
response = self.core.client.get_config_service_defaults(self.service_name)
|
||||
self.original_service_files = response.templates
|
||||
defaults = self.core.client.get_config_service_defaults(self.service_name)
|
||||
self.original_service_files = defaults.templates
|
||||
self.temp_service_files = dict(self.original_service_files)
|
||||
self.modes = sorted(x.name for x in response.modes)
|
||||
self.mode_configs = {x.name: x.config for x in response.modes}
|
||||
self.config = ConfigOption.from_dict(response.config)
|
||||
self.modes = sorted(defaults.modes)
|
||||
self.mode_configs = defaults.modes
|
||||
self.config = ConfigOption.from_dict(defaults.config)
|
||||
self.default_config = {x.name: x.value for x in self.config.values()}
|
||||
service_config = self.node.config_service_configs.get(self.service_name)
|
||||
if service_config:
|
||||
|
|
|
@ -134,7 +134,7 @@ class MobilityPlayerDialog(Dialog):
|
|||
session_id = self.app.core.session.id
|
||||
try:
|
||||
self.app.core.client.mobility_action(
|
||||
session_id, self.node.id, MobilityAction.START.value
|
||||
session_id, self.node.id, MobilityAction.START
|
||||
)
|
||||
except grpc.RpcError as e:
|
||||
self.app.show_grpc_exception("Mobility Error", e)
|
||||
|
@ -144,7 +144,7 @@ class MobilityPlayerDialog(Dialog):
|
|||
session_id = self.app.core.session.id
|
||||
try:
|
||||
self.app.core.client.mobility_action(
|
||||
session_id, self.node.id, MobilityAction.PAUSE.value
|
||||
session_id, self.node.id, MobilityAction.PAUSE
|
||||
)
|
||||
except grpc.RpcError as e:
|
||||
self.app.show_grpc_exception("Mobility Error", e)
|
||||
|
@ -154,7 +154,7 @@ class MobilityPlayerDialog(Dialog):
|
|||
session_id = self.app.core.session.id
|
||||
try:
|
||||
self.app.core.client.mobility_action(
|
||||
session_id, self.node.id, MobilityAction.STOP.value
|
||||
session_id, self.node.id, MobilityAction.STOP
|
||||
)
|
||||
except grpc.RpcError as e:
|
||||
self.app.show_grpc_exception("Mobility Error", e)
|
||||
|
|
|
@ -260,17 +260,17 @@ class NodeConfigDialog(Dialog):
|
|||
row += 1
|
||||
|
||||
if nutils.is_rj45(self.node):
|
||||
response = self.app.core.client.get_ifaces()
|
||||
logging.debug("host machine available interfaces: %s", response)
|
||||
ifaces = ListboxScroll(frame)
|
||||
ifaces.listbox.config(state=state)
|
||||
ifaces.grid(
|
||||
ifaces = self.app.core.client.get_ifaces()
|
||||
logging.debug("host machine available interfaces: %s", ifaces)
|
||||
ifaces_scroll = ListboxScroll(frame)
|
||||
ifaces_scroll.listbox.config(state=state)
|
||||
ifaces_scroll.grid(
|
||||
row=row, column=0, columnspan=2, sticky=tk.EW, padx=PADX, pady=PADY
|
||||
)
|
||||
for inf in sorted(response.ifaces[:]):
|
||||
ifaces.listbox.insert(tk.END, inf)
|
||||
for inf in sorted(ifaces):
|
||||
ifaces_scroll.listbox.insert(tk.END, inf)
|
||||
row += 1
|
||||
ifaces.listbox.bind("<<ListboxSelect>>", self.iface_select)
|
||||
ifaces_scroll.listbox.bind("<<ListboxSelect>>", self.iface_select)
|
||||
|
||||
# interfaces
|
||||
if self.canvas_node.ifaces:
|
||||
|
|
|
@ -106,10 +106,8 @@ class RunToolDialog(Dialog):
|
|||
for selection in self.node_list.listbox.curselection():
|
||||
node_name = self.node_list.listbox.get(selection)
|
||||
node_id = self.executable_nodes[node_name]
|
||||
response = self.app.core.client.node_command(
|
||||
_, output = self.app.core.client.node_command(
|
||||
self.app.core.session.id, node_id, command
|
||||
)
|
||||
self.result.text.insert(
|
||||
tk.END, f"> {node_name} > {command}:\n{response.output}\n"
|
||||
)
|
||||
self.result.text.insert(tk.END, f"> {node_name} > {command}:\n{output}\n")
|
||||
self.result.text.config(state=tk.DISABLED)
|
||||
|
|
|
@ -7,7 +7,12 @@ from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple
|
|||
import grpc
|
||||
from PIL.ImageTk import PhotoImage
|
||||
|
||||
from core.api.grpc.wrappers import Node, NodeServiceData, ServiceValidationMode
|
||||
from core.api.grpc.wrappers import (
|
||||
Node,
|
||||
NodeServiceData,
|
||||
ServiceConfig,
|
||||
ServiceValidationMode,
|
||||
)
|
||||
from core.gui import images
|
||||
from core.gui.dialogs.copyserviceconfig import CopyServiceConfigDialog
|
||||
from core.gui.dialogs.dialog import Dialog
|
||||
|
@ -455,16 +460,17 @@ class ServiceConfigDialog(Dialog):
|
|||
or self.is_custom_directory()
|
||||
):
|
||||
startup, validate, shutdown = self.get_commands()
|
||||
config = self.core.set_node_service(
|
||||
self.node.id,
|
||||
self.service_name,
|
||||
dirs=self.temp_directories,
|
||||
config = ServiceConfig(
|
||||
node_id=self.node.id,
|
||||
service=self.service_name,
|
||||
files=list(self.filename_combobox["values"]),
|
||||
startups=startup,
|
||||
validations=validate,
|
||||
shutdowns=shutdown,
|
||||
directories=self.temp_directories,
|
||||
startup=startup,
|
||||
validate=validate,
|
||||
shutdown=shutdown,
|
||||
)
|
||||
self.node.service_configs[self.service_name] = config
|
||||
service_data = self.core.set_node_service(self.node.id, config)
|
||||
self.node.service_configs[self.service_name] = service_data
|
||||
for file in self.modified_files:
|
||||
file_configs = self.node.service_file_configs.setdefault(
|
||||
self.service_name, {}
|
||||
|
|
|
@ -27,8 +27,7 @@ class SessionOptionsDialog(Dialog):
|
|||
def get_config(self) -> Dict[str, ConfigOption]:
|
||||
try:
|
||||
session_id = self.app.core.session.id
|
||||
response = self.app.core.client.get_session_options(session_id)
|
||||
return ConfigOption.from_dict(response.config)
|
||||
return self.app.core.client.get_session_options(session_id)
|
||||
except grpc.RpcError as e:
|
||||
self.app.show_grpc_exception("Get Session Options Error", e)
|
||||
self.has_error = True
|
||||
|
@ -55,8 +54,8 @@ class SessionOptionsDialog(Dialog):
|
|||
config = self.config_frame.parse_config()
|
||||
try:
|
||||
session_id = self.app.core.session.id
|
||||
response = self.app.core.client.set_session_options(session_id, config)
|
||||
logging.info("saved session config: %s", response)
|
||||
result = self.app.core.client.set_session_options(session_id, config)
|
||||
logging.info("saved session config: %s", result)
|
||||
except grpc.RpcError as e:
|
||||
self.app.show_grpc_exception("Set Session Options Error", e)
|
||||
self.destroy()
|
||||
|
|
|
@ -30,10 +30,9 @@ class SessionsDialog(Dialog):
|
|||
|
||||
def get_sessions(self) -> List[SessionSummary]:
|
||||
try:
|
||||
response = self.app.core.client.get_sessions()
|
||||
logging.info("sessions: %s", response)
|
||||
sessions = sorted(response.sessions, key=lambda x: x.id)
|
||||
return [SessionSummary.from_proto(x) for x in sessions]
|
||||
sessions = self.app.core.client.get_sessions()
|
||||
logging.info("sessions: %s", sessions)
|
||||
return sorted(sessions, key=lambda x: x.id)
|
||||
except grpc.RpcError as e:
|
||||
self.app.show_grpc_exception("Get Sessions Error", e)
|
||||
self.destroy()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue