diff options
Diffstat (limited to 'test/vcpe')
-rwxr-xr-x | test/vcpe/cleanvGMUX.py | 65 | ||||
-rwxr-xr-x | test/vcpe/config_sdnc_so.py | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | test/vcpe/healthcheck-k8s.py | 0 | ||||
-rwxr-xr-x | test/vcpe/loop.py | 2 | ||||
-rwxr-xr-x | test/vcpe/preload.py | 3 | ||||
-rw-r--r-- | test/vcpe/preload_templates/simple_neutron_heat.yaml | 2 | ||||
-rw-r--r-- | test/vcpe/preload_templates/template.vcpe_bng_vfmodule.json | 2 | ||||
-rw-r--r-- | test/vcpe/preload_templates/template.vcpe_brgemu_vfmodule.json | 2 | ||||
-rw-r--r-- | test/vcpe/preload_templates/template.vcpe_gwgra_vfmodule.json | 10 | ||||
-rw-r--r-- | test/vcpe/preload_templates/template.vcpe_vgw_vfmodule.json | 16 | ||||
-rwxr-xr-x | test/vcpe/soutils.py | 15 | ||||
-rwxr-xr-x | test/vcpe/vcpe.py | 4 | ||||
-rwxr-xr-x | test/vcpe/vcpe_custom_service.py | 5 | ||||
-rwxr-xr-x | test/vcpe/vcpecommon.py | 16 |
14 files changed, 120 insertions, 24 deletions
diff --git a/test/vcpe/cleanvGMUX.py b/test/vcpe/cleanvGMUX.py new file mode 100755 index 000000000..8b2751f45 --- /dev/null +++ b/test/vcpe/cleanvGMUX.py @@ -0,0 +1,65 @@ +#! /usr/bin/python + +import sys +import logging +import requests +import json +from datetime import datetime +import time + +gmux_ip = '' +logging.basicConfig(level=logging.DEBUG, format='%(message)s') +logger = logging.getLogger('') +headers = {'Content-Type': 'application/json', 'Accept': 'application/json'} +auth = 'admin', 'admin' +base_url = '' + +def list_interface(): + url = base_url + logger.info(url) + r = requests.get(url, headers=headers, auth=auth) + logger.debug(r) + response = r.json() + + logger.debug('---------------------------------------------------------------') + logger.debug(json.dumps(response, indent=4, sort_keys=True)) + logger.debug('---------------------------------------------------------------') + +def clean_gmux(): + url = base_url + r = requests.get(url, headers=headers, auth=auth) + response = r.json() + + interfaces = response.get('interfaces').get('interface') + for inf in interfaces: + name = inf.get('name') + if name.startswith('vxlanTun10'): + logger.debug('name = {0}'.format(name)) + delete_interface_v3po_l2(name) + + for inf in interfaces: + name = inf.get('name') + if name.startswith('vxlanTun10'): + logger.debug('name = {0}'.format(name)) + delete_interface(name) + +def delete_interface_v3po_l2(interface_name): + url = '{0}/interface/{1}/v3po:l2'.format(base_url, interface_name) + r = requests.delete(url, headers=headers, auth=auth) + logger.debug(r) + +def delete_interface(interface_name): + url = '{0}/interface/{1}'.format(base_url, interface_name) + r = requests.delete(url, headers=headers, auth=auth) + logger.debug(r) + +if __name__ == '__main__': + gmux_ip = sys.argv[1] + base_url = 'http://{0}:8183/restconf/config/ietf-interfaces:interfaces'.format(gmux_ip) + logger.debug('---------------------------------------------------------------') + logger.debug('list interfaces before cleaning gmux') + list_interface() + clean_gmux() + logger.debug('---------------------------------------------------------------') + logger.debug('list interfaces after cleaning gmux') + list_interface() diff --git a/test/vcpe/config_sdnc_so.py b/test/vcpe/config_sdnc_so.py index 7c063b5fd..2cfc0f9f3 100755 --- a/test/vcpe/config_sdnc_so.py +++ b/test/vcpe/config_sdnc_so.py @@ -78,7 +78,9 @@ def insert_customer_service_to_so(vcpecommon): "`SERVICE_MODEL_UUID`) VALUES ('createInstance','1','{0}'," \ "'/mso/async/services/CreateVcpeResCustService',NULL,181,NULL, NOW()," \ "'{1}');".format(parser.svc_model['modelName'], parser.svc_model['modelVersionId'])) + vcpecommon.execute_cmds_so_db(cmds) + cmds = [] cmds.append("delete from `heat_template_params` where" "`HEAT_TEMPLATE_ARTIFACT_UUID`='efee1d84-b8ec-11e7-abc4-cec278b6b50a';") cmds.append("delete from `heat_template` where ARTIFACT_UUID='efee1d84-b8ec-11e7-abc4-cec278b6b50a';") diff --git a/test/vcpe/healthcheck-k8s.py b/test/vcpe/healthcheck-k8s.py index 0aea3fb9e..0aea3fb9e 100644..100755 --- a/test/vcpe/healthcheck-k8s.py +++ b/test/vcpe/healthcheck-k8s.py diff --git a/test/vcpe/loop.py b/test/vcpe/loop.py index ad5879715..d0243960e 100755 --- a/test/vcpe/loop.py +++ b/test/vcpe/loop.py @@ -25,7 +25,7 @@ hosts = cpecommon.get_vm_ip(nodes) custom.del_vgmux_ves_mode(hosts['mux']) time.sleep(2) custom.del_vgmux_ves_collector(hosts['mux']) -exit() +#exit() time.sleep(2) logging.info('Setting vGMUX DCAE collector IP address') diff --git a/test/vcpe/preload.py b/test/vcpe/preload.py index 0d451d24f..0108566da 100755 --- a/test/vcpe/preload.py +++ b/test/vcpe/preload.py @@ -128,7 +128,7 @@ class Preload: } replace_dict.update(commont_dict) self.logger.info('Preloading vGW-GRA') - return self.preload(template_file, replace_dict, self.vcpecommon.sdnc_preload_vnf_url) + return self.preload(template_file, replace_dict, self.vcpecommon.sdnc_preload_gra_url) def preload_vfmodule(self, template_file, service_instance_id, vnf_model, vfmodule_model, common_dict, name_suffix): """ @@ -156,6 +156,7 @@ class Preload: '${vnf_name}': vfmodule_name, '${mr_ip_addr}': self.vcpecommon.mr_ip_addr, '${mr_ip_port}': self.vcpecommon.mr_ip_port, + '${sdnc_oam_ip}': self.vcpecommon.sdnc_oam_ip, '${suffix}': name_suffix} replace_dict.update(common_dict) self.logger.info('Preloading VF Module ' + vfmodule_name) diff --git a/test/vcpe/preload_templates/simple_neutron_heat.yaml b/test/vcpe/preload_templates/simple_neutron_heat.yaml index d20c08127..f64248be8 100644 --- a/test/vcpe/preload_templates/simple_neutron_heat.yaml +++ b/test/vcpe/preload_templates/simple_neutron_heat.yaml @@ -8,7 +8,7 @@ parameters: shared: type: boolean description: Shared amongst tenants - default: True + default: False outputs: network_id: description: Openstack network identifier diff --git a/test/vcpe/preload_templates/template.vcpe_bng_vfmodule.json b/test/vcpe/preload_templates/template.vcpe_bng_vfmodule.json index 7ef2fb7db..0758dc189 100644 --- a/test/vcpe/preload_templates/template.vcpe_bng_vfmodule.json +++ b/test/vcpe/preload_templates/template.vcpe_bng_vfmodule.json @@ -85,7 +85,7 @@ }, { "vnf-parameter-name": "sdnc_ip_addr", - "vnf-parameter-value": "${sdnc_brg_bng_ip}" + "vnf-parameter-value": "${sdnc_oam_ip}" }, { "vnf-parameter-name": "vbng_private_ip_0", diff --git a/test/vcpe/preload_templates/template.vcpe_brgemu_vfmodule.json b/test/vcpe/preload_templates/template.vcpe_brgemu_vfmodule.json index 7072f6825..9e04b998e 100644 --- a/test/vcpe/preload_templates/template.vcpe_brgemu_vfmodule.json +++ b/test/vcpe/preload_templates/template.vcpe_brgemu_vfmodule.json @@ -63,7 +63,7 @@ }, { "vnf-parameter-name": "sdnc_ip", - "vnf-parameter-value": "${sdnc_brg_bng_ip}" + "vnf-parameter-value": "${sdnc_oam_ip}" }, { "vnf-parameter-name": "vbrgemu_name_0", diff --git a/test/vcpe/preload_templates/template.vcpe_gwgra_vfmodule.json b/test/vcpe/preload_templates/template.vcpe_gwgra_vfmodule.json index ced57ca6a..f453aafe2 100644 --- a/test/vcpe/preload_templates/template.vcpe_gwgra_vfmodule.json +++ b/test/vcpe/preload_templates/template.vcpe_gwgra_vfmodule.json @@ -17,6 +17,14 @@ "vf-module-topology": { "vf-module-parameters": { "param": [ + { + "name": "vcpe_image_name", + "value": "vgw-casa-base-ubuntu-16-04" + }, + { + "name": "vcpe_flavor_name", + "value": "m1.medium" + }, { "name": "public_net_id", "value": "${public_net_id}" @@ -112,7 +120,7 @@ ] }, "vf-module-assignments": {}, "vf-module-topology-identifier": { - "vf-module-name": "zRegionOne${vgw_vfmod_name_index}_base_vcpe_vgw_0" + "vf-module-name": "VGW2BRG-${brg_mac}" } }, "vnf-resource-assignments": {}, diff --git a/test/vcpe/preload_templates/template.vcpe_vgw_vfmodule.json b/test/vcpe/preload_templates/template.vcpe_vgw_vfmodule.json index 87059e1e6..cda93becc 100644 --- a/test/vcpe/preload_templates/template.vcpe_vgw_vfmodule.json +++ b/test/vcpe/preload_templates/template.vcpe_vgw_vfmodule.json @@ -18,6 +18,14 @@ "VNF-API:vnf-assignments": {}, "VNF-API:vnf-parameters": [ { + "vnf-parameter-name": "vcpe_image_name", + "vnf-parameter-value": "vgw-casa-base-ubuntu-16-04" + }, + { + "vnf-parameter-name": "vcpe_flavor_name", + "vnf-parameter-value": "m1.medium" + }, + { "vnf-parameter-name": "public_net_id", "vnf-parameter-value": "${public_net_id}" }, @@ -47,15 +55,15 @@ }, { "vnf-parameter-name": "vgw_private_ip_0", - "vnf-parameter-value": "10.5.0.92" + "vnf-parameter-value": "10.5.0.125" }, { "vnf-parameter-name": "vgw_private_ip_1", - "vnf-parameter-value": "10.0.101.92" + "vnf-parameter-value": "10.0.101.125" }, { "vnf-parameter-name": "vgw_private_ip_2", - "vnf-parameter-value": "10.2.0.7" + "vnf-parameter-value": "10.2.0.40" }, { "vnf-parameter-name": "vgw_name_0", @@ -67,7 +75,7 @@ }, { "vnf-parameter-name": "vg_vgmux_tunnel_vni", - "vnf-parameter-value": "92" + "vnf-parameter-value": "125" }, { "vnf-parameter-name": "onap_private_net_id", diff --git a/test/vcpe/soutils.py b/test/vcpe/soutils.py index 3749689f2..6cddd6d08 100755 --- a/test/vcpe/soutils.py +++ b/test/vcpe/soutils.py @@ -166,6 +166,7 @@ class SoUtils: 'owningEntityName': self.vcpecommon.owning_entity_name} def generate_custom_service_request(self, instance_name, model, brg_mac): + brg_mac_enc = brg_mac.replace(':', '-') req_details = { 'modelInfo': model, 'subscriberInfo': {'subscriberName': 'Kaneohe', @@ -177,8 +178,16 @@ class SoUtils: { 'name': 'BRG_WAN_MAC_Address', 'value': brg_mac - } - , + }, + { + 'name': 'VfModuleNames', + 'value': [ + { + 'VfModuleModelInvariantUuid': self.vcpecommon.vgw_VfModuleModelInvariantUuid, + 'VfModuleName': 'VGW2BRG-{0}'.format(brg_mac_enc) + } + ] + }, { "name": "Customer_Location", "value": self.vcpecommon.customer_location_used_by_oof @@ -208,7 +217,7 @@ class SoUtils: # create service instance_name = '_'.join([self.vcpecommon.instance_name_prefix['service'], - parser.svc_model['modelName'], name_suffix]) + parser.svc_model['modelName'][0:10], name_suffix]) instance_name = instance_name.lower() req = self.generate_custom_service_request(instance_name, parser.svc_model, brg_mac) self.logger.info(json.dumps(req, indent=2, sort_keys=True)) diff --git a/test/vcpe/vcpe.py b/test/vcpe/vcpe.py index 8bd39960a..3fb96c55e 100755 --- a/test/vcpe/vcpe.py +++ b/test/vcpe/vcpe.py @@ -159,7 +159,7 @@ def closed_loop(lossrate=0): time.sleep(2) vcpecommon.del_vgmux_ves_collector() - logger.info('Staring vGMUX data reporting to DCAE') + logger.info('Starting vGMUX data reporting to DCAE') time.sleep(2) vcpecommon.set_vgmux_ves_collector() @@ -174,7 +174,7 @@ def init_so_sdnc(): logger = logging.getLogger('__name__') vcpecommon = VcpeCommon() config_sdnc_so.insert_customer_service_to_so(vcpecommon) - config_sdnc_so.insert_customer_service_to_sdnc(vcpecommon) + #config_sdnc_so.insert_customer_service_to_sdnc(vcpecommon) vgw_vfmod_name_index= 0 vcpecommon.save_object(vgw_vfmod_name_index, vcpecommon.vgw_vfmod_name_index_file) diff --git a/test/vcpe/vcpe_custom_service.py b/test/vcpe/vcpe_custom_service.py index f02802353..36012f7b0 100755 --- a/test/vcpe/vcpe_custom_service.py +++ b/test/vcpe/vcpe_custom_service.py @@ -72,10 +72,11 @@ class CustomService: brg_mac = str(raw_input("Enter the BRG MAC address: ")) else: brg_mac = self.vcpecommon.get_brg_mac_from_sdnc() + brg_mac_enc = brg_mac.replace(':', '-') # get name index self.vgw_vfmod_name_index= self.vcpecommon.load_object(self.vcpecommon.vgw_vfmod_name_index_file) self.vgw_vfmod_name_index=self.vgw_vfmod_name_index + 1 - self.save_object(vgw_vfmod_name_index,self.vcpecommon.vgw_vfmod_name_index_file) + self.vcpecommon.save_object(self.vgw_vfmod_name_index,self.vcpecommon.vgw_vfmod_name_index_file) # preload vGW if preload_dict: preloader = preload.Preload(self.vcpecommon) @@ -83,7 +84,7 @@ class CustomService: self.vcpecommon.increase_ip_address_or_vni_in_template(vgw_template_file, parameters_to_change) preloader.preload_vgw(vgw_template_file, brg_mac, preload_dict, name_suffix) # preload vGW-GRA - preloader.preload_vgw_gra(vgw_gra_template_file, brg_mac, preload_dict, name_suffix, vgw_vfmod_name_index) + preloader.preload_vgw_gra(vgw_gra_template_file, brg_mac_enc, preload_dict, name_suffix, str(self.vgw_vfmod_name_index)) # create service so = soutils.SoUtils(self.vcpecommon, 'v5') diff --git a/test/vcpe/vcpecommon.py b/test/vcpe/vcpecommon.py index f5e1b3046..18390f7fa 100755 --- a/test/vcpe/vcpecommon.py +++ b/test/vcpe/vcpecommon.py @@ -34,8 +34,8 @@ class VcpeCommon: } common_preload_config = { - 'oam_onap_net': 'oam_network_0qV7' if oom_mode else 'oam_onap_lAky', - 'oam_onap_subnet': 'oam_network_0qV7' if oom_mode else 'oam_onap_lAky', + 'oam_onap_net': 'oam_network_AiBB' if oom_mode else 'oam_onap_lAky', + 'oam_onap_subnet': 'oam_network_AiBB' if oom_mode else 'oam_onap_lAky', 'public_net': 'external', 'public_net_id': '971040b2-7059-49dc-b220-4fab50cb2ad4' } @@ -67,14 +67,16 @@ class VcpeCommon: self.logger = logging.getLogger(__name__) self.logger.info('Initializing configuration') + # vgw_VfModuleModelInvariantUuid is in rescust service csar, look in service-VcpesvcRescust1118-template.yml for groups vgw module metadata. TODO: read this value automcatically + self.vgw_VfModuleModelInvariantUuid = 'c16ad38c-2c2c-49ae-bbe8-66c7ffbcc30a' # OOM: this is the address that the brg and bng will nat for config of brg - 10.0.0.x address of k8 host for sdnc - self.sdnc_brg_bng_ip = self.get_pod_node_oam_ip(self.sdnc_controller_pod)[1] + self.sdnc_oam_ip = '10.0.0.20' # OOM: this is a k8 host external IP - self.oom_so_sdnc_aai_ip = '10.12.5.18' + self.oom_so_sdnc_aai_ip = '10.12.5.228' # OOM: this is a k8 host external IP can be same as oom_so_sdnc_aai_ip - self.oom_dcae_ves_collector = '10.12.5.18' + self.oom_dcae_ves_collector = '10.12.5.228' # OOM: this is a k8 host external IP can be same as oom_so_sdnc_aai_ip - self.mr_ip_addr = '10.12.5.18' + self.mr_ip_addr = '10.12.5.228' self.mr_ip_port = '30227' self.so_nbi_port = '30277' if self.oom_mode else '8080' self.sdnc_preloading_port = '30202' if self.oom_mode else '8282' @@ -136,7 +138,7 @@ class VcpeCommon: ############################################################################################# # SO urls, note: do NOT add a '/' at the end of the url self.so_req_api_url = {'v4': 'http://' + self.hosts['so'] + ':' + self.so_nbi_port + '/onap/so/infra/serviceInstantiation/v7/serviceInstances', - 'v5': 'http://' + self.hosts['so'] + ':' + self.so_nbi_port + '/onap/so/infraserviceInstantiation/v7/serviceInstances'} + 'v5': 'http://' + self.hosts['so'] + ':' + self.so_nbi_port + '/onap/so/infra/serviceInstantiation/v7/serviceInstances'} self.so_check_progress_api_url = 'http://' + self.hosts['so'] + ':' + self.so_nbi_port + '/onap/so/infra/orchestrationRequests/v6' self.so_userpass = 'InfraPortalClient', 'password1$' self.so_headers = {'Content-Type': 'application/json', 'Accept': 'application/json'} |