X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=smo-install%2Ftest%2Fpythonsdk%2Fsrc%2Forantests%2Fconftest.py;h=50bb0ec0388bce4b763119f492566b81d3cd3442;hb=8b713ed09d061baacf624a533be3351e7dcb0500;hp=82d19ce53480f90d8792bfc44c967e35c2776cfb;hpb=b032eca98241d74f7aebda4fe20da504b14ccba6;p=it%2Fdep.git diff --git a/smo-install/test/pythonsdk/src/orantests/conftest.py b/smo-install/test/pythonsdk/src/orantests/conftest.py index 82d19ce5..50bb0ec0 100644 --- a/smo-install/test/pythonsdk/src/orantests/conftest.py +++ b/smo-install/test/pythonsdk/src/orantests/conftest.py @@ -1,12 +1,14 @@ import pytest import logging import logging.config -from subprocess import check_output +from subprocess import check_output, run from waiting import wait import time from onapsdk.configuration import settings from oransdk.dmaap.dmaap import OranDmaap import os +import json +import requests resources_path="./resources" @@ -20,11 +22,19 @@ logger = logging.getLogger("Test Session setup") def start_network_simulators(): + logger.info ("Clean up any network simulators") + cmd="kubectl delete namespace network" + run(cmd, shell=True, check=False) + logger.info ("Start the network simulators") cmd="kubectl create namespace network" check_output(cmd, shell=True).decode('utf-8') - cmd=f"helm install --debug oran-simulator local/ru-du-simulators --namespace network -f {resources_path}/network-simulators-override.yaml -f {resources_path}/network-simulators-topology-override.yaml" + cmd=f"helm install --debug oran-simulator local/ru-du-simulators --namespace network -f {resources_path}/network-simulators-topology/network-simulators-override.yaml -f {resources_path}/network-simulators-topology/network-simulators-topology-override.yaml" check_output(cmd, shell=True).decode('utf-8') +def get_all_simulators(): + dockerFilter = check_output("kubectl get services -n network -o name | awk -F \"/\" '{print $2}'", shell=True) + return dockerFilter.splitlines() + def stop_network_simulators(): cmd="kubectl delete namespace network" return check_output(cmd, shell=True).decode('utf-8') @@ -62,6 +72,39 @@ def is_nonrtric_up(): logger.info ("NONRTRIC is Down") return False +def update_event_settings(nfName, nfType): + file = f'{resources_path}/faults-config/event-settings-'+nfType+'.json' + print ("File name:" + file) + with open(file) as json_file: + body = json.load(json_file) + url = settings.SDNC_URL + '/rests/data/network-topology:network-topology/topology=topology-netconf/node=' + nfName + '/yang-ext:mount/nts-network-function:simulation/network-function' + print ("url:"+url) + headers = { + 'content-type': 'application/yang-data+json', + 'accept': 'application/yang-data+json', + 'Authorization' : settings.SDNC_AUTH + } + try: + response = requests.put(url, verify=False, json=body, headers=headers) + print("Response:" + str(response)) + except requests.exceptions.Timeout: + sys.exit('HTTP request failed, please check you internet connection.') + except requests.exceptions.TooManyRedirects: + sys.exit('HTTP request failed, please check your proxy settings.') + except requests.exceptions.RequestException as e: + raise SystemExit(e) + return response.status_code >= 200 and response.status_code < 300 + +def enable_events_for_all_simulators(): + for container in get_all_simulators(): + name = container.decode("utf-8") + if "o-" in name: + if "o-ru" in name: + print("Set", name, update_event_settings(name, "ru")) + if "o-du" in name: + print("Set", name, update_event_settings(name, "du")) + + def wait_for_smo_to_be_running(): wait(lambda: is_onap_up() and is_nonrtric_up(), sleep_seconds=10, timeout_seconds=300, waiting_for="SMO to be ready") @@ -84,9 +127,12 @@ def pytest_sessionstart(session): start_network_simulators() wait_for_network_simulators_to_be_running() # Wait enough time to have at least the SDNR notifications sent - time.sleep(30) - logger.info ("Test Session setup completed successfully") + logger.info ("Waiting 60s that SDNR sends all registration events to VES") + time.sleep(60) + logger.info ("Enabling faults/events reporting on SDNR") + enable_events_for_all_simulators() + logger.info ("Test Session setup completed successfully") def pytest_sessionfinish(session, exitstatus):