aboutsummaryrefslogtreecommitdiffstats
path: root/genericparser/pub/utils/toscaparsers
diff options
context:
space:
mode:
Diffstat (limited to 'genericparser/pub/utils/toscaparsers')
-rw-r--r--genericparser/pub/utils/toscaparsers/basemodel.py36
-rw-r--r--genericparser/pub/utils/toscaparsers/graph.py4
-rw-r--r--genericparser/pub/utils/toscaparsers/nsdmodel.py10
-rw-r--r--genericparser/pub/utils/toscaparsers/pnfmodel.py2
-rw-r--r--genericparser/pub/utils/toscaparsers/sdmodel.py6
-rw-r--r--genericparser/pub/utils/toscaparsers/servicemodel.py4
-rw-r--r--genericparser/pub/utils/toscaparsers/vnfdmodel.py2
-rw-r--r--genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py34
-rw-r--r--genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_base.py32
9 files changed, 63 insertions, 67 deletions
diff --git a/genericparser/pub/utils/toscaparsers/basemodel.py b/genericparser/pub/utils/toscaparsers/basemodel.py
index 0110df9..643041d 100644
--- a/genericparser/pub/utils/toscaparsers/basemodel.py
+++ b/genericparser/pub/utils/toscaparsers/basemodel.py
@@ -77,7 +77,7 @@ class BaseInfoModel(object):
try:
os.remove(file_name)
except Exception as e:
- logger.error("Failed to parse package, error: %s", e.message)
+ logger.error("Failed to parse package, error: %s", e.args[0])
def _validate_input_params(self, path, params):
valid_params = {}
@@ -92,7 +92,7 @@ class BaseInfoModel(object):
if params:
tmp = self._create_tosca_template(path, None)
if isinstance(params, dict):
- for key, value in params.items():
+ for key, value in list(params.items()):
if hasattr(tmp, 'inputs') and len(tmp.inputs) > 0:
for input_def in tmp.inputs:
if (input_def.name == key):
@@ -107,16 +107,16 @@ class BaseInfoModel(object):
no_required_paras_check=True,
debug_mode=True)
except Exception as e:
- print e.message
+ print(e.args[0])
finally:
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)
except Exception as e:
- logger.error("Failed to create tosca template, error: %s", e.message)
- print "-----------------------------"
- print '\n'.join(['%s:%s' % item for item in tosca_tpl.__dict__.items()])
- print "-----------------------------"
+ logger.error("Failed to create tosca template, error: %s", e.args[0])
+ print("-----------------------------")
+ print('\n'.join(['%s:%s' % item for item in list(tosca_tpl.__dict__.items())]))
+ print("-----------------------------")
return tosca_tpl
def _check_download_file(self, path):
@@ -130,7 +130,7 @@ class BaseInfoModel(object):
path = path.encode("utf-8")
tmps = str.split(path, '/')
localFileName = tmps[len(tmps) - 1]
- urllib.urlretrieve(path, localFileName)
+ urllib.request.urlretrieve(path, localFileName)
return localFileName
def downloadFileFromFtpServer(self, path):
@@ -222,7 +222,7 @@ class BaseInfoModel(object):
def buildProperties(self, nodeTemplate, parsed_params):
properties = {}
isMappingParams = parsed_params and len(parsed_params) > 0
- for k, item in nodeTemplate.get_properties().items():
+ for k, item in list(nodeTemplate.get_properties().items()):
properties[k] = item.value
if isinstance(item.value, GetInput):
if item.value.result() and isMappingParams:
@@ -232,7 +232,7 @@ class BaseInfoModel(object):
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():
+ for k, item in list(nodeTemplate.entity_tpl[ATTRIBUTES].items()):
properties[k] = str(item)
return properties
@@ -241,7 +241,7 @@ class BaseInfoModel(object):
properties = nodeTemplate.get_properties()
_properties = {}
if isinstance(properties, dict):
- for name, prop in properties.items():
+ for name, prop in list(properties.items()):
if isinstance(prop, Property):
if isinstance(prop.value, Function):
if isinstance(prop.value, Concat): # support one layer inner function.
@@ -251,7 +251,7 @@ class BaseInfoModel(object):
value_str += arg
elif isinstance(arg, dict):
raw_func = {}
- for k, v in arg.items():
+ for k, v in list(arg.items()):
func_args = []
func_args.append(v)
raw_func[k] = func_args
@@ -282,7 +282,7 @@ class BaseInfoModel(object):
value_str += arg
elif isinstance(arg, dict):
raw_func = {}
- for k, v in arg.items():
+ for k, v in list(arg.items()):
func_args = []
func_args.append(v)
raw_func[k] = func_args
@@ -306,7 +306,7 @@ class BaseInfoModel(object):
def verify_properties(self, props, inputs, parsed_params):
ret_props = {}
if (props and len(props) > 0):
- for key, value in props.items():
+ for key, value in list(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);
@@ -323,7 +323,7 @@ class BaseInfoModel(object):
def build_requirements(self, node_template):
rets = []
for req in node_template.requirements:
- for req_name, req_value in req.items():
+ for req_name, req_value in list(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.
@@ -385,7 +385,7 @@ class BaseInfoModel(object):
requirements = []
if REQUIREMENTS in node:
for item in node[REQUIREMENTS]:
- for key, value in item.items():
+ for key, value in list(item.items()):
if key == requirementName:
requirements.append(value)
return requirements
@@ -439,7 +439,7 @@ class BaseInfoModel(object):
rets = []
if ARTIFACTS in node and len(node[ARTIFACTS]) > 0:
artifacts = node[ARTIFACTS]
- for name, value in artifacts.items():
+ for name, value in list(artifacts.items()):
ret = {}
ret['artifact_name'] = name
ret['file'] = value
@@ -491,7 +491,7 @@ class BaseInfoModel(object):
for type_require in type_requires:
type_require_set.update(type_require)
for requirement in node.requirements:
- for k in requirement.keys():
+ for k in list(requirement.keys()):
if type_require_set[k].get('relationship', None) in relations[0] or type_require_set[k].get('capability', None) in relations[0]:
if isinstance(requirement[k], dict):
next_node = requirement[k].get('node', None)
diff --git a/genericparser/pub/utils/toscaparsers/graph.py b/genericparser/pub/utils/toscaparsers/graph.py
index 6d38d12..0af2a14 100644
--- a/genericparser/pub/utils/toscaparsers/graph.py
+++ b/genericparser/pub/utils/toscaparsers/graph.py
@@ -21,7 +21,7 @@ class Graph(object):
def __init__(self, graph_dict=None):
self.graph = OrderedDict()
if graph_dict:
- for node, dep_nodes in graph_dict.iteritems():
+ for node, dep_nodes in list(graph_dict.items()):
self.add_node(node, dep_nodes)
def add_node(self, node, dep_nodes):
@@ -67,7 +67,7 @@ class Graph(object):
def to_dict(self):
dict = {}
- for node, dependents in self.graph.iteritems():
+ for node, dependents in self.graph.items():
dict[node] = []
for dep in dependents:
dict[node].append(dep)
diff --git a/genericparser/pub/utils/toscaparsers/nsdmodel.py b/genericparser/pub/utils/toscaparsers/nsdmodel.py
index fe522a7..9cc706f 100644
--- a/genericparser/pub/utils/toscaparsers/nsdmodel.py
+++ b/genericparser/pub/utils/toscaparsers/nsdmodel.py
@@ -60,7 +60,7 @@ class EtsiNsdInfoModel(BaseInfoModel):
self.metadata = self.buildMetadata(tosca)
self.ns = self._build_ns(tosca)
self.inputs = self.buildInputs(tosca)
- nodeTemplates = map(functools.partial(self.buildNode, tosca=tosca), tosca.nodetemplates)
+ nodeTemplates = list(map(functools.partial(self.buildNode, tosca=tosca), tosca.nodetemplates))
types = tosca.topology_template.custom_defs
self.basepath = self.get_base_path(tosca)
self.vnfs = self._get_all_vnf(nodeTemplates, types)
@@ -126,7 +126,7 @@ class EtsiNsdInfoModel(BaseInfoModel):
forwarderList = []
if 'requirements' in node:
for item in node['requirements']:
- for key, value in item.items():
+ for key, value in list(item.items()):
if key == 'forwarder':
tmpnode = self.get_node_by_req(node_templates, value)
type = 'pnf' if self.isNodeTypeX(tmpnode, node_types, NS_PNF_TYPE) else 'vnf'
@@ -161,7 +161,7 @@ class EtsiNsdInfoModel(BaseInfoModel):
def _get_external_cps(self, subs_mappings):
external_cps = []
if 'requirements' in subs_mappings:
- for key, value in subs_mappings['requirements'].items():
+ for key, value in list(subs_mappings['requirements'].items()):
if isinstance(value, list) and len(value) > 0:
external_cps.append({"key_name": key, "cpd_id": value[0]})
else:
@@ -171,7 +171,7 @@ class EtsiNsdInfoModel(BaseInfoModel):
def _get_forward_cps(self, subs_mappings):
forward_cps = []
if 'capabilities' in subs_mappings:
- for key, value in subs_mappings['capabilities'].items():
+ for key, value in list(subs_mappings['capabilities'].items()):
if isinstance(value, list) and len(value) > 0:
forward_cps.append({"key_name": key, "cpd_id": value[0]})
else:
@@ -194,7 +194,7 @@ class EtsiNsdInfoModel(BaseInfoModel):
rets = []
if 'requirements' in node and (self.isNodeTypeX(node, node_types, NS_TYPE) or self.isNodeTypeX(node, node_types, NS_VNF_TYPE)):
for item in node['requirements']:
- for key, value in item.items():
+ for key, value in list(item.items()):
rets.append({"key_name": key, "vl_id": self.get_requirement_node_name(value)})
return rets
diff --git a/genericparser/pub/utils/toscaparsers/pnfmodel.py b/genericparser/pub/utils/toscaparsers/pnfmodel.py
index 0f5445f..546861b 100644
--- a/genericparser/pub/utils/toscaparsers/pnfmodel.py
+++ b/genericparser/pub/utils/toscaparsers/pnfmodel.py
@@ -37,7 +37,7 @@ class PnfdInfoModel(BaseInfoModel):
pnf_substitution_mappings = tosca.tpl['topology_template'].get('substitution_mappings', None)
if pnf_substitution_mappings:
self.pnf['type'] = pnf_substitution_mappings['node_type']
- self.pnf['properties'] = pnf_substitution_mappings['properties']
+ self.pnf['properties'] = pnf_substitution_mappings.get('properties', {})
def get_all_cp(self, nodeTemplates):
self.pnf['ExtPorts'] = []
diff --git a/genericparser/pub/utils/toscaparsers/sdmodel.py b/genericparser/pub/utils/toscaparsers/sdmodel.py
index 8cca07e..7635ab3 100644
--- a/genericparser/pub/utils/toscaparsers/sdmodel.py
+++ b/genericparser/pub/utils/toscaparsers/sdmodel.py
@@ -64,14 +64,14 @@ class SdInfoModel(BaseInfoModel):
def get_child_input_repeat(self, complex_input, entry_schema, input):
custom_defs = input.custom_defs
properties = custom_defs[entry_schema]['properties']
- for key, value in properties.iteritems():
+ for key, value in properties.items():
if value['type'].__eq__('list'):
child_complex_input = []
child_entry_schema = self.get_entry_schema(value['entry_schema'])
self.get_child_input_repeat(child_complex_input, child_entry_schema, input)
complex_input.append({key: child_complex_input})
else:
- if 'description' in value.keys():
+ if 'description' in list(value.keys()):
simple_input = {
key: "",
"type": value['type'],
@@ -88,6 +88,6 @@ class SdInfoModel(BaseInfoModel):
def get_entry_schema(self, entry_schema):
if isinstance(entry_schema, dict):
- if 'type' in entry_schema.keys():
+ if 'type' in list(entry_schema.keys()):
entry_schema = entry_schema['type']
return entry_schema
diff --git a/genericparser/pub/utils/toscaparsers/servicemodel.py b/genericparser/pub/utils/toscaparsers/servicemodel.py
index 069d402..6321e04 100644
--- a/genericparser/pub/utils/toscaparsers/servicemodel.py
+++ b/genericparser/pub/utils/toscaparsers/servicemodel.py
@@ -54,7 +54,7 @@ class SdcServiceModel(BaseInfoModel):
self.ns = self._build_ns(tosca)
self.inputs = self.buildInputs(tosca)
if hasattr(tosca, 'nodetemplates'):
- nodeTemplates = map(functools.partial(self.buildNode, tosca=tosca), tosca.nodetemplates)
+ nodeTemplates = list(map(functools.partial(self.buildNode, tosca=tosca), tosca.nodetemplates))
types = tosca.topology_template.custom_defs
self.basepath = self.get_base_path(tosca)
self.vnfs = self._get_all_vnf(nodeTemplates, types)
@@ -166,7 +166,7 @@ class SdcServiceModel(BaseInfoModel):
rets = []
if 'requirements' in node and self.isNodeTypeX(node, node_types, VF_TYPE):
for item in node['requirements']:
- for key, value in item.items():
+ for key, value in list(item.items()):
rets.append({"key_name": key, "vl_id": self.get_requirement_node_name(value)})
return rets
diff --git a/genericparser/pub/utils/toscaparsers/vnfdmodel.py b/genericparser/pub/utils/toscaparsers/vnfdmodel.py
index 95ae2c1..2e48b4d 100644
--- a/genericparser/pub/utils/toscaparsers/vnfdmodel.py
+++ b/genericparser/pub/utils/toscaparsers/vnfdmodel.py
@@ -34,7 +34,7 @@ class EtsiVnfdInfoModel(BaseInfoModel):
def parseModel(self, tosca):
self.metadata = self.buildMetadata(tosca)
self.inputs = self.buildInputs(tosca)
- nodeTemplates = map(functools.partial(self.buildNode, tosca=tosca), tosca.nodetemplates)
+ nodeTemplates = list(map(functools.partial(self.buildNode, tosca=tosca), tosca.nodetemplates))
self.basepath = self.get_base_path(tosca)
node_types = tosca.topology_template.custom_defs
sol_version = self.metadata.get("VNFD_SCHEMA_VERSION", VNFD_SCHEMA_VERSION_DEFAULT) if isinstance(self.metadata, dict) else VNFD_SCHEMA_VERSION_DEFAULT
diff --git a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py
index 6ad26e8..d0365a7 100644
--- a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py
+++ b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py
@@ -33,7 +33,7 @@ class VnfdSOL251():
properties = vnf.get("properties", {})
metadata = vnf.get("metadata", {})
- for key, value in properties.items():
+ for key, value in list(properties.items()):
if isinstance(value, dict):
if value["type"] == "string":
properties[key] = value.get("default", "")
@@ -139,19 +139,17 @@ class VnfdSOL251():
if isinstance(inject_files, list):
for inject_file in inject_files:
source_path = os.path.join(self.model.basepath, inject_file['source_path'])
- with open(source_path, "rb") as f:
+ with open(source_path, "rt") as f:
source_data = f.read()
- source_data_base64 = source_data.encode("base64")
- inject_file["source_data_base64"] = source_data_base64
+ inject_file["source_data_base64"] = source_data
if isinstance(inject_files, dict):
source_path = os.path.join(self.model.basepath, inject_files['source_path'])
- with open(source_path, "rb") as f:
+ with open(source_path, "rt") as f:
source_data = f.read()
- source_data_base64 = source_data.encode("base64")
- inject_files["source_data_base64"] = source_data_base64
+ inject_files["source_data_base64"] = source_data
virtual_storages = self.model.getRequirementByName(node, 'virtual_storage')
- ret['virtual_storages'] = map(functools.partial(self._trans_virtual_storage), virtual_storages)
- ret['dependencies'] = map(lambda x: self.model.get_requirement_node_name(x), self.model.getNodeDependencys(node))
+ ret['virtual_storages'] = list(map(functools.partial(self._trans_virtual_storage), virtual_storages))
+ ret['dependencies'] = [self.model.get_requirement_node_name(x) for x in self.model.getNodeDependencys(node)]
virtual_compute = self.model.getCapabilityByName(node, 'virtual_compute')
if virtual_compute is not None and 'properties' in virtual_compute:
ret['virtual_compute'] = virtual_compute['properties']
@@ -194,14 +192,14 @@ class VnfdSOL251():
return vl_ids
def _get_virtal_binding_cp_ids(self, node, nodeTemplates):
- return map(lambda x: x['name'], self._get_virtal_binding_cps(node, nodeTemplates))
+ return [x['name'] for x in self._get_virtal_binding_cps(node, nodeTemplates)]
def _get_virtal_binding_cps(self, node, nodeTemplates):
cps = []
for tmpnode in nodeTemplates:
if 'requirements' in tmpnode:
for item in tmpnode['requirements']:
- for key, value in item.items():
+ for key, value in list(item.items()):
if key.upper().startswith('VIRTUAL_BINDING'):
req_node_name = self.model.get_requirement_node_name(value)
if req_node_name is not None and req_node_name == node['name']:
@@ -209,19 +207,19 @@ class VnfdSOL251():
return cps
def _get_node_vdu_id(self, node):
- vdu_ids = map(lambda x: self.model.get_requirement_node_name(x), self.model.getRequirementByName(node, 'virtual_binding'))
+ vdu_ids = [self.model.get_requirement_node_name(x) for x in self.model.getRequirementByName(node, 'virtual_binding')]
if len(vdu_ids) > 0:
return vdu_ids[0]
return ""
def _get_node_vl_id(self, node):
- vl_ids = map(lambda x: self.model.get_requirement_node_name(x), self.model.getRequirementByName(node, 'virtual_link'))
+ vl_ids = [self.model.get_requirement_node_name(x) for x in self.model.getRequirementByName(node, 'virtual_link')]
if len(vl_ids) > 0:
return vl_ids[0]
return ""
def _buil_cp_vls(self, node):
- return map(lambda x: self._build_cp_vl(x), self.model.getRequirementByName(node, 'virtual_link'))
+ return [self._build_cp_vl(x) for x in self.model.getRequirementByName(node, 'virtual_link')]
def _build_cp_vl(self, req):
cp_vl = {}
@@ -230,7 +228,7 @@ class VnfdSOL251():
if relationship is not None:
properties = self.model.get_prop_from_obj(relationship, 'properties')
if properties is not None and isinstance(properties, dict):
- for key, value in properties.items():
+ for key, value in list(properties.items()):
cp_vl[key] = value
return cp_vl
@@ -238,14 +236,14 @@ class VnfdSOL251():
external_cps = []
if vnf_requirements:
if isinstance(vnf_requirements, dict):
- for key, value in vnf_requirements.items():
+ for key, value in list(vnf_requirements.items()):
if isinstance(value, list) and len(value) > 0:
external_cps.append({"key_name": key, "cpd_id": value[0]})
else:
external_cps.append({"key_name": key, "cpd_id": value})
elif isinstance(vnf_requirements, list):
for vnf_requirement in vnf_requirements:
- for key, value in vnf_requirement.items():
+ for key, value in list(vnf_requirement.items()):
if isinstance(value, list) and len(value) > 0:
external_cps.append({"key_name": key, "cpd_id": value[0]})
else:
@@ -255,7 +253,7 @@ class VnfdSOL251():
def _get_forward_cps(self, vnf_capabilities):
forward_cps = []
if vnf_capabilities:
- for key, value in vnf_capabilities.items():
+ for key, value in list(vnf_capabilities.items()):
if isinstance(value, list) and len(value) > 0:
forward_cps.append({"key_name": key, "cpd_id": value[0]})
else:
diff --git a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_base.py b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_base.py
index 89ddc84..cc941b2 100644
--- a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_base.py
+++ b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_base.py
@@ -118,19 +118,17 @@ class VnfdSOLBase():
if isinstance(inject_files, list):
for inject_file in inject_files:
source_path = os.path.join(self.model.basepath, inject_file['source_path'])
- with open(source_path, "rb") as f:
+ with open(source_path, "rt") as f:
source_data = f.read()
- source_data_base64 = source_data.encode("base64")
- inject_file["source_data_base64"] = source_data_base64
+ inject_file["source_data_base64"] = source_data
if isinstance(inject_files, dict):
source_path = os.path.join(self.model.basepath, inject_files['source_path'])
- with open(source_path, "rb") as f:
+ with open(source_path, "rt") as f:
source_data = f.read()
- source_data_base64 = source_data.encode("base64")
- inject_files["source_data_base64"] = source_data_base64
+ inject_files["source_data_base64"] = source_data
virtual_storages = self.model.getRequirementByName(node, 'virtual_storage')
- ret['virtual_storages'] = map(functools.partial(self._trans_virtual_storage), virtual_storages)
- ret['dependencies'] = map(lambda x: self.model.get_requirement_node_name(x), self.model.getNodeDependencys(node))
+ ret['virtual_storages'] = list(map(functools.partial(self._trans_virtual_storage), virtual_storages))
+ ret['dependencies'] = [self.model.get_requirement_node_name(x) for x in self.model.getNodeDependencys(node)]
virtual_compute = self.model.getCapabilityByName(node, 'virtual_compute')
if virtual_compute is not None and 'properties' in virtual_compute:
ret['virtual_compute'] = virtual_compute['properties']
@@ -166,14 +164,14 @@ class VnfdSOLBase():
return vl_ids
def _get_virtal_binding_cp_ids(self, node, nodeTemplates):
- return map(lambda x: x['name'], self._get_virtal_binding_cps(node, nodeTemplates))
+ return [x['name'] for x in self._get_virtal_binding_cps(node, nodeTemplates)]
def _get_virtal_binding_cps(self, node, nodeTemplates):
cps = []
for tmpnode in nodeTemplates:
if 'requirements' in tmpnode:
for item in tmpnode['requirements']:
- for key, value in item.items():
+ for key, value in list(item.items()):
if key.upper().startswith('VIRTUAL_BINDING'):
req_node_name = self.model.get_requirement_node_name(value)
if req_node_name is not None and req_node_name == node['name']:
@@ -181,19 +179,19 @@ class VnfdSOLBase():
return cps
def _get_node_vdu_id(self, node):
- vdu_ids = map(lambda x: self.model.get_requirement_node_name(x), self.model.getRequirementByName(node, 'virtual_binding'))
+ vdu_ids = [self.model.get_requirement_node_name(x) for x in self.model.getRequirementByName(node, 'virtual_binding')]
if len(vdu_ids) > 0:
return vdu_ids[0]
return ""
def _get_node_vl_id(self, node):
- vl_ids = map(lambda x: self.model.get_requirement_node_name(x), self.model.getRequirementByName(node, 'virtual_link'))
+ vl_ids = [self.model.get_requirement_node_name(x) for x in self.model.getRequirementByName(node, 'virtual_link')]
if len(vl_ids) > 0:
return vl_ids[0]
return ""
def _buil_cp_vls(self, node):
- return map(lambda x: self._build_cp_vl(x), self.model.getRequirementByName(node, 'virtual_link'))
+ return [self._build_cp_vl(x) for x in self.model.getRequirementByName(node, 'virtual_link')]
def _build_cp_vl(self, req):
cp_vl = {}
@@ -202,7 +200,7 @@ class VnfdSOLBase():
if relationship is not None:
properties = self.model.get_prop_from_obj(relationship, 'properties')
if properties is not None and isinstance(properties, dict):
- for key, value in properties.items():
+ for key, value in list(properties.items()):
cp_vl[key] = value
return cp_vl
@@ -210,14 +208,14 @@ class VnfdSOLBase():
external_cps = []
if vnf_requirements:
if isinstance(vnf_requirements, dict):
- for key, value in vnf_requirements.items():
+ for key, value in list(vnf_requirements.items()):
if isinstance(value, list) and len(value) > 0:
external_cps.append({"key_name": key, "cpd_id": value[0]})
else:
external_cps.append({"key_name": key, "cpd_id": value})
elif isinstance(vnf_requirements, list):
for vnf_requirement in vnf_requirements:
- for key, value in vnf_requirement.items():
+ for key, value in list(vnf_requirement.items()):
if isinstance(value, list) and len(value) > 0:
external_cps.append({"key_name": key, "cpd_id": value[0]})
else:
@@ -227,7 +225,7 @@ class VnfdSOLBase():
def _get_forward_cps(self, vnf_capabilities):
forward_cps = []
if vnf_capabilities:
- for key, value in vnf_capabilities.items():
+ for key, value in list(vnf_capabilities.items()):
if isinstance(value, list) and len(value) > 0:
forward_cps.append({"key_name": key, "cpd_id": value[0]})
else: