Esempio n. 1
0
 def _handle_get_capability_spec(self, req):
     rospy.loginfo("Servicing request for get capability spec '{0}'...".format(req.capability_spec))
     response = GetCapabilitySpecResponse()
     for package_name, package_dict in self.spec_file_index.items():
         for spec_type in ['capability_interface', 'semantic_capability_interface', 'capability_provider']:
             for path in package_dict[spec_type]:
                 with open(path, 'r') as f:
                     raw = f.read()
                     default_provider = ''
                     # If a capability interface, try to lookup the default provider
                     iface = None
                     if spec_type == 'capability_interface':
                         iface = capability_interface_from_string(raw, path)
                     if spec_type == 'semantic_capability_interface':
                         iface = semantic_capability_interface_from_string(raw, path)
                     if spec_type in ['capability_interface', 'semantic_capability_interface']:
                         iface.name = '{package}/{name}'.format(package=package_name, name=iface.name)
                         if iface.name not in self.__default_providers:
                             default_provider = ''
                         else:
                             default_provider = self.__default_providers[iface.name]
                     if iface and iface.name == req.capability_spec:
                         response.capability_spec = CapabilitySpec(package_name, spec_type, raw, default_provider)
                         return response
     raise RuntimeError("Could not find requested spec '{0}'".format(req.capability_spec))
Esempio n. 2
0
 def _handle_get_capability_spec(self, req):
     rospy.loginfo("Servicing request for get capability spec '{0}'...".format(req.capability_spec))
     response = GetCapabilitySpecResponse()
     for package_name, package_dict in self.spec_file_index.items():
         for spec_type in ['capability_interface', 'semantic_capability_interface', 'capability_provider']:
             for path in package_dict[spec_type]:
                 with open(path, 'r') as f:
                     raw = f.read()
                     default_provider = ''
                     # If a capability interface, try to lookup the default provider
                     iface = None
                     if spec_type == 'capability_interface':
                         iface = capability_interface_from_string(raw, path)
                     if spec_type == 'semantic_capability_interface':
                         iface = semantic_capability_interface_from_string(raw, path)
                     if spec_type in ['capability_interface', 'semantic_capability_interface']:
                         iface.name = '{package}/{name}'.format(package=package_name, name=iface.name)
                         if iface.name not in self.__default_providers:
                             default_provider = ''
                         else:
                             default_provider = self.__default_providers[iface.name]
                     if iface and iface.name == req.capability_spec:
                         response.capability_spec = CapabilitySpec(package_name, spec_type, raw, default_provider)
                         return response
     raise RuntimeError("Could not find requested spec '{0}'".format(req.capability_spec))
def test_semantic_capability_interface_from_string():
    test_file = 'Minimal.yaml'
    checker, expected_exception, expected_exception_regex = test_files_map[test_file]
    test_file_path = os.path.join(test_data_dir, test_file)
    with open(test_file_path, 'r') as f:
        with assert_raises_regex(expected_exception, expected_exception_regex):
            cp = si.semantic_capability_interface_from_string(f.read())
            checker(cp)
Esempio n. 4
0
def test_semantic_capability_interface_from_string():
    test_file = 'Minimal.yaml'
    checker, expected_exception, expected_exception_regex = test_files_map[test_file]
    test_file_path = os.path.join(test_data_dir, test_file)
    with open(test_file_path, 'r') as f:
        with assert_raises_regex(expected_exception, expected_exception_regex):
            cp = si.semantic_capability_interface_from_string(f.read())
            checker(cp)
Esempio n. 5
0
 def _handle_get_capability_specs(self, req):
     rospy.loginfo("Servicing request for capability specs...")
     response = GetCapabilitySpecsResponse()
     for package_name, package_dict in self.spec_file_index.items():
         for spec_type in ["capability_interface", "semantic_capability_interface", "capability_provider"]:
             for path in package_dict[spec_type]:
                 with open(path, "r") as f:
                     raw = f.read()
                     default_provider = ""
                     # If a capability interface, try to lookup the default provider
                     iface = None
                     if spec_type == "capability_interface":
                         iface = capability_interface_from_string(raw, path)
                     if spec_type == "semantic_capability_interface":
                         iface = semantic_capability_interface_from_string(raw, path)
                     if spec_type in ["capability_interface", "semantic_capability_interface"]:
                         iface.name = "{package}/{name}".format(package=package_name, name=iface.name)
                         if iface.name not in self.__default_providers:
                             default_provider = ""
                         else:
                             default_provider = self.__default_providers[iface.name]
                     cs = CapabilitySpec(package_name, spec_type, raw, default_provider)
                     response.capability_specs.append(cs)
     return response
Esempio n. 6
0
 def semantic_capability_loader(interface_tuple, package_name, spec_index):
     raw, default_provider = interface_tuple
     si = semantic_capability_interface_from_string(raw)
     si.default_provider = default_provider
     spec_index.add_semantic_interface(si, 'service call', package_name)
Esempio n. 7
0
 def semantic_capability_loader(interface_tuple, package_name, spec_index):
     raw, default_provider = interface_tuple
     si = semantic_capability_interface_from_string(raw)
     si.default_provider = default_provider
     spec_index.add_semantic_interface(si, 'service call', package_name)