Fix StatefulEntityType when entitytype is not define 79/41379/1
authorshangxdy <shang.xiaodong@zte.com.cn>
Fri, 8 Sep 2017 08:32:09 +0000 (16:32 +0800)
committershangxdy <shang.xiaodong@zte.com.cn>
Fri, 8 Sep 2017 08:32:09 +0000 (16:32 +0800)
Currently, if a entity type is not defined, the defs in
StatefulEntityType will be none, then the access to self.defs will raise
error, finally the parser will be crushed. this patch will enhance it.

JIRA: PARSER-153

Change-Id: I5db50102e9c63428298ce6c8ecbf38e3bd8e57f8
Signed-off-by: shangxdy <shang.xiaodong@zte.com.cn>
tosca2heat/tosca-parser/toscaparser/elements/capabilitytype.py
tosca2heat/tosca-parser/toscaparser/elements/statefulentitytype.py

index 5fa9661..23c5afc 100644 (file)
@@ -25,7 +25,7 @@ class CapabilityTypeDef(StatefulEntityType):
         self.nodetype = ntype
         self.properties = None
         self.custom_def = custom_def
-        if self.PROPERTIES in self.defs:
+        if self.defs and self.PROPERTIES in self.defs:
             self.properties = self.defs[self.PROPERTIES]
         self.parent_capabilities = self._get_parent_capabilities(custom_def)
 
index 2f221b3..28ee697 100644 (file)
@@ -46,7 +46,8 @@ class StatefulEntityType(EntityType):
             elif custom_def and entitytype in list(custom_def.keys()):
                 self.defs = custom_def[entitytype]
             else:
-                self.defs = None
+                # avoid errors if self.defs = none
+                self.defs = {}
                 ExceptionCollector.appendException(
                     InvalidTypeError(what=entitytype))
         self.type = entitytype