summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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