updated coretk to working order for configuring config services from coretk

This commit is contained in:
Blake Harnden 2020-01-21 11:58:43 -08:00
parent da107cc1d9
commit 80a4955bd4
4 changed files with 28 additions and 7 deletions

View file

@ -182,9 +182,10 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
# config service configs # config service configs
for config in request.config_service_configs: for config in request.config_service_configs:
node = self.get_node(session, config.node_id, context) node = self.get_node(session, config.node_id, context)
service = node.config_services[request.name] service = node.config_services[config.name]
if config.config:
service.set_config(config.config) service.set_config(config.config)
for name, template in config.templates.values(): for name, template in config.templates.items():
service.custom_template(name, template) service.custom_template(name, template)
# service file configs # service file configs

View file

@ -730,6 +730,7 @@ class Session:
self.services.add_services(node, node.type, options.services) self.services.add_services(node, node.type, options.services)
# add config services # add config services
logging.info("setting node config services: %s", options.config_services)
for name in options.config_services: for name in options.config_services:
service_class = self.service_manager.get_service(name) service_class = self.service_manager.get_service(name)
node.add_config_service(service_class) node.add_config_service(service_class)

View file

@ -9,7 +9,7 @@ from typing import TYPE_CHECKING, Dict, List
import grpc import grpc
from core.api.grpc import client, common_pb2, core_pb2 from core.api.grpc import client, common_pb2, configservices_pb2, core_pb2
from core.gui import appconfig from core.gui import appconfig
from core.gui.dialogs.mobilityplayer import MobilityPlayer from core.gui.dialogs.mobilityplayer import MobilityPlayer
from core.gui.dialogs.sessions import SessionsDialog from core.gui.dialogs.sessions import SessionsDialog
@ -462,6 +462,7 @@ class CoreClient:
asymmetric_links = [ asymmetric_links = [
x.asymmetric_link for x in self.links.values() if x.asymmetric_link x.asymmetric_link for x in self.links.values() if x.asymmetric_link
] ]
config_service_configs = self.get_config_service_configs_proto()
if self.emane_config: if self.emane_config:
emane_config = {x: self.emane_config[x].value for x in self.emane_config} emane_config = {x: self.emane_config[x].value for x in self.emane_config}
else: else:
@ -482,6 +483,7 @@ class CoreClient:
service_configs, service_configs,
file_configs, file_configs,
asymmetric_links, asymmetric_links,
config_service_configs,
) )
logging.debug( logging.debug(
"start session(%s), result: %s", self.session_id, response.result "start session(%s), result: %s", self.session_id, response.result
@ -871,6 +873,21 @@ class CoreClient:
configs.append(config_proto) configs.append(config_proto)
return configs return configs
def get_config_service_configs_proto(
self
) -> List[configservices_pb2.ConfigServiceConfig]:
config_service_protos = []
for node_id, node_config in self.config_service_configs.items():
for name, service_config in node_config.items():
config_proto = configservices_pb2.ConfigServiceConfig(
node_id=node_id,
name=name,
templates=service_config["templates"],
config=service_config.get("config"),
)
config_service_protos.append(config_proto)
return config_service_protos
def run(self, node_id: int) -> str: def run(self, node_id: int) -> str:
logging.info("running node(%s) cmd: %s", node_id, self.observer) logging.info("running node(%s) cmd: %s", node_id, self.observer)
return self.client.node_command(self.session_id, node_id, self.observer).output return self.client.node_command(self.session_id, node_id, self.observer).output

View file

@ -297,6 +297,7 @@ class ConfigServiceConfigDialog(Dialog):
try: try:
node_config = self.service_configs.setdefault(self.node_id, {}) node_config = self.service_configs.setdefault(self.node_id, {})
service_config = node_config.setdefault(self.service_name, {}) service_config = node_config.setdefault(self.service_name, {})
if self.config_frame:
self.config_frame.parse_config() self.config_frame.parse_config()
service_config["config"] = self.config service_config["config"] = self.config
templates_config = service_config.setdefault("templates", {}) templates_config = service_config.setdefault("templates", {})
@ -343,6 +344,7 @@ class ConfigServiceConfigDialog(Dialog):
filename = self.templates_combobox.get() filename = self.templates_combobox.get()
self.template_text.text.delete(1.0, "end") self.template_text.text.delete(1.0, "end")
self.template_text.text.insert("end", self.temp_service_files[filename]) self.template_text.text.insert("end", self.temp_service_files[filename])
if self.config_frame:
self.config_frame.set_values(self.default_config) self.config_frame.set_values(self.default_config)
self.startup_commands_listbox.delete(0, tk.END) self.startup_commands_listbox.delete(0, tk.END)
self.validate_commands_listbox.delete(0, tk.END) self.validate_commands_listbox.delete(0, tk.END)