Add parser convert vnfd plugin1 31/10131/2
authorying.yunlong <ying.yunlong@zte.com.cn>
Mon, 4 Sep 2017 05:15:27 +0000 (13:15 +0800)
committeryunlong ying <ying.yunlong@zte.com.cn>
Mon, 4 Sep 2017 05:41:48 +0000 (05:41 +0000)
After parse the vnfd package, add
get_all_plugin function to convert
 the plugin info.

Change-Id: I6d28f28ed687b225cec11e9a0601ee99d3b52a7e
Issue-ID: VFC-252
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
lcm/pub/utils/toscaparser/vnfdmodel.py

index 166690b..2deb87f 100644 (file)
@@ -39,6 +39,7 @@ class EtsiVnfdInfoModel(EtsiNsdInfoModel):
         self.vdus = self._get_all_vdu(nodeTemplates)
         self.vls = self.get_all_vl(nodeTemplates)
         self.cps = self.get_all_cp(nodeTemplates)
+        self.plugins = self.get_all_plugin(nodeTemplates)
 
 
     def _get_all_services(self, nodeTemplates):
@@ -251,3 +252,20 @@ class EtsiVnfdInfoModel(EtsiNsdInfoModel):
                     cp['vls'] = vls
                 cps.append(cp)
         return cps
+
+    def get_all_plugin(self, node_templates):
+        plugins = []
+        for node in node_templates:
+            if self._isPlugin(node):
+                plugin = {}
+                plugin['plugin_id'] = node['name']
+                plugin['description'] = node['description']
+                plugin['properties'] = node['properties']
+                if 'interfaces' in node:
+                    plugin['interfaces'] = node['interfaces']
+
+                plugins.append(plugin)
+        return plugins
+
+    def _isPlugin(self, node):
+        return node['nodeType'].lower().find('.plugin.') >= 0 or node['nodeType'].lower().endswith('.plugin')