Add relationship of node template associated with tosca template in 77/17977/1
authorshangxdy <shang.xiaodong@zte.com.cn>
Wed, 3 Aug 2016 18:50:00 +0000 (02:50 +0800)
committershangxdy <shang.xiaodong@zte.com.cn>
Wed, 3 Aug 2016 18:50:00 +0000 (02:50 +0800)
substitution mapping

As a nested template desinger;
I want to known the tosca template which a substituted node template
associated;
So i will create the relationship under node template which is
substituted.

JIRA:PARSER-76

Change-Id: Ifb9883e5c5f630cd7f1b5d1292eddb54ad4c20be
Signed-off-by: shangxdy <shang.xiaodong@zte.com.cn>
tosca2heat/tosca-parser/toscaparser/nodetemplate.py
tosca2heat/tosca-parser/toscaparser/substitution_mappings.py
tosca2heat/tosca-parser/toscaparser/tests/test_topology_template.py
tosca2heat/tosca-parser/toscaparser/tosca_template.py

index d90b73a..10eae33 100644 (file)
@@ -48,7 +48,7 @@ class NodeTemplate(EntityTemplate):
         self.available_rel_tpls = available_rel_tpls
         self.available_rel_types = available_rel_types
         self._relationships = {}
-        self.substitution_mapped = False
+        self.substitution_mapped = None
 
     @property
     def relationships(self):
index dc953b0..20ec947 100644 (file)
@@ -53,8 +53,6 @@ class Substitution_mappings(object):
         self._capabilities = None
         self._requirements = None
 
-        self.sub_mapped_node_template.substitution_mapped = True
-
     @classmethod
     def get_node_type(cls, sub_mapping_def):
         if isinstance(sub_mapping_def, dict):
index 3d1b55d..6e3eb62 100644 (file)
@@ -161,4 +161,4 @@ class TopologyTemplateTest(TestCase):
         self.assertIsNotNone(system_tosca_template)
         self.assertEqual(
             len(system_tosca_template.
-                nested_tosca_templates_with_topology), 3)
+                nested_tosca_templates_with_topology), 4)
index 28fa57b..80cb1cb 100644 (file)
@@ -231,12 +231,12 @@ class ToscaTemplate(object):
                         yaml_dict_tpl=tosca_tpl,
                         sub_mapped_node_template=nodetemplate)
                     if nested_template.has_substitution_mappings():
-                        fnames = \
-                            [tpl.path for tpl in
-                             self.nested_tosca_templates_with_topology]
-                        if fname not in fnames:
-                            self.nested_tosca_templates_with_topology.\
-                                append(nested_template)
+                        # Record the nested templates in top level template
+                        self.nested_tosca_templates_with_topology.\
+                            append(nested_template)
+                        # Set the substitution toscatemplate for mapped node
+                        nodetemplate.sub_mapping_tosca_template = \
+                            nested_template
 
     def _validate_field(self):
         version = self._tpl_version()