pygui: updates to leveraged wrapped grpc client for proper type hinting without manual conversion

This commit is contained in:
Blake Harnden 2021-03-26 10:43:45 -07:00
parent be0e0175a2
commit f7f54d9aa6
11 changed files with 160 additions and 294 deletions

View file

@ -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:

View file

@ -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)

View file

@ -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:

View file

@ -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)

View file

@ -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, {}

View file

@ -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()

View file

@ -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()