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
示例#2
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')
示例#3
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)
     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()
示例#4
0
文件: list.py 项目: codebot/ros2cli
    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))
示例#6
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)
     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)
示例#8
0
文件: list.py 项目: InigoMonreal/rcc
 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')