import shutil
import urllib
+from toscaparser.functions import GetInput
from toscaparser.tosca_template import ToscaTemplate
from lcm.pub.utils.toscaparser.dataentityext import DataEntityExt
def buidMetadata(self, tosca):
if 'metadata' in tosca.tpl:
- self.metadata = copy.deepcopy(tosca.tpl['metadata'])
\ No newline at end of file
+ self.metadata = copy.deepcopy(tosca.tpl['metadata'])
+
+ def buildProperties(self, nodeTemplate, parsed_params):
+ properties = {}
+ isMappingParams = parsed_params and len(parsed_params) > 0
+ for k, item in nodeTemplate.get_properties().items():
+ properties[k] = item.value
+ if isinstance(item.value, GetInput):
+ if item.value.result() and isMappingParams:
+ properties[k] = DataEntityExt.validate_datatype(item.type, item.value.result())
+ else:
+ tmp = {}
+ tmp[item.value.name] = item.value.input_name
+ properties[k] = tmp
+ if 'attributes' in nodeTemplate.entity_tpl:
+ for k, item in nodeTemplate.entity_tpl['attributes'].items():
+ properties[k] = str(item)
+ return properties
+
+ def buildProperties(self, nodeTemplate, parsed_params):
+ properties = {}
+ isMappingParams = parsed_params and len(parsed_params) > 0
+ for k, item in nodeTemplate.get_properties().items():
+ properties[k] = item.value
+ if isinstance(item.value, GetInput):
+ if item.value.result() and isMappingParams:
+ properties[k] = DataEntityExt.validate_datatype(item.type, item.value.result())
+ else:
+ tmp = {}
+ tmp[item.value.name] = item.value.input_name
+ properties[k] = tmp
+ if 'attributes' in nodeTemplate.entity_tpl:
+ for k, item in nodeTemplate.entity_tpl['attributes'].items():
+ properties[k] = str(item)
+ return properties
+
+
+ def verify_properties(self, props, inputs, parsed_params):
+ ret_props = {}
+ if (props and len(props) > 0):
+ for key, value in props.items():
+ ret_props[key] = self._verify_value(value, inputs, parsed_params)
+ # if isinstance(value, str):
+ # ret_props[key] = self._verify_string(inputs, parsed_params, value);
+ # continue
+ # if isinstance(value, list):
+ # ret_props[key] = map(lambda x: self._verify_dict(inputs, parsed_params, x), value)
+ # continue
+ # if isinstance(value, dict):
+ # ret_props[key] = self._verify_map(inputs, parsed_params, value)
+ # continue
+ # ret_props[key] = value
+ return ret_props
\ No newline at end of file
def buildNode(self, nodeTemplate, inputs, parsed_params):
ret ={}
- # ret['name'] = nodeTemplate.name
- # ret['nodeType'] = nodeTemplate.type
- # if 'description' in nodeTemplate.entity_tpl:
- # ret['description'] = nodeTemplate.entity_tpl['description']
- # else:
- # ret['description'] = ''
- # props = self.buildProperties(nodeTemplate, parsed_params)
- # ret['properties'] = self.verify_properties(props, inputs, parsed_params)
+ ret['name'] = nodeTemplate.name
+ ret['nodeType'] = nodeTemplate.type
+ if 'description' in nodeTemplate.entity_tpl:
+ ret['description'] = nodeTemplate.entity_tpl['description']
+ else:
+ 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)
# self.buildArtifacts(nodeTemplate, inputs, ret)
# interfaces = self.build_interfaces(nodeTemplate)
# if interfaces: ret['interfaces'] = interfaces
- return ret
\ No newline at end of file
+ return ret