def test_find_container_node_names(): """Test find_container_node_names() API function.""" with NodeStrategy([]) as node: node_names = get_node_names(node=node) with DirectNode([]) as node: assert len(find_container_node_names(node=node, node_names=node_names)) == 0 assert len(find_container_node_names(node=node, node_names=[])) == 0
def main(self, *, args): with NodeStrategy(args) as node: node_names = get_node_names(node=node) with DirectNode(args) as node: container_node_names = find_container_node_names( node=node, node_names=node_names) if args.container_node_name is not None: if args.container_node_name not in [ n.full_name for n in container_node_names ]: return "Unable to find container node '" + args.container_node_name + "'" if not args.containers_only: components = get_container_components_info( node=node, remote_container_node_name=args.container_node_name) if any(components): print(*[ '{} {}'.format(c.uid, c.name) for c in components ], sep='\n') else: for n in container_node_names: print(n.full_name) if not args.containers_only: components = get_container_components_info( node=node, remote_container_node_name=n.full_name) if any(components): print(*[ ' ' + '{} {}'.format(c.uid, c.name) for c in components ], sep='\n')
def main(self, *, args): with NodeStrategy(args) as node: node_names = get_node_names(node=node) with DirectNode(args) as node: container_node_names = find_container_node_names( node=node, node_names=node_names) rclpy.init() node = rclpy.create_node(NODE_NAME_PREFIX + '_component_load_requester') try: if args.container_node_name in [ n.full_name for n in container_node_names ]: return load_component_into_container( node=node, remote_container_node_name=args.container_node_name, package_name=args.package_name, plugin_name=args.plugin_name, node_name=args.node_name, node_namespace=args.node_namespace, log_level=args.log_level, remap_rules=args.remap_rules, parameters=args.parameters, extra_arguments=args.extra_arguments) else: return "Unable to find container node '" + args.container_node_name + "'" finally: node.destroy_node() rclpy.shutdown()
def main(self, *, args): with NodeStrategy(args) as node: node_names = get_node_names(node=node) with DirectNode(args) as node: container_node_names = find_container_node_names( node=node, node_names=node_names ) rclpy.init() node = rclpy.create_node(NODE_NAME_PREFIX + '_component_list_requester') try: if args.container_node_name is not None: if args.container_node_name not in [n.full_name for n in container_node_names]: return "Unable to find container node '" + args.container_node_name + "'" if not args.containers_only: components = get_container_components_info( node=node, remote_container_node_name=args.container_node_name ) if any(components): print(*['{} {}'.format(c.uid, c.name) for c in components], sep='\n') else: for n in container_node_names: print(n.full_name) if not args.containers_only: components = get_container_components_info( node=node, remote_container_node_name=n.full_name ) if any(components): print(*[ 2 * ' ' + '{} {}'.format(c.uid, c.name) for c in components ], sep='\n') finally: node.destroy_node() rclpy.shutdown()
def main(self, *, args): with NodeStrategy(args) as node: container_node_names = find_container_node_names( node=node, node_names=get_node_names(node=node)) if args.container_node_name not in [ n.full_name for n in container_node_names ]: return "Unable to find container node '" + args.container_node_name + "'" component_uid, component_name = load_component_into_container( node=node, remote_container_node_name=args.container_node_name, package_name=args.package_name, plugin_name=args.plugin_name, node_name=args.node_name, node_namespace=args.node_namespace, log_level=args.log_level, remap_rules=args.remap_rules, parameters=args.parameters, extra_arguments=args.extra_arguments) if not args.quiet: print("Loaded component {} into '{}' container node as '{}'". format(component_uid, args.container_node_name, component_name)) else: print('{} {}'.format(component_uid, component_name))
def main(self, *, args): with NodeStrategy(args) as node: node_names = get_node_names(node=node) with DirectNode(args) as node: container_node_names = find_container_node_names( node=node, node_names=node_names) rclpy.init() node = rclpy.create_node(NODE_NAME_PREFIX + '_component_load_requester') if args.container_node_name in [ n.full_name for n in container_node_names ]: return unload_component_from_container( node=node, remote_container_node_name=args.container_node_name, component_uids=args.component_uid) else: return "Unable to find container node '" + args.container_node_name + "'"
def main(self, *, args): with NodeStrategy(args) as node: container_node_names = find_container_node_names( node=node, node_names=get_node_names(node=node)) if args.container_node_name not in [ n.full_name for n in container_node_names ]: return "Unable to find container node '" + args.container_node_name + "'" for uid, error, reason in unload_component_from_container( node=node, remote_container_node_name=args.container_node_name, component_uids=args.component_uid): if error: return "Failed to unload component {} from '{}' container node\n {}".format( uid, args.container_node_name, reason.capitalize()) if not args.quiet: print("Unloaded component {} from '{}' container node". format(uid, args.container_node_name)) else: print(uid)
def main(self, *, args): with NodeStrategy(args) as node: container_node_names = find_container_node_names( node=node, node_names=get_node_names(node=node)) if args.container_node_name is not None: if args.container_node_name not in [ n.full_name for n in container_node_names ]: return "Unable to find container node '" + args.container_node_name + "'" if not args.containers_only: ok, outcome = get_components_in_container( node=node, remote_container_node_name=args.container_node_name) if not ok: return f'{outcome} when listing components in {args.container_node_name}' if any(outcome): print(*[ f'{component.uid} {component.name}' for component in outcome ], sep='\n') else: results = get_components_in_containers( node=node, remote_containers_node_names=[ n.full_name for n in container_node_names ]) for container_node_name, (ok, outcome) in results.items(): print(container_node_name) if not args.containers_only: if not ok: print(f'{outcome} when listing components') continue if any(outcome): print(*[ f' {component.uid} {component.name}' for component in outcome ], sep='\n')