X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fpub%2Futils%2Ftoscautil_new.py;h=97d1647a28f692c0b828b2e8b3bb5ee1e53c547f;hb=46ad7c172411214c5432ed93fda4271288077447;hp=90ce5fefbdb7457a9e93ad64781f0ca261667683;hpb=c14af82eb416b645f45a8d3276bf087526f4cf93;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/pub/utils/toscautil_new.py b/lcm/lcm/pub/utils/toscautil_new.py index 90ce5fef..97d1647a 100644 --- a/lcm/lcm/pub/utils/toscautil_new.py +++ b/lcm/lcm/pub/utils/toscautil_new.py @@ -14,6 +14,7 @@ import json + def safe_get(key_val, key): return key_val[key] if key in key_val else "" @@ -37,31 +38,33 @@ def find_related_node(node_id, src_json_model, requirement_name): for model_tpl in safe_get(src_json_model, "node_templates"): for rt in safe_get(model_tpl, 'requirement_templates'): if safe_get(rt, 'name') == requirement_name and \ - safe_get(rt, 'target_node_template_name') == node_id: + safe_get(rt, 'target_node_template_name') == node_id: related_nodes.append(model_tpl['name']) return related_nodes def convert_props(src_node, dest_node): if 'properties' in src_node and src_node['properties']: - for prop_name, prop_info in src_node['properties'].items(): + for prop_name, prop_info in list(src_node['properties'].items()): if 'value' in prop_info: - dest_node['properties'][prop_name] = prop_info['value'] + dest_node['properties'][prop_name] = prop_info['value'] def convert_metadata(src_json): return src_json['metadata'] if 'metadata' in src_json else {} + def convert_factor_unit(value): - if isinstance(value, (str, unicode)): + if isinstance(value, str): return value return "%s %s" % (value["factor"], value["unit"]) + def convert_inputs(src_json): inputs = {} if 'inputs' in src_json: src_inputs = src_json['inputs'] - for param_name, param_info in src_inputs.items(): + for param_name, param_info in list(src_inputs.items()): input_param = {} if 'type_name' in param_info: input_param['type'] = param_info['type_name'] @@ -75,19 +78,19 @@ def convert_inputs(src_json): def convert_vnf_node(src_node, src_json_model): vnf_node = {'type': src_node['type_name'], 'vnf_id': src_node['template_name'], - 'description': '', 'properties': {}, 'dependencies': [], 'networks': []} + 'description': '', 'properties': {}, 'dependencies': [], 'networks': []} convert_props(src_node, vnf_node) for model_tpl in safe_get(src_json_model, "node_templates"): if model_tpl['name'] != vnf_node['vnf_id']: continue vnf_node['dependencies'] = [{ 'key_name': requirement['name'], - 'vl_id': requirement['target_node_template_name']} for \ - requirement in safe_get(model_tpl, 'requirement_templates') if \ + 'vl_id': requirement['target_node_template_name']} for + requirement in safe_get(model_tpl, 'requirement_templates') if safe_get(requirement, 'target_capability_name') == 'virtual_linkable'] - vnf_node['networks'] = [requirement['target_node_template_name'] for \ - requirement in safe_get(model_tpl, 'requirement_templates') if \ - safe_get(requirement, 'name') == 'dependency'] + vnf_node['networks'] = [requirement['target_node_template_name'] for + requirement in safe_get(model_tpl, 'requirement_templates') if + safe_get(requirement, 'name') == 'dependency'] return vnf_node @@ -133,7 +136,7 @@ def convert_router_node(src_node, src_node_list): router_node['external_ip_addresses'] = [] if 'properties' not in relation: continue - for prop_name, prop_info in relation['properties'].items(): + for prop_name, prop_info in list(relation['properties'].items()): if prop_name == 'router_ip_address': router_node['external_ip_addresses'].append(prop_info['value']) break @@ -141,8 +144,8 @@ def convert_router_node(src_node, src_node_list): def convert_fp_node(src_node, src_node_list, src_json_model): - fp_node = {'fp_id': src_node['template_name'], 'description': '', - 'properties': {}, 'forwarder_list': []} + fp_node = {'fp_id': src_node['template_name'], 'description': '', + 'properties': {}, 'forwarder_list': []} convert_props(src_node, fp_node) for relation in safe_get(src_node, 'relationships'): if safe_get(relation, 'name') != 'forwarder': @@ -168,8 +171,8 @@ def convert_fp_node(src_node, src_node_list, src_json_model): def convert_vnffg_group(src_group, src_group_list, src_node_list): - vnffg = {'vnffg_id': src_group['template_name'], 'description': '', - 'properties': {}, 'members': []} + vnffg = {'vnffg_id': src_group['template_name'], 'description': '', + 'properties': {}, 'members': []} convert_props(src_group, vnffg) for member_node_id in src_group['member_node_ids']: vnffg['members'].append(find_node_name(member_node_id, src_node_list)) @@ -177,32 +180,34 @@ def convert_vnffg_group(src_group, src_group_list, src_node_list): def convert_imagefile_node(src_node, src_node_list): - image_node = {'image_file_id': src_node['template_name'], 'description': '', - 'properties': {}} + image_node = {'image_file_id': src_node['template_name'], 'description': '', + 'properties': {}} convert_props(src_node, image_node) return image_node def convert_localstorage_node(src_node, src_node_list): - localstorage_node = {'local_storage_id': src_node['template_name'], 'description': '', - 'properties': {}} + localstorage_node = {'local_storage_id': src_node['template_name'], 'description': '', + 'properties': {}} convert_props(src_node, localstorage_node) return localstorage_node + def convert_volumestorage_node(src_node, src_node_list): volumestorage_node = { - 'volume_storage_id': src_node['id'], - 'description': "", + 'volume_storage_id': src_node['id'], + 'description': "", 'properties': {}} convert_props(src_node, volumestorage_node) volumestorage_node["properties"]["size"] = convert_factor_unit( volumestorage_node["properties"]["size_of_storage"]) return volumestorage_node + def convert_vdu_node(src_node, src_node_list, src_json_model): vdu_node = {'vdu_id': src_node['template_name'], 'description': '', 'properties': {}, - 'image_file': '', 'local_storages': [], 'dependencies': [], 'nfv_compute': {}, - 'vls': [], 'artifacts': [], 'volume_storages': []} + 'image_file': '', 'local_storages': [], 'dependencies': [], 'nfv_compute': {}, + 'vls': [], 'artifacts': [], 'volume_storages': []} convert_props(src_node, vdu_node) for relation in src_node.get('relationships', ''): @@ -222,16 +227,16 @@ def convert_vdu_node(src_node, src_node_list, src_json_model): if not capability['type_name'].endswith('.VirtualCompute'): continue vdu_node['nfv_compute']['flavor_extra_specs'] = {} - for prop_name, prop_info in capability['properties'].items(): + for prop_name, prop_info in list(capability['properties'].items()): if prop_name == "virtual_cpu": vdu_node['nfv_compute']['num_cpus'] = prop_info["value"]["num_virtual_cpu"] vdu_node['nfv_compute']['cpu_frequency'] = convert_factor_unit( - prop_info["value"]["virtual_cpu_clock"]) + prop_info["value"]["virtual_cpu_clock"]) elif prop_name == "virtual_memory": vdu_node['nfv_compute']['mem_size'] = convert_factor_unit( prop_info["value"]["virtual_mem_size"]) elif prop_name == "requested_additional_capabilities": - for key, val in prop_info["value"].items(): + for key, val in list(prop_info["value"].items()): vdu_node['nfv_compute']['flavor_extra_specs'].update( val["target_performance_parameters"]) @@ -249,8 +254,8 @@ def convert_vdu_node(src_node, src_node_list, src_json_model): vdu_node['vls'].append(vl_node_name) for item in safe_get(src_node, 'artifacts'): - artifact = {'artifact_name': item['name'], 'type': item['type_name'], - 'file': item['source_path'], 'properties': {}} + artifact = {'artifact_name': item['name'], 'type': item['type_name'], + 'file': item['source_path'], 'properties': {}} convert_props(item, artifact) for key in artifact['properties']: if 'factor' in artifact['properties'][key] and 'unit' in artifact['properties'][key]: @@ -264,10 +269,10 @@ def convert_vdu_node(src_node, src_node_list, src_json_model): def convert_exposed_node(src_json, src_nodes, exposed): for item in safe_get(safe_get(src_json, 'substitution'), 'requirements'): exposed['external_cps'].append({'key_name': item['mapped_name'], - "cp_id": find_node_name(item['node_id'], src_nodes)}) + "cp_id": find_node_name(item['node_id'], src_nodes)}) for item in safe_get(safe_get(src_json, 'substitution'), 'capabilities'): exposed['forward_cps'].append({'key_name': item['mapped_name'], - "cp_id": find_node_name(item['node_id'], src_nodes)}) + "cp_id": find_node_name(item['node_id'], src_nodes)}) def convert_vnffgs(src_json_inst, src_nodes): @@ -279,6 +284,7 @@ def convert_vnffgs(src_json_inst, src_nodes): vnffgs.append(convert_vnffg_group(group, src_groups, src_nodes)) return vnffgs + def merge_imagefile_node(img_nodes, vdu_nodes): for vdu_node in vdu_nodes: for artifact in vdu_node.get("artifacts", []): @@ -293,8 +299,9 @@ def merge_imagefile_node(img_nodes, vdu_nodes): "properties": artifact["properties"] }) + def convert_common(src_json, target_json): - if isinstance(src_json, (unicode, str)): + if isinstance(src_json, str): src_json_dict = json.loads(src_json) else: src_json_dict = src_json @@ -313,7 +320,7 @@ def convert_common(src_json, target_json): def convert_nsd_model(src_json): target_json = {'vnfs': [], 'pnfs': [], 'fps': []} src_json_inst, src_json_model = convert_common(src_json, target_json) - + src_nodes = src_json_inst['nodes'] for node in src_nodes: type_name = node['type_name'] @@ -361,12 +368,13 @@ def convert_vnfd_model(src_json): target_json['cps'].append(convert_cp_node(node, src_nodes, 'VNFD')) elif type_name.endswith('.Router'): target_json['routers'].append(convert_router_node(node, src_nodes)) - + target_json['vnf_exposed'] = {'external_cps': [], 'forward_cps': []} convert_exposed_node(src_json_inst, src_nodes, target_json['vnf_exposed']) merge_imagefile_node(target_json['image_files'], target_json['vdus']) return json.dumps(target_json) + if __name__ == '__main__': src_json = json.dumps({ "instance": { @@ -1449,8 +1457,4 @@ if __name__ == '__main__': } } }) - print convert_vnfd_model(src_json) - - - - + print(convert_vnfd_model(src_json))