summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorying.yunlong <ying.yunlong@zte.com.cn>2017-08-19 14:16:55 +0800
committerying.yunlong <ying.yunlong@zte.com.cn>2017-08-19 14:16:55 +0800
commitfebb17409fe1185cf5549a4eaf258a26693654a4 (patch)
treeaf055233066dbe53919eb524feac428b8a989298
parent0c1fee01e08e9f8e1332cb89542bad92110b0bde (diff)
Add build_requirements and buildCapabilities
Implementing build_requirements and buildCapabilities Methods. Change-Id: I7457d1de200c72f743685b6321b627361b4dd373 Issue-ID: VFC-114 Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
-rw-r--r--lcm/pub/utils/toscaparser/basemodel.py24
-rw-r--r--lcm/pub/utils/toscaparser/nsdmodel.py4
2 files changed, 25 insertions, 3 deletions
diff --git a/lcm/pub/utils/toscaparser/basemodel.py b/lcm/pub/utils/toscaparser/basemodel.py
index ae29194b..143120e6 100644
--- a/lcm/pub/utils/toscaparser/basemodel.py
+++ b/lcm/pub/utils/toscaparser/basemodel.py
@@ -1,5 +1,7 @@
import copy
+import json
import os
+import re
import shutil
import urllib
@@ -153,4 +155,24 @@ class BaseInfoModel(object):
# ret_props[key] = self._verify_map(inputs, parsed_params, value)
# continue
# ret_props[key] = value
- return ret_props \ No newline at end of file
+ return ret_props
+
+ def build_requirements(self, node_template):
+ rets = []
+ for req in node_template.requirements:
+ for req_name, req_value in req.items():
+ if (isinstance(req_value, dict)):
+ if ('node' in req_value and req_value['node'] not in node_template.templates):
+ continue # No target requirement for aria parser, not add to result.
+ rets.append({req_name : req_value})
+ return rets
+
+ def buildCapabilities(self, nodeTemplate, inputs, ret):
+ capabilities = json.dumps(nodeTemplate.entity_tpl.get('capabilities', None))
+ match = re.findall(r'\{"get_input":\s*"([\w|\-]+)"\}',capabilities)
+ for m in match:
+ aa= [input_def for input_def in inputs
+ if m == input_def.name][0]
+ capabilities = re.sub(r'\{"get_input":\s*"([\w|\-]+)"\}', json.dumps(aa.default), capabilities,1)
+ if capabilities != 'null':
+ ret['capabilities'] = json.loads(capabilities) \ No newline at end of file
diff --git a/lcm/pub/utils/toscaparser/nsdmodel.py b/lcm/pub/utils/toscaparser/nsdmodel.py
index 1a31fac1..f0512068 100644
--- a/lcm/pub/utils/toscaparser/nsdmodel.py
+++ b/lcm/pub/utils/toscaparser/nsdmodel.py
@@ -51,8 +51,8 @@ class EtsiNsdInfoModel(BaseInfoModel):
ret['description'] = ''
props = self.buildProperties(nodeTemplate, parsed_params)
ret['properties'] = self.verify_properties(props, inputs, parsed_params)
- # ret['requirements'] = self.build_requirements(nodeTemplate)
- # self.buildCapabilities(nodeTemplate, inputs, ret)
+ ret['requirements'] = self.build_requirements(nodeTemplate)
+ self.buildCapabilities(nodeTemplate, inputs, ret)
# self.buildArtifacts(nodeTemplate, inputs, ret)
# interfaces = self.build_interfaces(nodeTemplate)
# if interfaces: ret['interfaces'] = interfaces