コード例 #1
0
def get_node_names(*, node, include_hidden_nodes=False):
    node_names = get_all_node_names(node=node,
                                    include_hidden_nodes=include_hidden_nodes)
    service_names_and_types = get_service_names_and_types(node=node)
    return [
        n for n in node_names if _has_lifecycle(n, service_names_and_types)
    ]
コード例 #2
0
def get_services_for_type(service_type, services_glob, include_hidden=False):
    """ Returns a list of services as specific service type """
    # Filter the list of services by whether they are public before returning.
    services_names_and_types = get_service_names_and_types(
        node=_node, include_hidden_services=include_hidden)
    # service[0] has the topic name and service[1] has the type wrapped in a list.
    services_for_type = [
        service[0] for service in services_names_and_types
        if service[1][0] == service_type
    ]
    return filter_globs(services_glob, services_for_type)
コード例 #3
0
    def main(self, *, args):
        with NodeStrategy(args) as node:
            service_names_and_types = get_service_names_and_types(
                node=node,
                include_hidden_services=args.include_hidden_services)

        for (service_name, service_types) in service_names_and_types:
            if args.service_name == service_name:
                for service_type in service_types:
                    print(service_type)
                return 0

        return 1
コード例 #4
0
    def main(self, *, args):
        with NodeStrategy(args) as node:
            service_names_and_types = get_service_names_and_types(
                node=node,
                include_hidden_services=args.include_hidden_services)

        if args.count_services:
            print(len(service_names_and_types))
        elif service_names_and_types:
            for (service_name, service_types) in service_names_and_types:
                msg = '{service_name}'
                service_types_formatted = ', '.join(service_types)
                if args.show_types:
                    msg += ' [{service_types_formatted}]'
                print(msg.format_map(locals()))
コード例 #5
0
    def main(self, *, args):
        with NodeStrategy(args) as node:
            service_names_and_types = get_service_names_and_types(
                node=node,
                include_hidden_services=args.include_hidden_services)

        filtered_services = []
        for (service_name, service_type) in service_names_and_types:
            if args.service_type in service_type:
                filtered_services.append(service_name)

        if args.count_services:
            print(len(filtered_services))
        else:
            for filtered_service in filtered_services:
                print(filtered_service)
コード例 #6
0
ファイル: scanner.py プロジェクト: vmayoral/aztarna
    def ros2service(self, domain_id):
        print('Exploring ROS_DOMAIN_ID: ' + str(domain_id) + ' for services')
        os.environ['ROS_DOMAIN_ID'] = str(domain_id)

        with NodeStrategy('-t') as node:
            service_names_and_types = get_service_names_and_types(node=node)
        output_service = {}
        if service_names_and_types:
            for (service_name, service_types) in service_names_and_types:
                output_service[service_name] = {
                    'domain': domain_id,
                    'type': str(service_types).replace('[',
                                                       '').replace(']', '')
                }

        self.processed_services.append(output_service)