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
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)
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
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})"