Fix vfc-catalog parse ns package bugs 81/19181/1
authorying.yunlong <ying.yunlong@zte.com.cn>
Tue, 17 Oct 2017 06:44:39 +0000 (14:44 +0800)
committerying.yunlong <ying.yunlong@zte.com.cn>
Tue, 17 Oct 2017 06:44:39 +0000 (14:44 +0800)
Change-Id: I921b8b06b60c2481e433dde7b19693af170a61d9
Issue-ID: VFC-537
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
catalog/pub/utils/toscaparser/basemodel.py

index 91dfc7d..1b28b59 100644 (file)
@@ -60,17 +60,22 @@ class BaseInfoModel(object):
     def _create_tosca_template(self, file_name, valid_params):
         tosca_tpl = None
         try:
-            tosca_tpl = ToscaTemplate(file_name, valid_params)
-            print "-----------------------------"
-            print '\n'.join(['%s:%s' % item for item in tosca_tpl.__dict__.items()])
-            print "-----------------------------"
-            return tosca_tpl
+            tosca_tpl = ToscaTemplate(path=file_name,
+                                      parsed_params=valid_params,
+                                      no_required_paras_check=True,
+                                      debug_mode=True)
+        except Exception as e:
+            print e.message
         finally:
             if tosca_tpl is not None and hasattr(tosca_tpl, "temp_dir") and os.path.exists(tosca_tpl.temp_dir):
                 try:
                     shutil.rmtree(tosca_tpl.temp_dir)
                 except Exception as e:
                     logger.error("Failed to create tosca template, error: %s", e.message)
+            print "-----------------------------"
+            print '\n'.join(['%s:%s' % item for item in tosca_tpl.__dict__.items()])
+            print "-----------------------------"
+            return tosca_tpl
 
     def _check_download_file(self, path):
         if (path.startswith("ftp") or path.startswith("sftp")):
@@ -148,6 +153,7 @@ class BaseInfoModel(object):
     def buidMetadata(self, tosca):
         if 'metadata' in tosca.tpl:
             self.metadata = copy.deepcopy(tosca.tpl['metadata'])
+            self.metadata['id'] = tosca.tpl['metadata']['invariantUUID']
 
     def buildProperties(self, nodeTemplate, parsed_params):
         properties = {}
@@ -217,7 +223,8 @@ class BaseInfoModel(object):
         return None
 
     def isVnf(self, node):
-        return node['nodeType'].upper().find('.VNF.') >= 0 or node['nodeType'].upper().endswith('.VNF')
+        # return node['nodeType'].upper().find('.VNF.') >= 0 or node['nodeType'].upper().endswith('.VNF')
+        return node['nodeType'].upper().find('.VF.') >= 0 or node['nodeType'].upper().endswith('.VF')
 
     def isPnf(self, node):
         return node['nodeType'].upper().find('.PNF.') >= 0 or node['nodeType'].upper().endswith('.PNF')