summaryrefslogtreecommitdiffstats
path: root/tosca2heat/tosca-parser/toscaparser
diff options
context:
space:
mode:
authorshangxdy <shang.xiaodong@zte.com.cn>2016-06-15 00:24:41 +0800
committershangxdy <shang.xiaodong@zte.com.cn>2016-07-01 16:49:31 +0800
commitb41406e9eead948744645720db0c49c3998488cd (patch)
tree022a926144a62d9494df139a9dfa6d52a0054337 /tosca2heat/tosca-parser/toscaparser
parent37c637988622dde3425390fb861800ffdaf2b6cb (diff)
The grouptype's parent_type definition is error
1. Group type define parent_type, but it shall be statuefulentity, not string, so the method of is_derived_from in group entity may be error when it's called. 2. The bug will submit to openstack community. Change-Id: I6e78b9dbf9ad0593db9246d34be29d8ec6f092ed JIRA: PARSER-54 Signed-off-by: shangxdy <shang.xiaodong@zte.com.cn>
Diffstat (limited to 'tosca2heat/tosca-parser/toscaparser')
-rw-r--r--tosca2heat/tosca-parser/toscaparser/elements/grouptype.py11
-rw-r--r--tosca2heat/tosca-parser/toscaparser/tests/test_toscadef.py1
2 files changed, 12 insertions, 0 deletions
diff --git a/tosca2heat/tosca-parser/toscaparser/elements/grouptype.py b/tosca2heat/tosca-parser/toscaparser/elements/grouptype.py
index ec5571c..5587f05 100644
--- a/tosca2heat/tosca-parser/toscaparser/elements/grouptype.py
+++ b/tosca2heat/tosca-parser/toscaparser/elements/grouptype.py
@@ -52,6 +52,17 @@ class GroupType(StatefulEntityType):
self._validate_metadata(self.meta_data)
@property
+ def parent_type(self):
+ '''Return a group statefulentity of this entity is derived from.'''
+ if not hasattr(self, 'defs'):
+ return None
+ pgroup_entity = self.derived_from(self.defs)
+ if pgroup_entity:
+ return GroupType(pgroup_entity, self.custom_def)
+ else:
+ return None
+
+ @property
def description(self):
return self.group_description
diff --git a/tosca2heat/tosca-parser/toscaparser/tests/test_toscadef.py b/tosca2heat/tosca-parser/toscaparser/tests/test_toscadef.py
index f0a87ac..9c2ce35 100644
--- a/tosca2heat/tosca-parser/toscaparser/tests/test_toscadef.py
+++ b/tosca2heat/tosca-parser/toscaparser/tests/test_toscadef.py
@@ -60,6 +60,7 @@ class ToscaDefTest(TestCase):
def test_group(self):
self.assertEqual(group_type.type, "tosca.groups.Root")
+ self.assertEqual(group_type.parent_type, None)
self.assertIn(ifaces.LIFECYCLE_SHORTNAME, group_type.interfaces)
def test_capabilities(self):