예제 #1
0
 def _create_capabilities(self):
     capability = []
     caps = self.type_definition.get_value(self.CAPABILITIES,
                                           self.entity_tpl)
     if caps:
         for name, props in caps.items():
             capabilities = self.type_definition.get_capabilities()
             if name in capabilities.keys():
                 c = capabilities[name]
                 cap = Capability(name, props['properties'], c)
                 capability.append(cap)
     return capability
예제 #2
0
    def _create_capability(self, capabilitydefs, name, ctype, props):
        c = capabilitydefs.get(name)
        if ctype and (not c or ctype != c.type):
            c = CapabilityTypeDef(name, ctype, self.type_definition.type,
                                  self.type_definition.custom_def)
        properties = {}
        # first use the definition default value
        if c.properties:
            for property_name in c.properties.keys():
                prop_def = c.properties[property_name]
                if 'default' in prop_def:
                    properties[property_name] = prop_def['default']
        # then update (if available) with the node properties
        if props:
            properties.update(props)

        return Capability(name, properties, c, self.custom_def)
예제 #3
0
    def _create_capabilities(self):
        capability = []
        caps = self.type_definition.get_value(self.CAPABILITIES,
                                              self.entity_tpl, True)
        if caps:
            for name, props in caps.items():
                capabilities = self.type_definition.get_capabilities()
                if name in capabilities.keys():
                    c = capabilities[name]
                    properties = {}
                    # first use the definition default value
                    if c.properties:
                        for property_name in c.properties.keys():
                            prop_def = c.properties[property_name]
                            if 'default' in prop_def:
                                properties[property_name] = prop_def['default']
                    # then update (if available) with the node properties
                    if 'properties' in props and props['properties']:
                        properties.update(props['properties'])

                    cap = Capability(name, properties, c)
                    capability.append(cap)
        return capability
예제 #4
0
 def build_node_capability(cap: Capability):
     properties = "[" \
         + ", ".join([build_node_property(prop) for prop in cap.get_properties_objects()]) \
         + "]"
     return f"capability({cap.name}, {properties})"