blob: 50c3ee217ed44282ad21ebcda20be2b812872bf0 [file] [log] [blame]
import json
import os.path
'''
This metadata identifies the folders to be zipped and uploaded to SDC for model distribution for a given VNF
'''
GLOBAL_SERVICE_FOLDER_MAPPING = {"vFW" : ['vFW'], \
"vLB" : ['vLB'], \
"vVG" : ['vVG'], \
"vCPE" : ['vCPE/infra', 'vCPE/vbng', 'vCPE/vbrgemu', 'vCPE/vgmux', 'vCPE/vgw'],
"vFWCL" : ['vFWCL/vFWSNK', 'vFWCL/vPKG'],
"vFWNG" : ['vFW_NextGen/templates'],
"vCPEInfra" : ['vCPE/infra'],
"vCPEvBNG" : ['vCPE/vbng'],
"vCPEvBRGEMU" : ['vCPE/vbrgemu'],
"vCPEvGMUX" : ['vCPE/vgmux'],
"vCPEvGW" : ['vCPE/vgw'],
"vCPEResCust" : ['vCPE/vgw'],
}
'''
Map the service to the list of VNFs to be orchestrated
'''
GLOBAL_SERVICE_VNF_MAPPING = {
"vFW" : ['vFW'],
"vLB" : ['vLB'],
"vVG" : ['vVG'],
"vCPE" : ['vCPE'],
"vFWCL" : ['vFWCLvFWSNK', 'vFWCLvPKG'],
"vFWNG" : ['vFWNG'],
"vCPEInfra" : ['vCPEInfra'],
"vCPEvBNG" : ['vCPEvBNG'],
"vCPEvBRGEMU" : ['vCPEvBRGEMU'],
"vCPEvGMUX" : ['vCPEvGMUX'],
"vCPEvGW" : ['vCPEvGW'],
"vCPERestCust" : ['vCPEvGW'],
}
'''
Map the service to the list of Generic Neutron Networks to be orchestrated
'''
GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING = {
"vCPEInfra" : ['CPE_SIGNAL','CPE_PUBLIC'],
"vCPEvBNG" : ['BRG_BNG', 'BNG_MUX'],
"vCPEvGMUX" : ['MUX_GW'],
"vCPEvBRGEMU" :[],
"vCPEvGW" :[],
"vCPERestCust" :[],
"vFW" :[],
"vLB" :[],
"vVG" :[],
"vFWCL" :[],
"vFWNG" :[],
}
'''
Map the service to the list of Deployment Artifacts for Closed Loop Control
'''
GLOBAL_SERVICE_DEPLOYMENT_ARTIFACT_MAPPING = {
"vCPEInfra" : [],
"vCPEvBNG" : [],
"vCPEvGMUX" : [],
"vCPEvBRGEMU" :[],
"vCPEvGW" :[],
"vCPERestCust" :[],
"vFW" :[],
"vLB" :['tca_docker_k8s_v4.yaml'],
"vVG" :[],
"vFWCL" :[],
"vFWNG" :[],
}
'''
This metadata identifes the preloads that need to be done for a VNF as there may be more than one (vLB)
"template" maps to the parameters in the preload_paramenters.py
- GLOBAL_PRELOAD_PARAMETERS[<testcase>][<template>] -
i.e. GLOBAL_PRELOAD_PARAMETERS['Demo'][dnsscaling_preload.template']
'''
GLOBAL_SERVICE_TEMPLATE_MAPPING = {
"vFW" : [{"isBase" : "true", "template" : "vfw_preload.template", "vnf_index": "0", "name_pattern": "base_vfw"}],
"vLB" : [{"isBase" : "true", "template" : "vlb_preload.template", "vnf_index": "0", "name_pattern": "base_vlb"},
{"isBase" : "false", "template" : "dnsscaling_preload.template", "vnf_index": "1", "name_pattern": "dnsscaling", "prefix" : "vDNS_"}],
"vVG" : [{"isBase" : "true", "template" : "vvg_preload.template", "vnf_index": "0", "name_pattern": "base_vvg"}],
"vCPE" : [{"isBase" : "true", "template" : "vcpe_preload.template", "vnf_index": "0", "name_pattern": "base_clearwater"}],
"vFWSNK" : [{"isBase" : "true", "template" : "vfwsnk_preload.template", "vnf_index": "0", "name_pattern": "base_vfw"}],
"vPKG" : [{"isBase" : "true", "template" : "vpkg_preload.template", "vnf_index": "0", "name_pattern": "base_vpkg"}],
"vFWCL" : [{"isBase" : "true", "template" : "vfwsnk_preload.template", "vnf_index": "0", "name_pattern": "base_vfw"},
{"isBase" : "true", "template" : "vpkg_preload.template", "vnf_index": "1", "name_pattern": "base_vpkg"}],
"vFWCLvFWSNK" : [{"isBase" : "true", "template" : "vfwsnk_preload.template", "vnf_index": "0", "name_pattern": "base_vfw"}],
"vFWCLvPKG" : [{"isBase" : "true", "template" : "vpkg_preload.template", "vnf_index": "1" , "name_pattern": "base_vpkg"}],
"vCPEInfra" : [{"isBase" : "true", "template" : "vcpe_infra_preload.template", "vnf_index": "0", "name_pattern": "base_infra"}],
"vCPEvBNG" : [{"isBase" : "true", "template" : "vcpe_vbng_preload.template", "vnf_index": "0", "name_pattern": "base_vbng"}],
"vCPEvBRGEMU" : [{"isBase" : "true", "template" : "vcpe_vbrgemu_preload.template", "vnf_index": "0", "name_pattern": "base_vbrgemu"}],
"vCPEvGMUX" : [{"isBase" : "true", "template" : "vcpe_vgmux_preload.template", "vnf_index": "0", "name_pattern": "base_vgmux"}],
"vCPEvGW" : [{"isBase" : "true", "template" : "vcpe_vgw_preload.template", "vnf_index": "0", "name_pattern": "base_vgw"}],
"vCPEResCust" : [{"isBase" : "true", "template" : "vcpe_vgw_preload.template", "vnf_index": "0", "name_pattern": "base_vgw"}],
}
'''
Used by the Heatbridge Validate Query to A&AI to locate the vserver name
'''
GLOBAL_VALIDATE_NAME_MAPPING = {"vFW" : 'vfw_name_0',
"vLB" : 'vlb_name_0',
"vVG" : '',
"vCPE" : 'vgw_name_0',
"vCPEvGW" : 'vgw_name_0',
"vCPEResCust" : 'vgw_name_0',
"vCPEvDNS" : 'vdns_name_0',
"vCPEvAAA" : 'vaaa_name_0',
"vCPEvWEB" : 'vweb_name_0',
"vCPEvDHCP" : 'vdhcp_name_0',
"vCPEvGMUX" : 'vgmux_name_0',
"vFWSNK" : 'vfw_name_0',
"vPKG" : 'vpg_name_0',
"vFWCLvFWSNK" : 'vfw_name_0',
"vFWCLvPKG" : 'vpg_name_0',
}
# Create dictionaries for new MAPPING data to join to original MAPPING data
GLOBAL_SERVICE_FOLDER_MAPPING2 = {}
GLOBAL_SERVICE_VNF_MAPPING2 = {}
GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING2 = {}
GLOBAL_SERVICE_DEPLOYMENT_ARTIFACT_MAPPING2 = {}
GLOBAL_SERVICE_TEMPLATE_MAPPING2 = {}
GLOBAL_VALIDATE_NAME_MAPPING2 = {}
folder=os.path.join('./demo/service_mapping')
subfolders = [d for d in os.listdir(folder) if os.path.isdir(os.path.join(folder, d))]
for service in subfolders:
filepath=os.path.join('./demo/service_mapping', service, 'service_mapping.json')
with open(filepath, 'r') as f:
service_mappings = json.load(f)
for mapping in service_mappings:
if mapping == 'GLOBAL_SERVICE_FOLDER_MAPPING':
GLOBAL_SERVICE_FOLDER_MAPPING2[service]=service_mappings[mapping][service]
if mapping == 'GLOBAL_SERVICE_VNF_MAPPING':
GLOBAL_SERVICE_VNF_MAPPING2[service]=service_mappings[mapping][service]
if mapping == 'GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING':
GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING2[service]=service_mappings[mapping][service]
if mapping == 'GLOBAL_SERVICE_DEPLOYMENT_ARTIFACT_MAPPING':
GLOBAL_SERVICE_DEPLOYMENT_ARTIFACT_MAPPING2[service]=service_mappings[mapping][service]
if mapping == 'GLOBAL_SERVICE_TEMPLATE_MAPPING':
# service changes for complex vnf
#GLOBAL_SERVICE_TEMPLATE_MAPPING2[service]=service_mappings[mapping][service]
for vnftype in service_mappings[mapping]:
GLOBAL_SERVICE_TEMPLATE_MAPPING2[vnftype]=service_mappings[mapping][vnftype]
if mapping == 'GLOBAL_VALIDATE_NAME_MAPPING':
# service changes for complex vnf
#GLOBAL_VALIDATE_NAME_MAPPING2[service]=service_mappings[mapping][service]
for vnftype in service_mappings[mapping]:
GLOBAL_VALIDATE_NAME_MAPPING2[vnftype]=service_mappings[mapping][vnftype]
# Merge dictionaries
GLOBAL_SERVICE_FOLDER_MAPPING = dict(GLOBAL_SERVICE_FOLDER_MAPPING.items() + GLOBAL_SERVICE_FOLDER_MAPPING2.items())
GLOBAL_SERVICE_VNF_MAPPING = dict(GLOBAL_SERVICE_VNF_MAPPING.items() + GLOBAL_SERVICE_VNF_MAPPING2.items())
GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING = dict(GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING.items() + GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING2.items())
GLOBAL_SERVICE_DEPLOYMENT_ARTIFACT_MAPPING = dict(GLOBAL_SERVICE_DEPLOYMENT_ARTIFACT_MAPPING.items() + GLOBAL_SERVICE_DEPLOYMENT_ARTIFACT_MAPPING2.items())
GLOBAL_SERVICE_TEMPLATE_MAPPING = dict(GLOBAL_SERVICE_TEMPLATE_MAPPING.items() + GLOBAL_SERVICE_TEMPLATE_MAPPING2.items())
GLOBAL_VALIDATE_NAME_MAPPING = dict(GLOBAL_VALIDATE_NAME_MAPPING.items() + GLOBAL_VALIDATE_NAME_MAPPING2.items())