added config service manager to CoreEmu and made it possible to create a session and nodes with config services from a script
This commit is contained in:
parent
191a9e9909
commit
dcc683dd38
8 changed files with 41 additions and 37 deletions
|
@ -161,6 +161,9 @@ class Session:
|
|||
"host": ("DefaultRoute", "SSH"),
|
||||
}
|
||||
|
||||
# config services
|
||||
self.service_manager = None
|
||||
|
||||
@classmethod
|
||||
def get_node_class(cls, _type: NodeTypes) -> Type[NodeBase]:
|
||||
"""
|
||||
|
@ -726,6 +729,11 @@ class Session:
|
|||
logging.debug("set node type: %s", node.type)
|
||||
self.services.add_services(node, node.type, options.services)
|
||||
|
||||
# add config services
|
||||
for name in options.config_services:
|
||||
service_class = self.service_manager.get_service(name)
|
||||
node.add_config_service(service_class)
|
||||
|
||||
# ensure default emane configuration
|
||||
if isinstance(node, EmaneNet) and options.emane:
|
||||
self.emane.set_model_config(_id, options.emane)
|
||||
|
@ -1602,7 +1610,8 @@ class Session:
|
|||
logging.info("booting node(%s): %s", node.name, [x.name for x in node.services])
|
||||
self.add_remove_control_interface(node=node, remove=False)
|
||||
self.services.boot_services(node)
|
||||
node.start_config_services()
|
||||
for service in node.config_services.values():
|
||||
service.start()
|
||||
|
||||
def boot_nodes(self) -> List[Exception]:
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue