Change-Id: I34557c4493fb71b857386c222c43c8485ede24d0
Issue-ID: VFC-456
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
import copy
import ftplib
import json
import copy
import ftplib
import json
import os
import re
import shutil
import os
import re
import shutil
from lcm.pub.utils.toscaparser.dataentityext import DataEntityExt
from lcm.pub.utils.toscaparser.dataentityext import DataEntityExt
+logger = logging.getLogger(__name__)
+
class BaseInfoModel(object):
class BaseInfoModel(object):
valid_params = self._validate_input_params(file_name, params)
return self._create_tosca_template(file_name, valid_params)
finally:
valid_params = self._validate_input_params(file_name, params)
return self._create_tosca_template(file_name, valid_params)
finally:
- if file_name != None and file_name != path and os.path.exists(file_name):
+ if file_name is not None and file_name != path and os.path.exists(file_name):
try:
os.remove(file_name)
try:
os.remove(file_name)
- except Exception, e:
- pass
+ except Exception as e:
+ logger.error("Failed to parse package, error: %s", e.message)
def _validate_input_params(self, path, params):
valid_params = {}
if params and len(params) > 0:
tmp = self._create_tosca_template(path, None)
def _validate_input_params(self, path, params):
valid_params = {}
if params and len(params) > 0:
tmp = self._create_tosca_template(path, None)
- for key,value in params.items():
+ for key, value in params.items():
if hasattr(tmp, 'inputs') and len(tmp.inputs) > 0:
for input_def in tmp.inputs:
if (input_def.name == key):
if hasattr(tmp, 'inputs') and len(tmp.inputs) > 0:
for input_def in tmp.inputs:
if (input_def.name == key):
print "-----------------------------"
return tosca_tpl
finally:
print "-----------------------------"
return tosca_tpl
finally:
- if tosca_tpl != None and hasattr(tosca_tpl, "temp_dir") and os.path.exists(tosca_tpl.temp_dir):
+ 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)
try:
shutil.rmtree(tosca_tpl.temp_dir)
- except Exception, e:
- pass
+ except Exception as e:
+ logger.error("Failed to create tosca template, error: %s", e.message)
def _check_download_file(self, path):
if (path.startswith("ftp") or path.startswith("sftp")):
def _check_download_file(self, path):
if (path.startswith("ftp") or path.startswith("sftp")):
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get(remoteFileName, localFileName)
finally:
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get(remoteFileName, localFileName)
finally:
def ftp_get(self, userName, userPwd, hostIp, hostPort, remoteFileName, localFileName):
f = None
try:
def ftp_get(self, userName, userPwd, hostIp, hostPort, remoteFileName, localFileName):
f = None
try:
ftp.retrbinary('RETR ' + remoteFileName, f.write, 1024)
f.close()
finally:
ftp.retrbinary('RETR ' + remoteFileName, f.write, 1024)
f.close()
finally:
f.close()
def buidMetadata(self, tosca):
f.close()
def buidMetadata(self, tosca):
properties[k] = str(item)
return properties
properties[k] = str(item)
return properties
def verify_properties(self, props, inputs, parsed_params):
ret_props = {}
if (props and len(props) > 0):
def verify_properties(self, props, inputs, parsed_params):
ret_props = {}
if (props and len(props) > 0):
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.
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})
+ rets.append({req_name: req_value})
return rets
def buildCapabilities(self, nodeTemplate, inputs, ret):
capabilities = json.dumps(nodeTemplate.entity_tpl.get('capabilities', None))
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)
+ match = re.findall(r'\{"get_input":\s*"([\w|\-]+)"\}', capabilities)
- 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)
+ 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)
def buildArtifacts(self, nodeTemplate, inputs, ret):
artifacts = json.dumps(nodeTemplate.entity_tpl.get('artifacts', None))
if capabilities != 'null':
ret['capabilities'] = json.loads(capabilities)
def buildArtifacts(self, nodeTemplate, inputs, ret):
artifacts = json.dumps(nodeTemplate.entity_tpl.get('artifacts', None))
- match = re.findall(r'\{"get_input":\s*"([\w|\-]+)"\}',artifacts)
+ match = re.findall(r'\{"get_input":\s*"([\w|\-]+)"\}', artifacts)
- aa= [input_def for input_def in inputs
- if m == input_def.name][0]
- artifacts = re.sub(r'\{"get_input":\s*"([\w|\-]+)"\}', json.dumps(aa.default), artifacts,1)
+ aa = [input_def for input_def in inputs if m == input_def.name][0]
+ artifacts = re.sub(r'\{"get_input":\s*"([\w|\-]+)"\}', json.dumps(aa.default), artifacts, 1)
if artifacts != 'null':
ret['artifacts'] = json.loads(artifacts)
if artifacts != 'null':
ret['artifacts'] = json.loads(artifacts)
return node['nodeType'].upper().find('.CP.') >= 0 or node['nodeType'].upper().endswith('.CP')
def isVl(self, node):
return node['nodeType'].upper().find('.CP.') >= 0 or node['nodeType'].upper().endswith('.CP')
def isVl(self, node):
- return node['nodeType'].upper().find('.VIRTUALLINK.') >= 0 or node['nodeType'].upper().find('.VL.') >= 0 or \
- node['nodeType'].upper().endswith('.VIRTUALLINK') or node['nodeType'].upper().endswith('.VL')
+ isvl = node['nodeType'].upper().find('.VIRTUALLINK.') >= 0 or node['nodeType'].upper().find('.VL.') >= 0
+ isvl = isvl or node['nodeType'].upper().endswith('.VIRTUALLINK') or node['nodeType'].upper().endswith('.VL')
+ return isvl
def isService(self, node):
return node['nodeType'].upper().find('.SERVICE.') >= 0 or node['nodeType'].upper().endswith('.SERVICE')
def isService(self, node):
return node['nodeType'].upper().find('.SERVICE.') >= 0 or node['nodeType'].upper().endswith('.SERVICE')
def getVirtualbindings(self, node):
return self.getRequirementByName(node, 'virtualbinding')
def getVirtualbindings(self, node):
return self.getRequirementByName(node, 'virtualbinding')
def getRequirementByName(self, node, requirementName):
requirements = []
if 'requirements' in node:
def getRequirementByName(self, node, requirementName):
requirements = []
if 'requirements' in node:
if 'requirements' in node:
for item in node['requirements']:
for key, value in item.items():
if 'requirements' in node:
for item in node['requirements']:
for key, value in item.items():
- if key.upper().find('VIRTUALLINK') >=0:
- rets.append({"key_name":key, "vl_id":self.get_requirement_node_name(value)})
+ if key.upper().find('VIRTUALLINK') >= 0:
+ rets.append({"key_name": key, "vl_id": self.get_requirement_node_name(value)})
return rets
def _verify_value(self, value, inputs, parsed_params):
return rets
def _verify_value(self, value, inputs, parsed_params):
from toscaparser.elements.constraints import Schema
from toscaparser.common.exception import ExceptionCollector
from toscaparser.elements.constraints import Schema
from toscaparser.common.exception import ExceptionCollector
-class DataEntityExt(object):
+class DataEntityExt(object):
'''A complex data value entity ext.'''
@staticmethod
def validate_datatype(type, value, entry_schema=None, custom_def=None):
'''A complex data value entity ext.'''
@staticmethod
def validate_datatype(type, value, entry_schema=None, custom_def=None):
return float(value)
except Exception:
ExceptionCollector.appendException(ValueError(('"%s" is not an float.') % value))
return float(value)
except Exception:
ExceptionCollector.appendException(ValueError(('"%s" is not an float.') % value))
return DataEntity.validate_datatype(type, value, entry_schema, custom_def)
return value
return DataEntity.validate_datatype(type, value, entry_schema, custom_def)
return value
self.ns_flavours = self.get_all_flavour(tosca.topology_template.groups)
self.nested_ns = self.get_all_nested_ns(nodeTemplates)
self.ns_flavours = self.get_all_flavour(tosca.topology_template.groups)
self.nested_ns = self.get_all_nested_ns(nodeTemplates)
def buildInputs(self, top_inputs):
ret = {}
for tmpinput in top_inputs:
def buildInputs(self, top_inputs):
ret = {}
for tmpinput in top_inputs:
return ret
def buildNode(self, nodeTemplate, inputs, parsed_params):
return ret
def buildNode(self, nodeTemplate, inputs, parsed_params):
ret['name'] = nodeTemplate.name
ret['nodeType'] = nodeTemplate.type
if 'description' in nodeTemplate.entity_tpl:
ret['name'] = nodeTemplate.name
ret['nodeType'] = nodeTemplate.type
if 'description' in nodeTemplate.entity_tpl:
self.buildCapabilities(nodeTemplate, inputs, ret)
self.buildArtifacts(nodeTemplate, inputs, ret)
interfaces = self.build_interfaces(nodeTemplate)
self.buildCapabilities(nodeTemplate, inputs, ret)
self.buildArtifacts(nodeTemplate, inputs, ret)
interfaces = self.build_interfaces(nodeTemplate)
- if interfaces: ret['interfaces'] = interfaces
+ if interfaces:
+ ret['interfaces'] = interfaces
return ret
def _get_all_vnf(self, nodeTemplates):
return ret
def _get_all_vnf(self, nodeTemplates):
for key, value in item.items():
if key.upper().startswith('VIRTUALBINDING'):
req_node_name = self.get_requirement_node_name(value)
for key, value in item.items():
if key.upper().startswith('VIRTUALBINDING'):
req_node_name = self.get_requirement_node_name(value)
- if req_node_name != None and req_node_name == node['name']:
+ if req_node_name is not None and req_node_name == node['name']:
cps.append(tmpnode)
return cps
cps.append(tmpnode)
return cps
cp_vl = {}
cp_vl['vl_id'] = self.get_prop_from_obj(req, 'node')
relationship = self.get_prop_from_obj(req, 'relationship')
cp_vl = {}
cp_vl['vl_id'] = self.get_prop_from_obj(req, 'node')
relationship = self.get_prop_from_obj(req, 'relationship')
- if relationship != None:
+ if relationship is not None:
properties = self.get_prop_from_obj(relationship, 'properties')
properties = self.get_prop_from_obj(relationship, 'properties')
- if properties != None and isinstance(properties, dict):
+ if properties is not None and isinstance(properties, dict):
for key, value in properties.items():
cp_vl[key] = value
return cp_vl
for key, value in properties.items():
cp_vl[key] = value
return cp_vl
self.vnf_exposed = self.get_all_endpoint_exposed(tosca.topology_template)
self.vnf_flavours = self.get_all_flavour(tosca.topology_template.groups)
self.vnf_exposed = self.get_all_endpoint_exposed(tosca.topology_template)
self.vnf_flavours = self.get_all_flavour(tosca.topology_template.groups)
def _get_all_services(self, nodeTemplates):
ret = []
for node in nodeTemplates:
def _get_all_services(self, nodeTemplates):
ret = []
for node in nodeTemplates:
ret['dependencies'] = map(lambda x: self.get_requirement_node_name(x), self.getNodeDependencys(node))
nfv_compute = self.getCapabilityByName(node, 'nfv_compute')
ret['dependencies'] = map(lambda x: self.get_requirement_node_name(x), self.getNodeDependencys(node))
nfv_compute = self.getCapabilityByName(node, 'nfv_compute')
- if nfv_compute != None and 'properties' in nfv_compute:
+ if nfv_compute is not None and 'properties' in nfv_compute:
ret['nfv_compute'] = nfv_compute['properties']
ret['vls'] = self.get_linked_vl_ids(node, nodeTemplates)
scalable = self.getCapabilityByName(node, 'scalable')
ret['nfv_compute'] = nfv_compute['properties']
ret['vls'] = self.get_linked_vl_ids(node, nodeTemplates)
scalable = self.getCapabilityByName(node, 'scalable')
- if scalable != None and 'properties' in scalable:
+ if scalable is not None and 'properties' in scalable:
ret['scalable'] = scalable['properties']
ret['cps'] = self.getVirtalBindingCpIds(node, nodeTemplates)
ret['scalable'] = scalable['properties']
ret['cps'] = self.getVirtalBindingCpIds(node, nodeTemplates)
policies = []
scaling_policies = self.get_scaling_policies(top_policies)
healing_policies = self.get_healing_policies(top_policies)
policies = []
scaling_policies = self.get_scaling_policies(top_policies)
healing_policies = self.get_healing_policies(top_policies)
- policies.append({"scaling":scaling_policies, 'healing':healing_policies})
+ policies.append({"scaling": scaling_policies, 'healing': healing_policies})
return policies
def get_healing_policies(self, top_policies):
return policies
def get_healing_policies(self, top_policies):
- return self.get_policies_by_keyword(top_policies,'.HEALING')
+ return self.get_policies_by_keyword(top_policies, '.HEALING')
if old_key.upper() == key.upper():
return args[old_key]
return def_val
if old_key.upper() == key.upper():
return args[old_key]
return def_val