From efd233d6f89a9e7dd1cfe5a98c652cbd41b74921 Mon Sep 17 00:00:00 2001
From: reinaortega <miguelangel.reinaortega@etsi.org>
Date: Fri, 30 Jul 2021 08:51:33 +0200
Subject: [PATCH] Bug 261 - Fixes for the imports in nsp and common yaml files

Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org>
---
 src/doc2tosca.py | 48 ++++++++++++++++++++++++++++++++++++------------
 1 file changed, 36 insertions(+), 12 deletions(-)

diff --git a/src/doc2tosca.py b/src/doc2tosca.py
index b05c15f..6ea05a7 100644
--- a/src/doc2tosca.py
+++ b/src/doc2tosca.py
@@ -30,7 +30,9 @@ metadata:
   template_name: etsi_nfv_sol001_{model}_types
   template_author: ETSI_NFV
   template_version: {spec_version}
+'''
 
+IMPORTS = '''
 imports:
   {imports}
 
@@ -113,7 +115,7 @@ def is_tosca_def(table):
         match_definition_incipit(txt)
 
 
-def tosca_model_info(name, version, imports):
+def tosca_model_info(name, version, imports=None):
     '''
     Returns a dictionary to hold information on the model
     '''
@@ -291,25 +293,47 @@ def generate_header(
     buf.write(HDR.format(
         tosca_version=tosca_version,
         model=model_name,
-        spec_version=spec_version,
-        imports=imports))
+        spec_version=spec_version
+        ))
+    if imports is not None:
+        buf.write(IMPORTS.format(
+            imports=imports
+            ))
 
 
 def init_models(yaml_root, spec_ver, tosc_ver):
     for model in MODEL_NAMES:
-        import_stmt = 'etsi_nfv_sol001_common_types.yaml'
+        import_common_stmt = 'etsi_nfv_sol001_common_types.yaml'
+        import_vnfd_stmt = 'etsi_nfv_sol001_vnfd_types.yaml'
+        import_pnfd_stmt = 'etsi_nfv_sol001_pnfd_types.yaml'
 
         if yaml_root != 'local':
-            import_stmt = \
+            import_common_stmt = \
                 'https://forge.etsi.org/rep/nfv/SOL001/raw/{}/{}'.format(
-                    spec_ver, import_stmt
+                    spec_ver, import_common_stmt
                 )
-
-        MODELS[model] = tosca_model_info(
-            model,
-            spec_ver,
-            '- ' + import_stmt
-        )
+            import_vnfd_stmt = \
+                'https://forge.etsi.org/rep/nfv/SOL001/raw/{}/{}'.format(
+                    spec_ver, import_vnfd_stmt
+                )
+            import_pnfd_stmt = \
+                'https://forge.etsi.org/rep/nfv/SOL001/raw/{}/{}'.format(
+                    spec_ver, import_pnfd_stmt
+                )
+        imports = '- ' + import_common_stmt
+        if model != 'common':
+            if model == 'nsd':
+                imports = imports + '\n' + '  - ' + import_vnfd_stmt + '\n' + '  - ' + import_pnfd_stmt
+            MODELS[model] = tosca_model_info(
+                model,
+                spec_ver,
+                imports
+            )
+        else:
+            MODELS[model] = tosca_model_info(
+                model,
+                spec_ver
+            )
 
     for mod in MODELS:
         generate_header(
-- 
GitLab