From ea92dc3d81885b320906bc32b989ee4aea011a8c Mon Sep 17 00:00:00 2001 From: Malarvizhi Date: Wed, 23 Mar 2022 14:52:42 +0000 Subject: [PATCH] [DCAEGEN2] Update son-handler CSIT with CPS Issue-ID: DCAEGEN2-3123 Signed-off-by: Malarvizhi Paramasivam Change-Id: I3d332835b061246011234ff84834d6bc2ae74b2b --- .../testsuites/config/sonhms/config_all.json | 8 + .../testsuites/setup.sh | 7 +- .../testsuites/teardown.sh | 2 + .../testsuites/testplan.txt | 4 +- .../sonhandler/configdb-oof-sim.py | 2 +- .../sonhandler/cps-sonhandler/Dockerfile | 15 + .../sonhandler/cps-sonhandler/configdb-oof-sim.py | 98 ++ .../sonhandler/cps-sonhandler/cps/application.yml | 52 + .../cps-sonhandler/cps/cps-ran-updated.zip | Bin 0 -> 18537 bytes .../sonhandler/cps-sonhandler/cps/cps-setup.sh | 87 ++ .../cps-sonhandler/cps/docker-compose.yaml | 86 ++ .../sonhandler/cps-sonhandler/cps/ran-network.zip | Bin 0 -> 21479 bytes .../sonhandler/cps-sonhandler/cps/settings.xml | 174 +++ .../cps/sim-data/payload-cps-ran.json | 1005 ++++++++++++ .../cps/sim-data/payload-ran-network.json | 1633 ++++++++++++++++++++ .../cps-sonhandler/sim-data/cell_data.json | 13 + .../cps-sonhandler/sim-data/cell_list.json | 60 + .../cps-sonhandler/sim-data/cps-cell-details.json | 1 + .../sim-data/cps-neighbour-list.json | 2 + .../cps-sonhandler/sim-data/cps-pci-list.json | 1 + .../cps-sonhandler/sim-data/cps-pnf-name.json | 2 + .../sim-data/oof_async_configdb.json | 14 + .../sim-data/oof_async_response.json | 17 + .../cps-sonhandler/sim-data/oof_syn_response.json | 6 + .../cps-sonhandler/sim-data/pci_value.json | 4 + .../sonhandler/sim-data/cps-cell-details.json | 1 + .../sonhandler/sim-data/cps-neighbour-list.json | 2 + .../sonhandler/sim-data/cps-pci-list.json | 1 + .../sonhandler/sim-data/cps-pnf-name.json | 2 + .../testcases/data/cps_expected_payload_fm.json | 2 + .../testcases/data/cps_expected_payload_pm.json | 1 + .../testcases/data/cps_fault_notification.json | 35 + .../testcases/data/fault_notification.json | 7 +- .../testcases/data/performance_notification.json | 4 +- .../testcases/son-handler-test-cps.robot | 102 ++ .../testcases/sonhandler-test.robot | 2 +- 36 files changed, 3443 insertions(+), 9 deletions(-) create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/Dockerfile create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/configdb-oof-sim.py create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/application.yml create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/cps-ran-updated.zip create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/cps-setup.sh create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/docker-compose.yaml create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/ran-network.zip create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/settings.xml create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/sim-data/payload-cps-ran.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/sim-data/payload-ran-network.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cell_data.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cell_list.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-cell-details.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-neighbour-list.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-pci-list.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-pnf-name.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_async_configdb.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_async_response.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_syn_response.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/pci_value.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-cell-details.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-neighbour-list.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-pci-list.json create mode 100644 scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-pnf-name.json create mode 100644 tests/dcaegen2-services-son-handler/testcases/data/cps_expected_payload_fm.json create mode 100644 tests/dcaegen2-services-son-handler/testcases/data/cps_expected_payload_pm.json create mode 100644 tests/dcaegen2-services-son-handler/testcases/data/cps_fault_notification.json create mode 100644 tests/dcaegen2-services-son-handler/testcases/son-handler-test-cps.robot diff --git a/plans/dcaegen2-services-son-handler/testsuites/config/sonhms/config_all.json b/plans/dcaegen2-services-son-handler/testsuites/config/sonhms/config_all.json index 8372142d..465dfe2d 100644 --- a/plans/dcaegen2-services-son-handler/testsuites/config/sonhms/config_all.json +++ b/plans/dcaegen2-services-son-handler/testsuites/config/sonhms/config_all.json @@ -83,6 +83,14 @@ "sonhandler.cg": "sonhms-cg", "sonhandler.pollingInterval": 20, "sonhandler.badThreshold": 50, + "cps.username": "cps", + "cps.password": "cpsr0cks!", + "sonhandler.clientType": "cps", + "cps.service.url": "http://cps-tbdmt:8080", + "cps.get.celldata": "execute/cps-ran-schemaset/get-cell-data", + "cps.get.nbr.list.url":"execute/cps-ran-schemaset/get-nbr-list", + "cps.get.pci.url": "execute/ran-network-schemaset/get-pci", + "cps.get.pnf.url": "execute/ran-network-schemaset/get-pnf", "sonhandler.bufferTime": 60, "sonhandler.cid": "sonhms-cid", "sonhandler.configDb.service": "http://configdb_oof_sim:5000", diff --git a/plans/dcaegen2-services-son-handler/testsuites/setup.sh b/plans/dcaegen2-services-son-handler/testsuites/setup.sh index 6f895a1e..76fefb85 100644 --- a/plans/dcaegen2-services-son-handler/testsuites/setup.sh +++ b/plans/dcaegen2-services-son-handler/testsuites/setup.sh @@ -3,8 +3,9 @@ docker login -u docker -p docker nexus3.onap.org:10001 TEST_PLANS_DIR=$WORKSPACE/plans/dcaegen2-services-son-handler/testsuites -TEST_SCRIPTS_DIR=$WORKSPACE/scripts/dcaegen2-services-son-handler/sonhandler +TEST_SCRIPTS_DIR=$WORKSPACE/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler TEST_ROBOT_DIR=$WORKSPACE/tests/dcaegen2-services-son-handler/testcases +TEST_SCRIPTS_CPS_DIR=$WORKSPACE/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps docker-compose up -d @@ -57,5 +58,9 @@ sleep 60 CONFIGDB_OOF_SIM_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' configdb_oof_sim) echo "CONFIGDB_OOF_SIM_IP=${CONFIGDB_OOF_SIM_IP}" +# CPS set up +cd $TEST_SCRIPTS_CPS_DIR +sh cps-setup.sh + ROBOT_VARIABLES="-v ZOOKEEPER_IP:${ZOOKEEPER_IP} -v KAFKA_IP:${KAFKA_IP} -v DMAAP_IP:${DMAAP_IP} -v SONHMS_POSTGRES_IP:${SONHMS_POSTGRES_IP} -v SONHMS_IP:${SONHMS_IP} -v CONFIGDB_OOF_SIM_IP:${CONFIGDB_OOF_SIM_IP} -v TEST_ROBOT_DIR:${TEST_ROBOT_DIR}" diff --git a/plans/dcaegen2-services-son-handler/testsuites/teardown.sh b/plans/dcaegen2-services-son-handler/testsuites/teardown.sh index 7db3d2f6..14019ef0 100644 --- a/plans/dcaegen2-services-son-handler/testsuites/teardown.sh +++ b/plans/dcaegen2-services-son-handler/testsuites/teardown.sh @@ -1,9 +1,11 @@ #!/bin/bash echo "Starting teardown script" TEST_PLANS_DIR=$WORKSPACE/plans/dcaegen2-services-son-handler/testsuites +TEST_SCRIPTS_CPS_DIR=$WORKSPACE/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps mkdir -p $WORKSPACE/archives docker container stop configdb_oof_sim docker container rm configdb_oof_sim docker-compose -f $TEST_PLANS_DIR/docker-compose.yaml logs > $WORKSPACE/archives/sonhandler-docker-compose.log docker-compose -f $TEST_PLANS_DIR/docker-compose.yaml down -v +docker-compose -f $TEST_SCRIPTS_CPS_DIR/docker-compose.yaml down -v diff --git a/plans/dcaegen2-services-son-handler/testsuites/testplan.txt b/plans/dcaegen2-services-son-handler/testsuites/testplan.txt index 2f8b7606..54e1c1f3 100644 --- a/plans/dcaegen2-services-son-handler/testsuites/testplan.txt +++ b/plans/dcaegen2-services-son-handler/testsuites/testplan.txt @@ -1,3 +1,5 @@ # Test suites are relative paths under [integration/csit.git]/tests/. # Place the suites in run order. -dcaegen2-services-son-handler/testcases +# dcaegen2-services-son-handler/testcases +# dcaegen2-services-son-handler/testcases/sonhandler-test.robot +dcaegen2-services-son-handler/testcases/son-handler-test-cps.robot diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/configdb-oof-sim.py b/scripts/dcaegen2-services-son-handler/sonhandler/configdb-oof-sim.py index 7a51c951..b9877165 100644 --- a/scripts/dcaegen2-services-son-handler/sonhandler/configdb-oof-sim.py +++ b/scripts/dcaegen2-services-son-handler/sonhandler/configdb-oof-sim.py @@ -8,7 +8,6 @@ import time app = flask.Flask(__name__) app.config["DEBUG"] = True - def get_neighbour_cell_list_for_cell_id(): with open('cell_list.json') as cell_list: data = json.load(cell_list) @@ -96,3 +95,4 @@ def oof_optimizatio_result(): app.run(host='0.0.0.0') +app.run(debug=True) diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/Dockerfile b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/Dockerfile new file mode 100644 index 00000000..688a2fe0 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/Dockerfile @@ -0,0 +1,15 @@ +FROM python:alpine3.7 + +ADD configdb-oof-sim.py / + +ADD ./sim-data / + +RUN pip install Flask + +RUN pip install requests + +EXPOSE 5000 + +CMD ["flask", "run", "--host", "0.0.0.0"] + +CMD [ "python", "./configdb-oof-sim.py" ] diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/configdb-oof-sim.py b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/configdb-oof-sim.py new file mode 100644 index 00000000..b9877165 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/configdb-oof-sim.py @@ -0,0 +1,98 @@ +import flask +import json +from flask import request +import requests +import threading +import time + +app = flask.Flask(__name__) +app.config["DEBUG"] = True + +def get_neighbour_cell_list_for_cell_id(): + with open('cell_list.json') as cell_list: + data = json.load(cell_list) + if not data: + return {"Error": "Unable to read file"}, 503 + return data, None + +def get_pci_for_cell_id(): + with open('pci_value.json') as pci_value: + data = json.load(pci_value) + if not data: + return {"Error": "Unable to read file"}, 503 + return data, None + +def get_cell_data_for_cell_id(): + with open('cell_data.json') as cell_data: + data = json.load(cell_data) + if not data: + return {"Error": "Unable to read file"}, 503 + return data, None + +def get_oof_sync_response(): + with open('oof_syn_response.json') as syncRes: + data = json.load(syncRes) + if not data: + return {"Error": "Unale to read file"}, 503 + return data, None + +def get_oof_async_response(callback_url, transaction_id): + time.sleep(10) + with open('oof_async_response.json') as asyncRes: + data = json.load(asyncRes) + data['transactionId'] = transaction_id + if not data: + return {"Error": "Unable to read file"}, 503 + res = requests.post(callback_url, json=data) + print('response from server:',res.text) + return res + +@app.route("/api/sdnc-config-db/v3/getNbrList//", methods=["GET"]) +def get_neighbour_list(cell_id, ts): + data, status = get_neighbour_cell_list_for_cell_id() + if not status: + return data + return data, 503 + +@app.route("/api/sdnc-config-db/v3/getPCI//", methods=["GET"]) +def get_pci(cell_id, ts): + data, status = get_pci_for_cell_id() + if not status: + return data + return data, 503 +@app.route("/api/sdnc-config-db/v3/getPnfId//", methods=["GET"]) +def get_pnf_id(cell_id, ts): + data, status = get_pci_for_cell_id() + data['value'] = 'ncserver5' + if not status: + return data + return data, 503 + +@app.route("/api/sdnc-config-db/v3/getCell/", methods=["GET"]) +def get_cell_data(cell_id): + data, status = get_cell_data_for_cell_id() + if not status: + return data + return data, 503 + +@app.route("/api/oof/v1/pci",methods=["POST"]) +def oof_optimizatio_result(): + content = request.get_json() + callback_url = content['requestInfo']['callbackUrl'] + transaction_id = content['requestInfo']['transactionId'] + try: + task = threading.Thread(target=get_oof_async_response, args=(callback_url,transaction_id,)) + task.daemon = True + task.start() + except: + print("Error: Unable to start thread") + + data, status = get_oof_sync_response() + + if not status: + return data, 202 + return data, 503 + + +app.run(host='0.0.0.0') +app.run(debug=True) diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/application.yml b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/application.yml new file mode 100644 index 00000000..ec02d414 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/application.yml @@ -0,0 +1,52 @@ +############################################################################### +## ============LICENSE_START======================================================= +## ONAP +## ================================================================================ +## Copyright (C) 2022 Wipro Limited. +## ============================================================================== +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## ============LICENSE_END========================================================= +## +################################################################################ + +spring: + datasource: + initialization-mode: always + initialize: true + url: jdbc:postgresql://postgres:5432/cps_template_db + username: postgres + password: postgres + continue-on-error: true + jpa: + hibernate: + ddl-auto: update + properties: + hibernate: + temp: + use_jdbc_metadata_defaults: false + database-platform: org.hibernate.dialect.PostgreSQLDialect +app: + cpsCoreConfiguration: + url: http://cps-and-ncmp:8080/cps/api/v1/dataspaces/sondataspace + username: cpsuser + password: cpsr0cks! + ncmpConfiguration: + url: http://cps-and-ncmp:8080/cps/api/v1 + username: cpsuser + password: cpsr0cks! + cpsClient: cpsCore + schemaToAnchor: + ran-coverage-area: coverage-area-onap + e2e-cavsta-schemaset: e2e-cavsta1 + cps-ran-schemaset: cps-ran-anchor + ran-network-schemaset: ran-network-anchor diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/cps-ran-updated.zip b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/cps-ran-updated.zip new file mode 100644 index 0000000000000000000000000000000000000000..c3e7924b9b6b40e05eca806d24868c68ac12221c GIT binary patch literal 18537 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 literal 0 HcmV?d00001 diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/cps-setup.sh b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/cps-setup.sh new file mode 100644 index 00000000..4a969f3f --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/cps-setup.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +#Building cps-tbdmt image +git clone "https://gerrit.onap.org/r/cps/cps-tbdmt" +mvn -f cps-tbdmt/ -Dmaven.test.skip clean install --settings settings.xml +sudo rm -r cps-tbdmt/ + +#Creating containers for cps and cps-tbdmt +docker-compose up -d + +sleep 80 + +# Uploading data to cps & cps-tbdmt +CPS_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cps-and-ncmp ) +echo $CPS_IP +CPS_TBDMT_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cps-tbdmt ) +echo $CPS_TBDMT_IP + +echo "Creating dataspace: " +curl --location --user cpsuser:cpsr0cks! -H "Accept: application/json" -H "Content-Type: application/json" \ + --request POST \ + http://$CPS_IP:8080/cps/api/v1/dataspaces?dataspace-name=sondataspace +sleep 5 + +echo "\nCreating schema sets: " +curl --location --user cpsuser:cpsr0cks! \ + --request POST \ + http://$CPS_IP:8080/cps/api/v1/dataspaces/sondataspace/schema-sets --form 'file=@"ran-network.zip"' --form 'schema-set-name="ran-network-schemaset"' + +curl --location --user cpsuser:cpsr0cks! \ + --request POST \ + http://$CPS_IP:8080/cps/api/v1/dataspaces/sondataspace/schema-sets --form 'file=@"cps-ran-updated.zip"' --form 'schema-set-name="cps-ran-schemaset"' +sleep 5 + +echo "\nCreating anchor: " +curl --location --user cpsuser:cpsr0cks! --request POST \ + http://$CPS_IP:8080/cps/api/v1/dataspaces/sondataspace/anchors?schema-set-name=ran-network-schemaset \ + -d anchor-name=ran-network-anchor + +curl --location --user cpsuser:cpsr0cks! --request POST \ + http://$CPS_IP:8080/cps/api/v1/dataspaces/sondataspace/anchors?schema-set-name=cps-ran-schemaset \ + -d anchor-name=cps-ran-anchor +sleep 5 + +echo "\nUploading cps payload " +curl --location --user cpsuser:cpsr0cks! --request POST \ + http://$CPS_IP:8080/cps/api/v1/dataspaces/sondataspace/anchors/ran-network-anchor/nodes \ + --header 'Content-Type: application/json' \ + -d @sim-data/payload-ran-network.json +sleep 5 + +curl --location --user cpsuser:cpsr0cks! --request POST \ + http://$CPS_IP:8080/cps/api/v1/dataspaces/sondataspace/anchors/cps-ran-anchor/nodes \ + --header 'Content-Type: application/json' \ + -d @sim-data/payload-cps-ran.json +sleep 5 + +echo "\nUploading tbdmt-templates" + +curl --location --request POST \ +http://$CPS_TBDMT_IP:8080/templates \ + --header 'Content-Type: application/json' \ + --data-raw '{"templateId": "get-cell","model": "cps-ran-schemaset","requestType": "query-cps-path","xpathTemplate": "//NRCellCU[@idNRCellCU='\''{{cellId}}'\'']//ancestor::Regions","includeDescendants": true, "transformParam":"Regions"}' + +sleep 3 + +curl --location --request POST \ +http://$CPS_TBDMT_IP:8080/templates \ + --header 'Content-Type: application/json' \ + --data-raw '{"templateId": "get-pnf","model": "ran-network-schemaset","requestType": "query-cps-path","xpathTemplate": "//NRCellDU[@idNRCellDU='\''{{cellId}}'\'']/ancestor::GNBDUFunction","includeDescendants": true,"transformParam":"ietf-inet-types:GNBDUFunction"}' + +sleep 3 + +curl --location --request POST \ +http://$CPS_TBDMT_IP:8080/templates \ + --header 'Content-Type: application/json' \ + --data-raw '{"templateId": "get-pci","model": "ran-network-schemaset","requestType": "query-cps-path","xpathTemplate": "//NRCellDU[@idNRCellDU='\''{{cellId}}'\'']","includeDescendants": true,"transformParam":"ietf-inet-types:NRCellDU,attributes"}' + +sleep 3 + +curl --location --request POST \ +http://$CPS_TBDMT_IP:8080/templates \ + --header 'Content-Type: application/json' \ + --data-raw '{"templateId": "get-nbr-list","model": "cps-ran-schemaset","requestType": "get","xpathTemplate": "/cps-ran-schema/Regions[@regionId='\''{{10000000}}'\'']/cps-region-cell-mapping/NRCellCU[@idNRCellCU='\''{{cellId}}'\'']","includeDescendants": true, "transformParam":"cps-ran-schema-model:NRCellCU"}' + +sleep 3 + diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/docker-compose.yaml b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/docker-compose.yaml new file mode 100644 index 00000000..0516b6df --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/docker-compose.yaml @@ -0,0 +1,86 @@ +# ============LICENSE_START======================================================= +# cps-tdmt +# ================================================================================ +# Copyright (C) 2022 Wipro Limited. +# ============================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= + + +version: "3.3" +networks: + testsuites_sonhms-default: + external: TRUE +services: + cps-and-ncmp: + container_name: cps-and-ncmp + hostname: cps-and-ncmp + image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-and-ncmp:${VERSION:-latest} + ports: + - "8883:8080" + - "8887:8081" + networks: + - testsuites_sonhms-default + environment: + CPS_USERNAME: ${CPS_USERNAME:-cpsuser} + CPS_PASSWORD: ${CPS_PASSWORD:-cpsr0cks!} + DB_HOST: dbpostgresql + DB_USERNAME: ${DB_USERNAME:-cps} + DB_PASSWORD: ${DB_PASSWORD:-cps} + DMI_USERNAME: ${DMI_USERNAME:-cpsuser} + DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!} + restart: unless-stopped + depends_on: + - dbpostgresql + + dbpostgresql: + container_name: dbpostgresql + image: postgres:13.2-alpine + ports: + - '5432:5432' + networks: + - testsuites_sonhms-default + environment: + POSTGRES_DB: cpsdb + POSTGRES_USER: ${DB_USERNAME:-cps} + POSTGRES_PASSWORD: ${DB_PASSWORD:-cps} + postgres: + image: 'postgres:12.4-alpine' + container_name: cps-tbdmt-postgres + hostname: postgres + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - POSTGRES_DB=cps_template_db + ports: + - 5432 + healthcheck: + test: ["CMD", "nc", "-z", "localhost", "5432"] + interval: 30s + timeout: 10s + retries: 5 + networks: + - testsuites_sonhms-default + cps-tbdmt: + image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-tbdmt:${VERSION:-latest} + container_name: cps-tbdmt + hostname: cps-tbdmt + ports: + - "8088:8080" + volumes: + - "./application.yml:/app/resources/application.yml" + depends_on: + - postgres + restart: on-failure:10 + networks: + - testsuites_sonhms-default diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/ran-network.zip b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/ran-network.zip new file mode 100644 index 0000000000000000000000000000000000000000..080477debd6b966c150b2224691a47985a8b48f3 GIT binary patch literal 21479 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 Kka+tI-y>GNLI>$#u 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 + + + +${user.home}/.m2/repository + + + onap-settings + + https://nexus.onap.org + https://nexus.onap.org/content/sites/raw + https://nexus.onap.org/service/local/repositories/raw/content + ecomp-raw + + + nexus3.onap.org:10003 + nexus3.onap.org:10002 + nexus3.onap.org:10001 + nexus3.onap.org:10003 + + + + onap-snapshots + + + onap-snapshots + onap-snapshots + https://nexus.onap.org/content/repositories/snapshots/ + + false + + + true + + + + + + onap-snapshots + onap-snapshots + https://nexus.onap.org/content/repositories/snapshots/ + + false + + + true + + + + + + onap-releases + + + onap-releases + onap-releases + https://nexus.onap.org/content/repositories/releases/ + + true + + + false + + + + + + onap-releases + onap-releases + https://nexus.onap.org/content/repositories/releases/ + + true + + + + false + + + + + + onap-public + + + central + https://repo1.maven.org/maven2/ + + + onap-public + onap-public + https://nexus.onap.org/content/repositories/public/ + + true + + + + + false + + + + + + central + https://repo1.maven.org/maven2/ + + + + onap-public + onap-public + https://nexus.onap.org/content/repositories/public/ + + true + + + false + + + + + + + local-public + + + local-public + local-public + http://nexus-proxy:8081/nexus/content/repositories/public/ + + true + + + false + + + + + + local-public + local-public + http://nexus-proxy:8081/nexus/content/repositories/public/ + + true + + + false + + + + + + + + onap-settings + onap-snapshots + onap-releases + onap-public + + + diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/sim-data/payload-cps-ran.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/sim-data/payload-cps-ran.json new file mode 100644 index 00000000..b8d3a3e2 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/sim-data/payload-cps-ran.json @@ -0,0 +1,1005 @@ +{ + "cps-ran-schema-model:cps-ran-schema": { + "Regions": [{ + "regionId": "10000000", + "cps-region-cell-mapping": { + + "NRCellCU": [{ + "idNRCellCU": "15289", + "attributes": { + "cellLocalId": 15289 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15290", + "attributes": { + "nRTCI": "15290", + "nRPCI": 1, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15296", + "attributes": { + "nRTCI": "15296", + "nRPCI": 2, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15687", + "attributes": { + "nRTCI": "15687", + "nRPCI": 3, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15290", + "attributes": { + "cellLocalId": 15290 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15687", + "attributes": { + "nRTCI": "15687", + "nRPCI": 3, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15289", + "attributes": { + "nRTCI": "15289", + "nRPCI": 0, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15296", + "attributes": { + "nRTCI": "15296", + "nRPCI": 2, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15296", + "attributes": { + "cellLocalId": 15296 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15290", + "attributes": { + "nRTCI": "15290", + "nRPCI": 1, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15289", + "attributes": { + "nRTCI": "15289", + "nRPCI": 0, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15687", + "attributes": { + "nRTCI": "15687", + "nRPCI": 3, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15687", + "attributes": { + "cellLocalId": 15687 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15289", + "attributes": { + "nRTCI": "15289", + "nRPCI": 0, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15290", + "attributes": { + "nRTCI": "15290", + "nRPCI": 1, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15296", + "attributes": { + "nRTCI": "15296", + "nRPCI": 2, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15689", + "attributes": { + "cellLocalId": 15689 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15825", + "attributes": { + "nRTCI": "15825", + "nRPCI": 4, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15826", + "attributes": { + "nRTCI": "15826", + "nRPCI": 5, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13999", + "attributes": { + "nRTCI": "13999", + "nRPCI": 6, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15155", + "attributes": { + "cellLocalId": 15155 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15176", + "attributes": { + "nRTCI": "15176", + "nRPCI": 7, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15174", + "attributes": { + "nRTCI": "15174", + "nRPCI": 8, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15175", + "attributes": { + "nRTCI": "15175", + "nRPCI": 9, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15174", + "attributes": { + "cellLocalId": 15174 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15175", + "attributes": { + "nRTCI": "15175", + "nRPCI": 9, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15176", + "attributes": { + "nRTCI": "15176", + "nRPCI": 7, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15155", + "attributes": { + "nRTCI": "15155", + "nRPCI": 10, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15175", + "attributes": { + "cellLocalId": 15175 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15174", + "attributes": { + "nRTCI": "15174", + "nRPCI": 8, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15176", + "attributes": { + "nRTCI": "15176", + "nRPCI": 7, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15155", + "attributes": { + "nRTCI": "15155", + "nRPCI": 10, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15176", + "attributes": { + "cellLocalId": 15176 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15155", + "attributes": { + "nRTCI": "15155", + "nRPCI": 10, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15174", + "attributes": { + "nRTCI": "15174", + "nRPCI": 8, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15175", + "attributes": { + "nRTCI": "15175", + "nRPCI": 9, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15825", + "attributes": { + "cellLocalId": 15825 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15826", + "attributes": { + "nRTCI": "15826", + "nRPCI": 5, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15689", + "attributes": { + "nRTCI": "15689", + "nRPCI": 11, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13999", + "attributes": { + "nRTCI": "13999", + "nRPCI": 6, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15826", + "attributes": { + "cellLocalId": 15826 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15689", + "attributes": { + "nRTCI": "15689", + "nRPCI": 11, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13999", + "attributes": { + "nRTCI": "13999", + "nRPCI": 6, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15825", + "attributes": { + "nRTCI": "15825", + "nRPCI": 4, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15425", + "attributes": { + "cellLocalId": 15425 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15426", + "attributes": { + "nRTCI": "15426", + "nRPCI": 12, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14000", + "attributes": { + "nRTCI": "14000", + "nRPCI": 13, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15426", + "attributes": { + "cellLocalId": 15426 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15425", + "attributes": { + "nRTCI": "15425", + "nRPCI": 14, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14000", + "attributes": { + "nRTCI": "14000", + "nRPCI": 13, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "13999", + "attributes": { + "cellLocalId": 13999 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15825", + "attributes": { + "nRTCI": "15825", + "nRPCI": 4, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15826", + "attributes": { + "nRTCI": "15826", + "nRPCI": 5, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15689", + "attributes": { + "nRTCI": "15689", + "nRPCI": 11, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "14000", + "attributes": { + "cellLocalId": 14000 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15425", + "attributes": { + "nRTCI": "15425", + "nRPCI": 14, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15426", + "attributes": { + "nRTCI": "15426", + "nRPCI": 12, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "11561", + "attributes": { + "cellLocalId": 11561 + }, + "NRCellRelation": [{ + "idNRCellRelation": "11562", + "attributes": { + "nRTCI": "11562", + "nRPCI": 16, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11568", + "attributes": { + "nRTCI": "11568", + "nRPCI": 17, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11569", + "attributes": { + "nRTCI": "11569", + "nRPCI": 18, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "11562", + "attributes": { + "cellLocalId": 11562 + }, + "NRCellRelation": [{ + "idNRCellRelation": "11568", + "attributes": { + "nRTCI": "11568", + "nRPCI": 17, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11569", + "attributes": { + "nRTCI": "11569", + "nRPCI": 18, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11561", + "attributes": { + "nRTCI": "11561", + "nRPCI": 15, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "11568", + "attributes": { + "cellLocalId": 11568 + }, + "NRCellRelation": [{ + "idNRCellRelation": "11569", + "attributes": { + "nRTCI": "11569", + "nRPCI": 18, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11562", + "attributes": { + "nRTCI": "11562", + "nRPCI": 16, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11561", + "attributes": { + "nRTCI": "11561", + "nRPCI": 15, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "11569", + "attributes": { + "cellLocalId": 11569 + }, + "NRCellRelation": [{ + "idNRCellRelation": "11568", + "attributes": { + "nRTCI": "11568", + "nRPCI": 17, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11562", + "attributes": { + "nRTCI": "11562", + "nRPCI": 16, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11561", + "attributes": { + "nRTCI": "11561", + "nRPCI": 15, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "10896", + "attributes": { + "cellLocalId": 10896 + }, + "NRCellRelation": [{ + "idNRCellRelation": "14655", + "attributes": { + "nRTCI": "14655", + "nRPCI": 19, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14656", + "attributes": { + "nRTCI": "14656", + "nRPCI": 20, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10897", + "attributes": { + "nRTCI": "10897", + "nRPCI": 21, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "10897", + "attributes": { + "cellLocalId": 10897 + }, + "NRCellRelation": [{ + "idNRCellRelation": "10896", + "attributes": { + "nRTCI": "10896", + "nRPCI": 22, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14656", + "attributes": { + "nRTCI": "14656", + "nRPCI": 20, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14655", + "attributes": { + "nRTCI": "14655", + "nRPCI": 19, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "14655", + "attributes": { + "cellLocalId": 14655 + }, + "NRCellRelation": [{ + "idNRCellRelation": "14656", + "attributes": { + "nRTCI": "14656", + "nRPCI": 20, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10896", + "attributes": { + "nRTCI": "10896", + "nRPCI": 22, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10897", + "attributes": { + "nRTCI": "10897", + "nRPCI": 21, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "14656", + "attributes": { + "cellLocalId": 14656 + }, + "NRCellRelation": [{ + "idNRCellRelation": "14655", + "attributes": { + "nRTCI": "14655", + "nRPCI": 19, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10896", + "attributes": { + "nRTCI": "10896", + "nRPCI": 22, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10897", + "attributes": { + "nRTCI": "10897", + "nRPCI": 21, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "13905", + "attributes": { + "cellLocalId": 13905 + }, + "NRCellRelation": [{ + "idNRCellRelation": "13910", + "attributes": { + "nRTCI": "13910", + "nRPCI": 23, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15360", + "attributes": { + "nRTCI": "15360", + "nRPCI": 24, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15361", + "attributes": { + "nRTCI": "15361", + "nRPCI": 25, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "13910", + "attributes": { + "cellLocalId": 13910 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15360", + "attributes": { + "nRTCI": "15360", + "nRPCI": 24, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15361", + "attributes": { + "nRTCI": "15361", + "nRPCI": 25, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13905", + "attributes": { + "nRTCI": "13905", + "nRPCI": 26, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15360", + "attributes": { + "cellLocalId": 15360 + }, + "NRCellRelation": [{ + "idNRCellRelation": "13905", + "attributes": { + "nRTCI": "13905", + "nRPCI": 26, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13910", + "attributes": { + "nRTCI": "13910", + "nRPCI": 23, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15361", + "attributes": { + "nRTCI": "15361", + "nRPCI": 25, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15361", + "attributes": { + "cellLocalId": 15361 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15360", + "attributes": { + "nRTCI": "15360", + "nRPCI": 24, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13910", + "attributes": { + "nRTCI": "13910", + "nRPCI": 23, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13905", + "attributes": { + "nRTCI": "13905", + "nRPCI": 26, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15548", + "attributes": { + "cellLocalId": 15548 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15549", + "attributes": { + "nRTCI": "15549", + "nRPCI": 27, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14427", + "attributes": { + "nRTCI": "14427", + "nRPCI": 28, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15549", + "attributes": { + "cellLocalId": 15549 + }, + "NRCellRelation": [{ + "idNRCellRelation": "14427", + "attributes": { + "nRTCI": "14427", + "nRPCI": 28, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15548", + "attributes": { + "nRTCI": "15548", + "nRPCI": 29, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "14427", + "attributes": { + "cellLocalId": 14427 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15549", + "attributes": { + "nRTCI": "15549", + "nRPCI": 27, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15548", + "attributes": { + "nRTCI": "15548", + "nRPCI": 29, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15425", + "attributes": { + "nRTCI": "15425", + "nRPCI": 14, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15296", + "attributes": { + "nRTCI": "15296", + "nRPCI": 2, + "isHOAllowed": true + } + } + ] + } + ] + + } + }, + { + "regionId": "netw2000", + "cps-region-cell-mapping": { + "NRCellCU": [{ + "idNRCellCU": "15155", + "attributes": { + "cellLocalId": "15155" + }, + "NRCellRelation": [{ + "idNRCellRelation": "15689", + "attributes": { + "nRTCI": "15689", + "nRPCI": 0, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15174", + "attributes": { + "nRTCI": "15174", + "nRPCI": 1, + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15175", + "attributes": { + "nRTCI": "15175", + "nRPCI": 2, + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15174", + "attributes": { + "cellLocalId": "15174" + }, + "NRCellRelation": [{ + "idNRCellRelation": "15175", + "attributes": { + "nRTCI": "15175", + "nRPCI": 0, + "isHOAllowed": true + } + }] + }, + { + "idNRCellCU": "15175", + "attributes": { + "cellLocalId": "15175" + }, + "NRCellRelation": [{ + "idNRCellRelation": "15176", + "attributes": { + "nRTCI": "15176", + "nRPCI": 0, + "isHOAllowed": true + } + }] + }, + { + "idNRCellCU": "15176", + "attributes": { + "cellLocalId": "15176" + }, + "NRCellRelation": [{ + "idNRCellRelation": "15826", + "attributes": { + "nRTCI": "15826", + "nRPCI": 0, + "isHOAllowed": true + } + }] + }, + { + "idNRCellCU": "15825", + "attributes": { + "cellLocalId": "15825" + }, + "NRCellRelation": [{ + "idNRCellRelation": "15425", + "attributes": { + "nRTCI": "15425", + "nRPCI": 2, + "isHOAllowed": true + } + }] + } + ] + } + } + ], + "NearRTRIC": [] + } +} diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/sim-data/payload-ran-network.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/sim-data/payload-ran-network.json new file mode 100644 index 00000000..6b791433 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/cps/sim-data/payload-ran-network.json @@ -0,0 +1,1633 @@ +{ + "ran-network:ran-network": { + "NearRTRIC": [{ + "idNearRTRIC": "11", + "GNBCUUPFunction": [{ + "idGNBCUUPFunction": "1111", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBId": 25 + } + }], + "GNBCUCPFunction": [{ + "idGNBCUCPFunction": "cucpserver1", + "attributes": { + "gNBCUName": "cucpserver1", + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBIdLength": 25, + "gNBId": 25 + }, + "NRCellCU": [{ + "idNRCellCU": "15289", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15289 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15290", + "attributes": { + "nRTCI": "15290", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15296", + "attributes": { + "nRTCI": "15296", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15687", + "attributes": { + "nRTCI": "15687", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15290", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15290 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15687", + "attributes": { + "nRTCI": "15687", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15289", + "attributes": { + "nRTCI": "15", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15296", + "attributes": { + "nRTCI": "15296", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15296", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15296 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15290", + "attributes": { + "nRTCI": "15290", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15289", + "attributes": { + "nRTCI": "15289", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15687", + "attributes": { + "nRTCI": "15687", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15687", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15687 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15289", + "attributes": { + "nRTCI": "15289", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15290", + "attributes": { + "nRTCI": "15290", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15296", + "attributes": { + "nRTCI": "15296", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15689", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15689 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15825", + "attributes": { + "nRTCI": "15825", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15826", + "attributes": { + "nRTCI": "15826", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13999", + "attributes": { + "nRTCI": "13999", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15155", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15155 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15176", + "attributes": { + "nRTCI": "15176", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15174", + "attributes": { + "nRTCI": "15174", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15175", + "attributes": { + "nRTCI": "15175", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15174", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15174 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15175", + "attributes": { + "nRTCI": "15175", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15176", + "attributes": { + "nRTCI": "15176", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15155", + "attributes": { + "nRTCI": "15155", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15175", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15175 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15174", + "attributes": { + "nRTCI": "15174", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15176", + "attributes": { + "nRTCI": "15176", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15155", + "attributes": { + "nRTCI": "15155", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15176", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15176 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15155", + "attributes": { + "nRTCI": "15155", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15174", + "attributes": { + "nRTCI": "15174", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15175", + "attributes": { + "nRTCI": "15175", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15825", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15825 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15826", + "attributes": { + "nRTCI": "15826", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15689", + "attributes": { + "nRTCI": "15689", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13999", + "attributes": { + "nRTCI": "13999", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15826", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15826 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15689", + "attributes": { + "nRTCI": "15689", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13999", + "attributes": { + "nRTCI": "13999", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15825", + "attributes": { + "nRTCI": "15825", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15425", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15425 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15426", + "attributes": { + "nRTCI": "15426", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14000", + "attributes": { + "nRTCI": "14000", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15426", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15426 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15425", + "attributes": { + "nRTCI": "15425", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14000", + "attributes": { + "nRTCI": "14000", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "13999", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 13999 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15825", + "attributes": { + "nRTCI": "15825", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15826", + "attributes": { + "nRTCI": "15826", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15689", + "attributes": { + "nRTCI": "15689", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "14000", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 14000 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15425", + "attributes": { + "nRTCI": "15425", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15426", + "attributes": { + "nRTCI": "15426", + "isHOAllowed": true + } + } + ] + } + ] + }], + "GNBDUFunction": [{ + "idGNBDUFunction": "110", + "attributes": { + "gNBDUId": 110, + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBDUName": "gnduserver1", + "gNBIdLength": 25 + }, + "NRCellDU": [{ + "idNRCellDU": "15296", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15296, + "administrativeState": "UNLOCKED", + "nRPCI": 2, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15689", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15689, + "administrativeState": "UNLOCKED", + "nRPCI": 11, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15687", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15687, + "administrativeState": "UNLOCKED", + "nRPCI": 3, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15289", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15289, + "administrativeState": "UNLOCKED", + "nRPCI": 0, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15290", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15290, + "administrativeState": "UNLOCKED", + "nRPCI": 1, + "nRTAC": 310 + } + } + ] + }, + { + "idGNBDUFunction": "330", + "attributes": { + "gNBDUId": 330, + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBDUName": "gnduserver3", + "gNBIdLength": 25 + }, + "NRCellDU": [{ + "idNRCellDU": "15425", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15425, + "administrativeState": "UNLOCKED", + "nRPCI": 14, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15826", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15826, + "administrativeState": "UNLOCKED", + "nRPCI": 5, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "13999", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 13999, + "administrativeState": "UNLOCKED", + "nRPCI": 6, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15426", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15426, + "administrativeState": "UNLOCKED", + "nRPCI": 12, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "14000", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 14000, + "administrativeState": "UNLOCKED", + "nRPCI": 13, + "nRTAC": 310 + } + } + ] + }, + { + "idGNBDUFunction": "220", + "attributes": { + "gNBDUId": 220, + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBDUName": "gnduserver2", + "gNBIdLength": 25 + }, + "NRCellDU": [{ + "idNRCellDU": "15174", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15174, + "administrativeState": "UNLOCKED", + "nRPCI": 8, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15175", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15175, + "administrativeState": "UNLOCKED", + "nRPCI": 9, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15825", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15825, + "administrativeState": "UNLOCKED", + "nRPCI": 4, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15176", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15176, + "administrativeState": "UNLOCKED", + "nRPCI": 7, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15155", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15155, + "administrativeState": "UNLOCKED", + "nRPCI": 10, + "nRTAC": 310 + } + } + ] + } + ] + }, + { + "idNearRTRIC": "22", + "GNBCUUPFunction": [{ + "idGNBCUUPFunction": "2222", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBId": 25 + } + }], + "GNBCUCPFunction": [{ + "idGNBCUCPFunction": "cucpserver2", + "attributes": { + "gNBCUName": "cucpserver2", + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBIdLength": 25, + "gNBId": 25 + }, + "NRCellCU": [{ + "idNRCellCU": "11561", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 11561 + }, + "NRCellRelation": [{ + "idNRCellRelation": "11562", + "attributes": { + "nRTCI": "11562", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11568", + "attributes": { + "nRTCI": "11568", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11569", + "attributes": { + "nRTCI": "11569", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "11562", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 11562 + }, + "NRCellRelation": [{ + "idNRCellRelation": "11568", + "attributes": { + "nRTCI": "11568", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11569", + "attributes": { + "nRTCI": "11569", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11561", + "attributes": { + "nRTCI": "11561", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "11568", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 11568 + }, + "NRCellRelation": [{ + "idNRCellRelation": "11569", + "attributes": { + "nRTCI": "11569", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11562", + "attributes": { + "nRTCI": "11562", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11561", + "attributes": { + "nRTCI": "11561", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "11569", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 11569 + }, + "NRCellRelation": [{ + "idNRCellRelation": "11568", + "attributes": { + "nRTCI": "11568", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11562", + "attributes": { + "nRTCI": "11562", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "11561", + "attributes": { + "nRTCI": "11561", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "10896", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 10896 + }, + "NRCellRelation": [{ + "idNRCellRelation": "14655", + "attributes": { + "nRTCI": "14655", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14656", + "attributes": { + "nRTCI": "14656", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10897", + "attributes": { + "nRTCI": "10897", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "10897", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 10897 + }, + "NRCellRelation": [{ + "idNRCellRelation": "10896", + "attributes": { + "nRTCI": "10896", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14656", + "attributes": { + "nRTCI": "14656", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14655", + "attributes": { + "nRTCI": "14655", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "14655", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 14655 + }, + "NRCellRelation": [{ + "idNRCellRelation": "14656", + "attributes": { + "nRTCI": "14656", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10896", + "attributes": { + "nRTCI": "10896", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10897", + "attributes": { + "nRTCI": "10897", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "14656", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 14656 + }, + "NRCellRelation": [{ + "idNRCellRelation": "14655", + "attributes": { + "nRTCI": "14655", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10896", + "attributes": { + "nRTCI": "10896", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "10897", + "attributes": { + "nRTCI": "10897", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "13905", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 13905 + }, + "NRCellRelation": [{ + "idNRCellRelation": "13910", + "attributes": { + "nRTCI": "13910", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15360", + "attributes": { + "nRTCI": "15360", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15361", + "attributes": { + "nRTCI": "15361", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "13910", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 13910 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15360", + "attributes": { + "nRTCI": "15360", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15361", + "attributes": { + "nRTCI": "15361", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13905", + "attributes": { + "nRTCI": "13905", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15360", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15360 + }, + "NRCellRelation": [{ + "idNRCellRelation": "13905", + "attributes": { + "nRTCI": "13905", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13910", + "attributes": { + "nRTCI": "13910", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15361", + "attributes": { + "nRTCI": "15361", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15361", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15361 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15360", + "attributes": { + "nRTCI": "15360", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13910", + "attributes": { + "nRTCI": "13910", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13905", + "attributes": { + "nRTCI": "13905", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15548", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15548 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15549", + "attributes": { + "nRTCI": "15549", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14427", + "attributes": { + "nRTCI": "14427", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "15549", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 15549 + }, + "NRCellRelation": [{ + "idNRCellRelation": "14427", + "attributes": { + "nRTCI": "14427", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15548", + "attributes": { + "nRTCI": "15548", + "isHOAllowed": true + } + } + ] + }, + { + "idNRCellCU": "14427", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "cellLocalId": 14427 + }, + "NRCellRelation": [{ + "idNRCellRelation": "15549", + "attributes": { + "nRTCI": "15549", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15548", + "attributes": { + "nRTCI": "15548", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15425", + "attributes": { + "nRTCI": "15425", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15296", + "attributes": { + "nRTCI": "15296", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15155", + "attributes": { + "nRTCI": "15155", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13999", + "attributes": { + "nRTCI": "13999", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "14000", + "attributes": { + "nRTCI": "14000", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15825", + "attributes": { + "nRTCI": "15825", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15548", + "attributes": { + "nRTCI": "15548", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "13905", + "attributes": { + "nRTCI": "13905", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15361", + "attributes": { + "nRTCI": "15361", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15174", + "attributes": { + "nRTCI": "15174", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15175", + "attributes": { + "nRTCI": "15175", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15176", + "attributes": { + "nRTCI": "15176", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15426", + "attributes": { + "nRTCI": "15426", + "isHOAllowed": true + } + }, + { + "idNRCellRelation": "15360", + "attributes": { + "nRTCI": "15360", + "isHOAllowed": true + } + } + ] + } + ] + }], + "GNBDUFunction": [{ + "idGNBDUFunction": "660", + "attributes": { + "gNBDUId": 660, + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBDUName": "gnduserver6", + "gNBIdLength": 25 + }, + "NRCellDU": [{ + "idNRCellDU": "15361", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15361, + "administrativeState": "UNLOCKED", + "nRPCI": 25, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15360", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15360, + "administrativeState": "UNLOCKED", + "nRPCI": 24, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "14427", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 14427, + "administrativeState": "UNLOCKED", + "nRPCI": 28, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15549", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15549, + "administrativeState": "UNLOCKED", + "nRPCI": 27, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "15548", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 15548, + "administrativeState": "UNLOCKED", + "nRPCI": 29, + "nRTAC": 310 + } + } + ] + }, + { + "idGNBDUFunction": "550", + "attributes": { + "gNBDUId": 550, + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBDUName": "gnduserver5", + "gNBIdLength": 25 + }, + "NRCellDU": [{ + "idNRCellDU": "14655", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 14655, + "administrativeState": "UNLOCKED", + "nRPCI": 19, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "13905", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 13905, + "administrativeState": "UNLOCKED", + "nRPCI": 26, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "14656", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 14656, + "administrativeState": "UNLOCKED", + "nRPCI": 20, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "10897", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 10897, + "administrativeState": "UNLOCKED", + "nRPCI": 21, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "13910", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 13910, + "administrativeState": "UNLOCKED", + "nRPCI": 23, + "nRTAC": 310 + } + } + ] + }, + { + "idGNBDUFunction": "440", + "attributes": { + "gNBDUId": 440, + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "gNBDUName": "gnduserver4", + "gNBIdLength": 25 + }, + "NRCellDU": [{ + "idNRCellDU": "11561", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 11561, + "administrativeState": "UNLOCKED", + "nRPCI": 15, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "11569", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 11569, + "administrativeState": "UNLOCKED", + "nRPCI": 18, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "11562", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 11562, + "administrativeState": "UNLOCKED", + "nRPCI": 16, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "10896", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 10896, + "administrativeState": "UNLOCKED", + "nRPCI": 22, + "nRTAC": 310 + } + }, + { + "idNRCellDU": "11568", + "attributes": { + "sAP": [{ + "host": "localhost", + "port": 8080 + }], + "nRSectorCarrierRef": [ + "OU=Sales" + ], + "cellLocalId": 11568, + "administrativeState": "UNLOCKED", + "nRPCI": 17, + "nRTAC": 310 + } + } + ] + } + ] + } + ] + } +} diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cell_data.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cell_data.json new file mode 100644 index 00000000..0e4e73f4 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cell_data.json @@ -0,0 +1,13 @@ +{ + "neighbor": ["Chn0066", "Chn0067", "Chn0068", "Chn0069", "Chn0070", "Chn0072", "Chn0073", "Chn0074", "Chn0075", "Chn0076", "Chn0077", "Chn0078", "Chn0079", "Chn0080"], + "Cell": { + "networkId": "ran-1", + "nodeId": "Chn0071", + "physicalCellId": 1, + "pnfId": "ncserver5", + "sectorNumber": null, + "latitude": "27.55626304907802", + "longitude": "-58.48690415723466", + "notes": "NA" + } +} \ No newline at end of file diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cell_list.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cell_list.json new file mode 100644 index 00000000..4f961ae2 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cell_list.json @@ -0,0 +1,60 @@ +{ + "cellId": "Chn0071", + "nbrList": [{ + "targetCellId": "Chn0066", + "pciValue": 0, + "ho": true + }, { + "targetCellId": "Chn0067", + "pciValue": 1, + "ho": true + }, { + "targetCellId": "Chn0068", + "pciValue": 2, + "ho": true + }, { + "targetCellId": "Chn0069", + "pciValue": 3, + "ho": true + }, { + "targetCellId": "Chn0070", + "pciValue": 4, + "ho": true + }, { + "targetCellId": "Chn0072", + "pciValue": 6, + "ho": true + }, { + "targetCellId": "Chn0073", + "pciValue": 7, + "ho": true + }, { + "targetCellId": "Chn0074", + "pciValue": 8, + "ho": true + }, { + "targetCellId": "Chn0075", + "pciValue": 9, + "ho": true + }, { + "targetCellId": "Chn0076", + "pciValue": 10, + "ho": true + }, { + "targetCellId": "Chn0077", + "pciValue": 11, + "ho": true + }, { + "targetCellId": "Chn0078", + "pciValue": 12, + "ho": true + }, { + "targetCellId": "Chn0079", + "pciValue": 13, + "ho": true + }, { + "targetCellId": "Chn0080", + "pciValue": 14, + "ho": true + }] +} \ No newline at end of file diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-cell-details.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-cell-details.json new file mode 100644 index 00000000..2f02274a --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-cell-details.json @@ -0,0 +1 @@ +{"NRCellCU":[{"idNRCellCU":"Chn0005","NRCellRelation":[{"idNRCellRelation":"Chn0009","attributes":{"nRPCI":2,"nRTCI":"Chn0009","isHOAllowed":true}},{"idNRCellRelation":"Chn0004","attributes":{"nRPCI":0,"nRTCI":"Chn0004","isHOAllowed":true}},{"idNRCellRelation":"Chn0006","attributes":{"nRPCI":1,"nRTCI":"Chn0006","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}},{"idNRCellCU":"Chn0008","NRCellRelation":[{"idNRCellRelation":"Chn0009","attributes":{"nRPCI":9,"nRTCI":"Chn0009","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}},{"idNRCellCU":"Chn0009","NRCellRelation":[{"idNRCellRelation":"Chn0008","attributes":{"nRPCI":8,"nRTCI":"Chn0008","isHOAllowed":true}},{"idNRCellRelation":"Chn0005","attributes":{"nRPCI":5,"nRTCI":"Chn0005","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}},{"idNRCellCU":"Chn0006","NRCellRelation":[{"idNRCellRelation":"Chn0004","attributes":{"nRPCI":4,"nRTCI":"Chn0004","isHOAllowed":true}},{"idNRCellRelation":"Chn0005","attributes":{"nRPCI":5,"nRTCI":"Chn0005","isHOAllowed":true}},{"idNRCellRelation":"Chn0009","attributes":{"nRPCI":9,"nRTCI":"Chn0009","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}},{"idNRCellCU":"Chn0004","NRCellRelation":[{"idNRCellRelation":"Chn0006","attributes":{"nRPCI":6,"nRTCI":"Chn0006","isHOAllowed":true}},{"idNRCellRelation":"Chn0005","attributes":{"nRPCI":0,"nRTCI":"Chn0005","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}}]} diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-neighbour-list.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-neighbour-list.json new file mode 100644 index 00000000..15872797 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-neighbour-list.json @@ -0,0 +1,2 @@ +{"idNRCellCU":"Chn0005","NRCellRelation":[{"idNRCellRelation":"Chn0006","attributes":{"nRPCI":2,"nRTCI":"Chn0006","isHOAllowed":true}},{"idNRCellRelation":"Chn0009","attributes":{"nRPCI":4,"nRTCI":"Chn0009","isHOAllowed":true}},{"idNRCellRelation":"Chn0004","attributes":{"nRPCI":0,"nRTCI":"Chn0004","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}} + diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-pci-list.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-pci-list.json new file mode 100644 index 00000000..4b4ab758 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-pci-list.json @@ -0,0 +1 @@ +{"nRPCI":1,"nRTAC":14777,"arfcnDL":1,"arfcnUL":2,"arfcnSUL":3,"ssbOffset":9,"userLabel":"user","cellLocalId":15289,"ssbDuration":4,"nRCellDU-url":"10.165.160.15:8083","ssbFrequency":7,"bSChannelBwDL":4,"bSChannelBwUL":5,"bSChannelBwSUL":6,"nRSectorCarrierRef":["OU=Sales"],"ssbSubCarrierSpacing":15,"sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":20,"configParameter":"uLThptPerSlice"},{"configValue":20,"configParameter":"dLThptPerSlice"}]}]}],"RRMPolicyRatio":[{"id":"34","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":23},"rRMPolicyMinRatio":{"value":4},"rRMPolicyDedicatedRatio":{"value":5},"rRMPolicyMemberList":[{"idx":{"value":34},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]} diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-pnf-name.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-pnf-name.json new file mode 100644 index 00000000..956b5b0a --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/cps-pnf-name.json @@ -0,0 +1,2 @@ +[{"idGNBCUCPFunction":"cucpserver1","NRCellCU":[{"idNRCellCU":"Chn0006","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}},{"idNRCellCU":"Chn0005","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}},{"idNRCellCU":"Chn0004","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}},{"idNRCellCU":"Chn0009","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}},{"idNRCellCU":"Chn0008","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}}],"attributes":{"gNBId":32,"gNBCUName":"cucpserver1","userLabel":"user","gNBIdLength":23,"gNBCUCPFunction-url":"10.165.160.13:6080","sAP":[{"host":"localhost","port":{"value":8080}}],"RRMPolicyRatio":[{"id":"43","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":43},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}}] + diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_async_configdb.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_async_configdb.json new file mode 100644 index 00000000..3d423537 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_async_configdb.json @@ -0,0 +1,14 @@ +{ + "transactionId": "fff33db3-8fc9-4e29-89ff-7419c85900bd", + "requestId": "742b9e6a-aa55-487e-9d71-a4a5e05b3981", + "requestStatus": "completed", + "statusMessage": "success", + "solutions": { + "networkId": "ran-1", + "pciSolutions": [{ + "cellId": "Chn0071", + "pci": "5" + }], + "anrSolutions": [] + } +} diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_async_response.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_async_response.json new file mode 100644 index 00000000..e3fccae2 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_async_response.json @@ -0,0 +1,17 @@ +{ + "transactionId": "fff33db3-8fc9-4e29-89ff-7419c85900bd", + "requestId": "742b9e6a-aa55-487e-9d71-a4a5e05b3981", + "requestStatus": "completed", + "statusMessage": "success", + "solutions": { + "networkId": "10000000", + "pciSolutions": [{ + "cellId": "15176", + "pci": "3" + }, + { + "cellId": "15174", + "pci": "1"}], + "anrSolutions": [] + } +} diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_syn_response.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_syn_response.json new file mode 100644 index 00000000..c9260bbc --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/oof_syn_response.json @@ -0,0 +1,6 @@ +{ + "requestId": "742b9e6a-aa55-487e-9d71-a4a5e05b3981", + "transactionId": "fff33db3-8fc9-4e29-89ff-7419c85900bd", + "requestStatus": "accepted", + "statusMessage": "" +} \ No newline at end of file diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/pci_value.json b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/pci_value.json new file mode 100644 index 00000000..6b6d4475 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/cps-sonhandler/sim-data/pci_value.json @@ -0,0 +1,4 @@ +{ + "attributeName": "PCIvalue", + "value": "5" +} \ No newline at end of file diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-cell-details.json b/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-cell-details.json new file mode 100644 index 00000000..2f02274a --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-cell-details.json @@ -0,0 +1 @@ +{"NRCellCU":[{"idNRCellCU":"Chn0005","NRCellRelation":[{"idNRCellRelation":"Chn0009","attributes":{"nRPCI":2,"nRTCI":"Chn0009","isHOAllowed":true}},{"idNRCellRelation":"Chn0004","attributes":{"nRPCI":0,"nRTCI":"Chn0004","isHOAllowed":true}},{"idNRCellRelation":"Chn0006","attributes":{"nRPCI":1,"nRTCI":"Chn0006","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}},{"idNRCellCU":"Chn0008","NRCellRelation":[{"idNRCellRelation":"Chn0009","attributes":{"nRPCI":9,"nRTCI":"Chn0009","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}},{"idNRCellCU":"Chn0009","NRCellRelation":[{"idNRCellRelation":"Chn0008","attributes":{"nRPCI":8,"nRTCI":"Chn0008","isHOAllowed":true}},{"idNRCellRelation":"Chn0005","attributes":{"nRPCI":5,"nRTCI":"Chn0005","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}},{"idNRCellCU":"Chn0006","NRCellRelation":[{"idNRCellRelation":"Chn0004","attributes":{"nRPCI":4,"nRTCI":"Chn0004","isHOAllowed":true}},{"idNRCellRelation":"Chn0005","attributes":{"nRPCI":5,"nRTCI":"Chn0005","isHOAllowed":true}},{"idNRCellRelation":"Chn0009","attributes":{"nRPCI":9,"nRTCI":"Chn0009","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}},{"idNRCellCU":"Chn0004","NRCellRelation":[{"idNRCellRelation":"Chn0006","attributes":{"nRPCI":6,"nRTCI":"Chn0006","isHOAllowed":true}},{"idNRCellRelation":"Chn0005","attributes":{"nRPCI":0,"nRTCI":"Chn0005","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}}]} diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-neighbour-list.json b/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-neighbour-list.json new file mode 100644 index 00000000..15872797 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-neighbour-list.json @@ -0,0 +1,2 @@ +{"idNRCellCU":"Chn0005","NRCellRelation":[{"idNRCellRelation":"Chn0006","attributes":{"nRPCI":2,"nRTCI":"Chn0006","isHOAllowed":true}},{"idNRCellRelation":"Chn0009","attributes":{"nRPCI":4,"nRTCI":"Chn0009","isHOAllowed":true}},{"idNRCellRelation":"Chn0004","attributes":{"nRPCI":0,"nRTCI":"Chn0004","isHOAllowed":true}}],"attributes":{"cellLocalId":12345}} + diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-pci-list.json b/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-pci-list.json new file mode 100644 index 00000000..4b4ab758 --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-pci-list.json @@ -0,0 +1 @@ +{"nRPCI":1,"nRTAC":14777,"arfcnDL":1,"arfcnUL":2,"arfcnSUL":3,"ssbOffset":9,"userLabel":"user","cellLocalId":15289,"ssbDuration":4,"nRCellDU-url":"10.165.160.15:8083","ssbFrequency":7,"bSChannelBwDL":4,"bSChannelBwUL":5,"bSChannelBwSUL":6,"nRSectorCarrierRef":["OU=Sales"],"ssbSubCarrierSpacing":15,"sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":20,"configParameter":"uLThptPerSlice"},{"configValue":20,"configParameter":"dLThptPerSlice"}]}]}],"RRMPolicyRatio":[{"id":"34","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":23},"rRMPolicyMinRatio":{"value":4},"rRMPolicyDedicatedRatio":{"value":5},"rRMPolicyMemberList":[{"idx":{"value":34},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]} diff --git a/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-pnf-name.json b/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-pnf-name.json new file mode 100644 index 00000000..956b5b0a --- /dev/null +++ b/scripts/dcaegen2-services-son-handler/sonhandler/sim-data/cps-pnf-name.json @@ -0,0 +1,2 @@ +[{"idGNBCUCPFunction":"cucpserver1","NRCellCU":[{"idNRCellCU":"Chn0006","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}},{"idNRCellCU":"Chn0005","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}},{"idNRCellCU":"Chn0004","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}},{"idNRCellCU":"Chn0009","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}},{"idNRCellCU":"Chn0008","attributes":{"cellLocalId":15289,"nRCellCU-url":"10.165.160.15:8083","sAP":[{"host":"localhost","port":{"value":8080}}],"pLMNInfoList":[{"mcc":"310","mnc":"410","sNSSAIList":[{"sNssai":"111-1111","status":"active","configData":[{"configValue":10,"configParameter":"maxNumberOfConns"}]}]}],"RRMPolicyRatio":[{"id":"55","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":55},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}}],"attributes":{"gNBId":32,"gNBCUName":"cucpserver1","userLabel":"user","gNBIdLength":23,"gNBCUCPFunction-url":"10.165.160.13:6080","sAP":[{"host":"localhost","port":{"value":8080}}],"RRMPolicyRatio":[{"id":"43","attributes":{"quotaType":"STRICT","resourceType":"sharing","rRMPolicyMaxRatio":{"value":22},"rRMPolicyMinRatio":{"value":3},"rRMPolicyDedicatedRatio":{"value":4},"rRMPolicyMemberList":[{"idx":{"value":43},"mcc":"310","mnc":"410","sNSSAI":"111-1111"}]}}]}}] + diff --git a/tests/dcaegen2-services-son-handler/testcases/data/cps_expected_payload_fm.json b/tests/dcaegen2-services-son-handler/testcases/data/cps_expected_payload_fm.json new file mode 100644 index 00000000..e8d7e518 --- /dev/null +++ b/tests/dcaegen2-services-son-handler/testcases/data/cps_expected_payload_fm.json @@ -0,0 +1,2 @@ + +{"Configurations":[{"data":{"FAPService":{"alias":"15176","X0005b9Lte":{"phyCellIdInUse":3,"pnfName":"220"},"CellConfig":{"LTE":{"RAN":{"Common":{"CellIdentity":"15176"}}}}}}},{"data":{"FAPService":{"alias":"15174","X0005b9Lte":{"phyCellIdInUse":1,"pnfName":"220"},"CellConfig":{"LTE":{"RAN":{"Common":{"CellIdentity":"15174"}}}}}}}]} diff --git a/tests/dcaegen2-services-son-handler/testcases/data/cps_expected_payload_pm.json b/tests/dcaegen2-services-son-handler/testcases/data/cps_expected_payload_pm.json new file mode 100644 index 00000000..2a56f2cc --- /dev/null +++ b/tests/dcaegen2-services-son-handler/testcases/data/cps_expected_payload_pm.json @@ -0,0 +1 @@ +{"Configurations":[{"data":{"FAPService":{"alias":"Chn0002","CellConfig":{"LTE":{"RAN":{"Common":{"CellIdentity":"Chn0002"},"NeighborListInUse":{"LTECell":[{"PNFName":"ncserver1","PLMNID":"plmnid1","CID":"Chn0004","PhyCellID":0,"Blacklisted":"true"},{"PNFName":"ncserver1","CID":"Chn0001","PhyCellID":0,"Blacklisted":"true"}],"LTECellNumberOfEntries":"2"}}}}}}}]} diff --git a/tests/dcaegen2-services-son-handler/testcases/data/cps_fault_notification.json b/tests/dcaegen2-services-son-handler/testcases/data/cps_fault_notification.json new file mode 100644 index 00000000..6b09e5ee --- /dev/null +++ b/tests/dcaegen2-services-son-handler/testcases/data/cps_fault_notification.json @@ -0,0 +1,35 @@ +{ + "event":{ + "commonEventHeader":{ + "domain":"fault", + "eventId":"fault000002", + "eventName":"Fault_RansimAgent-Wipro_RanPCIProblem", + "lastEpochMicrosec":1.633608637561E15, + "priority":"High", + "reportingEntityName":"ncserver1", + "sequence":1, + "sourceName":"15289", + "startEpochMicrosec":1.633608637561E15, + "version":"4.0.1", + "nfNamingCode":"RansimAgent", + "reportingEntityId":"69fb75e9-b85e-4132-ac21-515e9e8f5edb", + "sourceId":"94c26740-c875-4122-9e81-82723769bb54", + "nfVendorName":"Wipro", + "vesEventListenerVersion":"7.2", + "timeZoneOffset":"UTC+05:30" + }, + "faultFields":{ + "alarmCondition":"RanPciCollisionConfusionOccurred", + "eventSeverity":"CRITICAL", + "eventCategory": "PCIConfusion", + "eventSourceType":"other", + "faultFieldsVersion":"4.0", + "specificProblem":"15290", + "vfStatus":"Active", + "alarmAdditionalInformation":{ + "networkId":"10000000" + } + } + } +} + diff --git a/tests/dcaegen2-services-son-handler/testcases/data/fault_notification.json b/tests/dcaegen2-services-son-handler/testcases/data/fault_notification.json index e5a327ad..3d2b2c6e 100644 --- a/tests/dcaegen2-services-son-handler/testcases/data/fault_notification.json +++ b/tests/dcaegen2-services-son-handler/testcases/data/fault_notification.json @@ -2,7 +2,7 @@ "event": { "commonEventHeader": { "version": "4.0.1", - "vesEventListenerVersion": "7.0.1", + "vesEventListenerVersion": "7.2", "domain": "fault", "eventName": "Fault_RansimAgent-Wipro_RanPCIProblem", "eventId": "fault000001", @@ -22,7 +22,8 @@ "faultFieldsVersion": "4.0", "alarmCondition": "RanPciCollisionConfusionOccurred", "eventSourceType": "other", - "specificProblem": "Collision", + "eventCategory": "PCIConfusion", + "specificProblem": "Chn0001", "eventSeverity": "CRITICAL", "vfStatus": "Active", "alarmAdditionalInformation": { @@ -32,4 +33,4 @@ } } } -} \ No newline at end of file +} diff --git a/tests/dcaegen2-services-son-handler/testcases/data/performance_notification.json b/tests/dcaegen2-services-son-handler/testcases/data/performance_notification.json index 7721163a..87d89067 100644 --- a/tests/dcaegen2-services-son-handler/testcases/data/performance_notification.json +++ b/tests/dcaegen2-services-son-handler/testcases/data/performance_notification.json @@ -15,7 +15,7 @@ "lastEpochMicrosec": 1551790542000000, "nfNamingCode": "RansimAgent", "nfVendorName": "Wipro", - "vesEventListenerVersion": "7.0.1", + "vesEventListenerVersion": "7.2", "timeZoneOffset": "UTC-05:30" }, "measurementFields": { @@ -39,4 +39,4 @@ ] } } -} \ No newline at end of file +} diff --git a/tests/dcaegen2-services-son-handler/testcases/son-handler-test-cps.robot b/tests/dcaegen2-services-son-handler/testcases/son-handler-test-cps.robot new file mode 100644 index 00000000..63f23f2d --- /dev/null +++ b/tests/dcaegen2-services-son-handler/testcases/son-handler-test-cps.robot @@ -0,0 +1,102 @@ +*** Settings *** +Library Collections +Library Process +Library RequestsLibrary +Library String +Library OperatingSystem + +Suite Teardown Delete All Sessions + +*** Variables *** +${SON_HANDLER_BASE_URL} http://${SONHMS_IP}:8080 +${HEALTHCHECK_ENDPOINT} /healthcheck +${DMAAP_URL} http://${DMAAP_IP}:3904/events +${unauthenticated.DCAE_CL_OUTPUT} /unauthenticated.DCAE_CL_OUTPUT/23/23 +${POST_DMAAP_EVENT_FOR_FM_NOTIF_URL} http://${DMAAP_IP}:3904/events/unauthenticated.SEC_FAULT_OUTPUT +${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL} http://${DMAAP_IP}:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT +${POST_DMAAP_EVENT_FOR_POLICY_RESPONSE} http://${DMAAP_IP}:3904/events/DCAE_CL_RSP + + +*** Test Cases *** + +HealthCheck + + Create Session sonhms ${SON_HANDLER_BASE_URL} + ${resp}= Get Request sonhms ${HEALTHCHECK_ENDPOINT} + Should Be Equal As Strings ${resp.status_code} 200 + + +Post fm notification to dmaap + Create Session dmaap ${DMAAP_URL} + ${headers}= Create Dictionary Content-Type application/json + ${data}= Get File ${TEST_ROBOT_DIR}/data/cps_fault_notification.json + ${response}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_FM_NOTIF_URL}', data=$data) + Should Be Equal As Strings ${response.status_code} 200 + + +Verify fm notification trigger in sonhms + Create Session dmaap ${DMAAP_URL} + FOR ${i} IN RANGE 10 + ${result}= Get Request dmaap ${unauthenticated.DCAE_CL_OUTPUT} + Exit For Loop If ${result.json()} != @{EMPTY} + Log Waiting for sonhms to handle trigger... console=${True} + Sleep 30s + END + ${expected_payload}= Get File ${TEST_ROBOT_DIR}/data/cps_expected_payload_fm.json + ${result}= Convert To String ${result.content} + ${result_string}= Get Substring ${result} 2 -2 + ${actual_data}= Evaluate json.loads("""${result_string}""") json + ${actual_payload}= Set Variable ${actual_data['payload']} + Should Be True """${actual_payload}""".strip() == """${expected_payload}""".strip() + + +Post pm notification to dmaap + ${data}= Get File ${TEST_ROBOT_DIR}/data/performance_notification.json + ${response}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL}', data=$data) + Should Be Equal As Strings ${response.status_code} 200 + + +Verify pm notification trigger in sonhms + Create Session dmaap ${DMAAP_URL} + FOR ${i} IN RANGE 5 + ${result}= Get Request dmaap ${unauthenticated.DCAE_CL_OUTPUT} + Exit For Loop If ${result.json()} != @{EMPTY} + Log Waiting for sonhms to handle trigger... console=${True} + Sleep 30s + END + ${expected_payload}= Get File ${TEST_ROBOT_DIR}/data/cps_expected_payload_pm.json + ${result}= Convert To String ${result.content} + ${result_string}= Get Substring ${result} 2 -2 + ${actual_data}= Evaluate json.loads("""${result_string}""") json + ${actual_payload}= Set Variable ${actual_data['payload']} + Should Be True """${actual_payload}""".strip() == """${expected_payload}""".strip() + + +Post policy negative acknowledgement to dmaap + ${data}= Get File ${TEST_ROBOT_DIR}/data/negative_ack_from_policy.json + FOR ${i} IN RANGE 3 + ${response}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_POLICY_RESPONSE}', data=$data) + END + Should Be Equal As Strings ${response.status_code} 200 + + +Oof trigger for fixed Pci cells + + Create Session dmaap ${DMAAP_URL} + ${headers}= Create Dictionary Content-Type application/json + ${data}= Get File ${TEST_ROBOT_DIR}/data/cps_fault_notification.json + ${response}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_FM_NOTIF_URL}', data=$data) + + Create Session dmaap ${DMAAP_URL} + FOR ${i} IN RANGE 15 + ${result}= Get Request dmaap ${unauthenticated.DCAE_CL_OUTPUT} + Exit For Loop If ${result.json()} != @{EMPTY} + Log Waiting for sonhms to handle trigger... console=${True} + Sleep 30s + END + ${expected_payload}= Get File ${TEST_ROBOT_DIR}/data/cps_expected_payload_fm.json + ${result}= Convert To String ${result.content} + ${result_string}= Get Substring ${result} 2 -2 + ${actual_data}= Evaluate json.loads("""${result_string}""") json + ${actual_payload}= Set Variable ${actual_data['payload']} + Should Be True """${actual_payload}""".strip() == """${expected_payload}""".strip() diff --git a/tests/dcaegen2-services-son-handler/testcases/sonhandler-test.robot b/tests/dcaegen2-services-son-handler/testcases/sonhandler-test.robot index 6e93ffb9..27a36053 100644 --- a/tests/dcaegen2-services-son-handler/testcases/sonhandler-test.robot +++ b/tests/dcaegen2-services-son-handler/testcases/sonhandler-test.robot @@ -63,7 +63,7 @@ Verify pm notification trigger in sonhms Log Waiting for sonhms to handle trigger... console=${True} Sleep 30s END - ${expected_payload}= Get File ${TEST_ROBOT_DIR}/data/expected_payload_pm.json + ${expected_payload}= Get File ${TEST_ROBOT_DIR}/data/expected_payload_pm.json ${result}= Convert To String ${result.content} ${result_string}= Get Substring ${result} 2 -2 ${actual_data}= Evaluate json.loads("""${result_string}""") json -- 2.16.6