X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=tosca2heat%2Ftosca-parser%2Ftoscaparser%2Fentity_template.py;h=cc3d6206896dc34ebd89dca31e1ab51e2c594ca4;hb=69e33063b3703ae4529b556b63b3c4cc239c3d9a;hp=281012b7469f15602706193a10e1189f329595a6;hpb=05fee6dbbe8d0404d68a4d510b4a0929ee0e2025;p=parser.git diff --git a/tosca2heat/tosca-parser/toscaparser/entity_template.py b/tosca2heat/tosca-parser/toscaparser/entity_template.py index 281012b..cc3d620 100644 --- a/tosca2heat/tosca-parser/toscaparser/entity_template.py +++ b/tosca2heat/tosca-parser/toscaparser/entity_template.py @@ -21,6 +21,7 @@ from toscaparser.elements.nodetype import NodeType from toscaparser.elements.policytype import PolicyType from toscaparser.elements.relationshiptype import RelationshipType from toscaparser.properties import Property +from toscaparser.unsupportedtype import UnsupportedType from toscaparser.utils.gettextutils import _ @@ -44,8 +45,9 @@ class EntityTemplate(object): self.entity_tpl = template self.custom_def = custom_def self._validate_field(self.entity_tpl) + type = self.entity_tpl.get('type') + UnsupportedType.validate_type(type) if entity_name == 'node_type': - type = self.entity_tpl.get('type') self.type_definition = NodeType(type, custom_def) \ if type is not None else None if entity_name == 'relationship_type': @@ -57,19 +59,17 @@ class EntityTemplate(object): type = self.entity_tpl['relationship'] else: type = self.entity_tpl['type'] + UnsupportedType.validate_type(type) self.type_definition = RelationshipType(type, None, custom_def) if entity_name == 'policy_type': - type = self.entity_tpl.get('type') if not type: msg = (_('Policy definition of "%(pname)s" must have' ' a "type" ''attribute.') % dict(pname=name)) ExceptionCollector.appendException( ValidationError(msg)) - self.type_definition = PolicyType(type, custom_def) if entity_name == 'group_type': - type = self.entity_tpl.get('type') self.type_definition = GroupType(type, custom_def) \ if type is not None else None self._properties = None @@ -82,6 +82,11 @@ class EntityTemplate(object): if self.type_definition: return self.type_definition.type + @property + def parent_type(self): + if self.type_definition: + return self.type_definition.parent_type + @property def requirements(self): if self._requirements is None: @@ -180,7 +185,10 @@ class EntityTemplate(object): def _validate_capabilities_properties(self, capabilities): for cap, props in capabilities.items(): - capabilitydef = self.get_capability(cap).definition + capability = self.get_capability(cap) + if not capability: + continue + capabilitydef = capability.definition self._common_validate_properties(capabilitydef, props[self.PROPERTIES])