diff options
Diffstat (limited to 'test/functest/simulators')
33 files changed, 573 insertions, 87 deletions
diff --git a/test/functest/simulators/Dockerfile b/test/functest/simulators/Dockerfile index 7f6b49f..233503c 100644 --- a/test/functest/simulators/Dockerfile +++ b/test/functest/simulators/Dockerfile @@ -17,18 +17,22 @@ # ------------------------------------------------------------------------- # -FROM ubuntu:16.04 +FROM ubuntu:20.04 + +ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update -y \ - && apt-get install -y vim unzip wget libmpfr-dev \ - && apt-get install -y git libqt5printsupport5 build-essential \ - && apt-get install -y python3 python3-setuptools python3-dev \ - && easy_install3 pip \ - && pip install --upgrade virtualenv pip wheel + && apt-get install -y --no-install-recommends software-properties-common \ + curl ca-certificates vim binutils binfmt-support build-essential \ + python3 python3-setuptools python3-dev \ + && ln -s /usr/bin/python3.8 /usr/bin/python \ + && curl -s https://bootstrap.pypa.io/get-pip.py | python \ + && python -m pip --no-cache-dir install --upgrade pip wheel setuptools \ + && rm -rf /var/lib/apt/lists/* -RUN ln -s /usr/bin/python3.5 /usr/bin/python -ADD requirements.txt /requirements.txt +COPY requirements.txt /requirements.txt RUN pip install -r requirements.txt -ADD sim /sim +COPY sim /sim +COPY start_sim.sh /start_sim.sh -CMD cd /sim && python oof_dependencies_simulators.py > simulator-logs 2>&1
\ No newline at end of file +CMD ["/start_sim.sh"]
\ No newline at end of file diff --git a/test/functest/simulators/aai/response-payloads/nsi_instance.json b/test/functest/simulators/aai/response-payloads/nsi_instance.json new file mode 100644 index 0000000..b09d2e4 --- /dev/null +++ b/test/functest/simulators/aai/response-payloads/nsi_instance.json @@ -0,0 +1,13 @@ +{ + "service-instance-id": "9629e36c-a3d9-4aed-8368-f72b8be1cd34", + "service-instance-name": "nsi_test_0211", + "service-type": "embb", + "service-role": "nsi", + "environment-context": "cn", + "model-invariant-id": "21d57d4b-52ad-4d3c-a798-248b5bb9124a", + "model-version-id": "bfba363e-e39c-4bd9-a9d5-1371c28f4d22", + "resource-version": "1581418601616", + "orchestration-status": "active", + "relationship-list": { + "relationship": [ +]}} diff --git a/test/functest/simulators/aai/response-payloads/nsi_instance_with_args.json b/test/functest/simulators/aai/response-payloads/nsi_instance_with_args.json new file mode 100644 index 0000000..19e5ac1 --- /dev/null +++ b/test/functest/simulators/aai/response-payloads/nsi_instance_with_args.json @@ -0,0 +1,45 @@ +{ + "service-instance-id": "9629e36c-a3d9-4aed-8368-f72b8be1cd34", + "service-instance-name": "nsi_test_0211", + "service-type": "embb", + "service-role": "nsi", + "environment-context": "cn", + "model-invariant-id": "21d57d4b-52ad-4d3c-a798-248b5bb9124a", + "model-version-id": "bfba363e-e39c-4bd9-a9d5-1371c28f4d22", + "resource-version": "1581418601616", + "orchestration-status": "active", + "relationship-list": { + "relationship": [ + { + "related-to": "allotted-resource", + "relationship-label": "org.onap.relationships.inventory.Uses", + "related-link": "/aai/v23/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/d88b6ce6-19be-439d-8553-4f9d6cce0494/allotted-resources/allotted-resource/07138106-f535-413b-b002-40ba24f95937", + "relationship-data": [ + { + "relationship-key": "customer.global-customer-id", + "relationship-value": "5GCustomer" + }, + { + "relationship-key": "service-subscription.service-type", + "relationship-value": "5G" + }, + { + "relationship-key": "service-instance.service-instance-id", + "relationship-value": "cdad9f49-4201-4e3a-aac1-b0f27902c299" + }, + { + "relationship-key": "allotted-resource.id", + "relationship-value": "07138106-f535-413b-b002-40ba24f95937" + } + ], + "related-to-property": [ + { + "property-key": "allotted-resource.description" + }, + { + "property-key": "allotted-resource.allotted-resource-name", + "property-value": "Allotted_coe" + } + ] + } +]}} diff --git a/test/functest/simulators/build_sim_image.sh b/test/functest/simulators/build_sim_image.sh index c035e9a..561db19 100755 --- a/test/functest/simulators/build_sim_image.sh +++ b/test/functest/simulators/build_sim_image.sh @@ -18,13 +18,23 @@ # ------------------------------------------------------------------------- # -SCRIPTDIR=$(dirname $(readlink -f $0)) +if [[ `uname` == "Darwin" ]] +then + SCRIPTDIR=$(dirname $(greadlink -f $0)) +else + SCRIPTDIR=$(dirname $(readlink -f $0)) +fi + FUNC_TEST_DIR=$(dirname $SCRIPTDIR) TEST_DIR=$(dirname $FUNC_TEST_DIR) SIMULATORS_DIR=$FUNC_TEST_DIR/simulators OSDF_DIR=$(dirname $TEST_DIR) DOCKER_DIR=$SIMULATORS_DIR/tmp_docker +echo "Before Docker Build" +cat $OSDF_DIR/requirements-sim.txt +echo $OSDF_DIR + mkdir -p $DOCKER_DIR/sim/osdf/policy/response-payloads/pdp-has-vcpe-good cp $SIMULATORS_DIR/Dockerfile $DOCKER_DIR/. @@ -32,13 +42,17 @@ cp $SIMULATORS_DIR/Dockerfile $DOCKER_DIR/. cp -r $OSDF_DIR/osdf $DOCKER_DIR/sim mkdir -p $DOCKER_DIR/sim/config/ cp $SIMULATORS_DIR/simulated-config/*.yaml $DOCKER_DIR/sim/config/ +cp $SIMULATORS_DIR/simulated-config/*.yml $DOCKER_DIR/sim/config/ cp $SIMULATORS_DIR/simulated-config/*.config $DOCKER_DIR/sim/config/ cp -r $SIMULATORS_DIR/configdb $DOCKER_DIR/sim cp -r $SIMULATORS_DIR/has-api $DOCKER_DIR/sim cp -r $SIMULATORS_DIR/policy $DOCKER_DIR/sim +cp -r $SIMULATORS_DIR/aai $DOCKER_DIR/sim cp $TEST_DIR/policy-local-files/*.json $DOCKER_DIR/sim/policy/response-payloads/pdp-has-vcpe-good +cp $TEST_DIR/placement-tests/policy_response.json $DOCKER_DIR/sim/policy/response-payloads/ cp $SIMULATORS_DIR/oof_dependencies_simulators.py $DOCKER_DIR/sim/oof_dependencies_simulators.py -cp $OSDF_DIR/requirements.txt $DOCKER_DIR +cp $OSDF_DIR/requirements-sim.txt $DOCKER_DIR/requirements.txt +cp -r $SIMULATORS_DIR/start_sim.sh $DOCKER_DIR/ cd $DOCKER_DIR diff --git a/test/functest/simulators/configdb/response-payloads/getCellList-1000.json b/test/functest/simulators/configdb/response-payloads/getCellList-netw1000.json index df23f6e..df23f6e 100644 --- a/test/functest/simulators/configdb/response-payloads/getCellList-1000.json +++ b/test/functest/simulators/configdb/response-payloads/getCellList-netw1000.json diff --git a/test/functest/simulators/configdb/response-payloads/getCellList-netw2000.json b/test/functest/simulators/configdb/response-payloads/getCellList-netw2000.json new file mode 100644 index 0000000..77cf7db --- /dev/null +++ b/test/functest/simulators/configdb/response-payloads/getCellList-netw2000.json @@ -0,0 +1 @@ +["cell20","cell21","cell22","cell23","cell24"]
\ No newline at end of file diff --git a/test/functest/simulators/configdb/response-payloads/getNbrList-cell0.json b/test/functest/simulators/configdb/response-payloads/getNbrList-cell0.json index e0986d8..ff291fb 100644 --- a/test/functest/simulators/configdb/response-payloads/getNbrList-cell0.json +++ b/test/functest/simulators/configdb/response-payloads/getNbrList-cell0.json @@ -1,10 +1,15 @@ -[ - { - "cellId": "cell1", - "pciValue": 1 - }, - { - "cellId": "cell2", - "pciValue": 2 - } -]
\ No newline at end of file +{ + "cellId": "cell0", + "nbrList": [ + { + "targetCellId": "cell1", + "pciValue": 1, + "ho": true + }, + { + "targetCellId": "cell2", + "pciValue": 2, + "ho": true + } + ] +}
\ No newline at end of file diff --git a/test/functest/simulators/configdb/response-payloads/getNbrList-cell1.json b/test/functest/simulators/configdb/response-payloads/getNbrList-cell1.json index d6ed353..3c487e8 100644 --- a/test/functest/simulators/configdb/response-payloads/getNbrList-cell1.json +++ b/test/functest/simulators/configdb/response-payloads/getNbrList-cell1.json @@ -1,10 +1,15 @@ -[ - { - "cellId": "cell0", - "pciValue": 0 - }, - { - "cellId": "cell2", - "pciValue": 2 - } -]
\ No newline at end of file +{ + "cellId": "cell1", + "nbrList": [ + { + "targetCellId": "cell0", + "pciValue": 0, + "ho": true + }, + { + "targetCellId": "cell2", + "pciValue": 2, + "ho": true + } + ] +}
\ No newline at end of file diff --git a/test/functest/simulators/configdb/response-payloads/getNbrList-cell2.json b/test/functest/simulators/configdb/response-payloads/getNbrList-cell2.json index 1ea80be..20a8c98 100644 --- a/test/functest/simulators/configdb/response-payloads/getNbrList-cell2.json +++ b/test/functest/simulators/configdb/response-payloads/getNbrList-cell2.json @@ -1,10 +1,15 @@ -[ - { - "cellId": "cell0", - "pciValue": 0 - }, - { - "cellId": "cell1", - "pciValue": 1 - } -]
\ No newline at end of file +{ + "cellId": "cell2", + "nbrList": [ + { + "targetCellId": "cell0", + "pciValue": 0, + "ho": true + }, + { + "targetCellId": "cell1", + "pciValue": 1, + "ho": true + } + ] +}
\ No newline at end of file diff --git a/test/functest/simulators/configdb/response-payloads/getNbrList-cell20.json b/test/functest/simulators/configdb/response-payloads/getNbrList-cell20.json new file mode 100644 index 0000000..d4e754f --- /dev/null +++ b/test/functest/simulators/configdb/response-payloads/getNbrList-cell20.json @@ -0,0 +1,20 @@ +{ + "cellId": "cell20", + "nbrList": [ + { + "targetCellId": "cell21", + "pciValue": 0, + "ho": true + }, + { + "targetCellId": "cell22", + "pciValue": 1, + "ho": true + }, + { + "targetCellId": "cell23", + "pciValue": 2, + "ho": true + } + ] +}
\ No newline at end of file diff --git a/test/functest/simulators/configdb/response-payloads/getNbrList-cell21.json b/test/functest/simulators/configdb/response-payloads/getNbrList-cell21.json new file mode 100644 index 0000000..a1d6f55 --- /dev/null +++ b/test/functest/simulators/configdb/response-payloads/getNbrList-cell21.json @@ -0,0 +1,10 @@ +{ + "cellId": "cell21", + "nbrList": [ + { + "targetCellId": "cell20", + "pciValue": 0, + "ho": true + } + ] +}
\ No newline at end of file diff --git a/test/functest/simulators/configdb/response-payloads/getNbrList-cell22.json b/test/functest/simulators/configdb/response-payloads/getNbrList-cell22.json new file mode 100644 index 0000000..9c16aec --- /dev/null +++ b/test/functest/simulators/configdb/response-payloads/getNbrList-cell22.json @@ -0,0 +1,10 @@ +{ + "cellId": "cell22", + "nbrList": [ + { + "targetCellId": "cell20", + "pciValue": 0, + "ho": true + } + ] +}
\ No newline at end of file diff --git a/test/functest/simulators/configdb/response-payloads/getNbrList-cell23.json b/test/functest/simulators/configdb/response-payloads/getNbrList-cell23.json new file mode 100644 index 0000000..ac3bf6f --- /dev/null +++ b/test/functest/simulators/configdb/response-payloads/getNbrList-cell23.json @@ -0,0 +1,10 @@ +{ + "cellId": "cell23", + "nbrList": [ + { + "targetCellId": "cell24", + "pciValue": 0, + "ho": true + } + ] +}
\ No newline at end of file diff --git a/test/functest/simulators/configdb/response-payloads/getNbrList-cell24.json b/test/functest/simulators/configdb/response-payloads/getNbrList-cell24.json new file mode 100644 index 0000000..f34128e --- /dev/null +++ b/test/functest/simulators/configdb/response-payloads/getNbrList-cell24.json @@ -0,0 +1,10 @@ +{ + "cellId": "cell24", + "nbrList": [ + { + "targetCellId": "cell23", + "pciValue": 2, + "ho": true + } + ] +}
\ No newline at end of file diff --git a/test/functest/simulators/oof_dependencies_simulators.py b/test/functest/simulators/oof_dependencies_simulators.py index b7e6cb5..d7b1f04 100755..100644 --- a/test/functest/simulators/oof_dependencies_simulators.py +++ b/test/functest/simulators/oof_dependencies_simulators.py @@ -22,6 +22,7 @@ Simulators for dependencies of OSDF (e.g. HAS-API, Policy, SO-callback, etc.) import glob import json import os + from flask import Flask, jsonify, request from osdf.utils.interfaces import json_from_file @@ -93,22 +94,64 @@ def get_policies(sub_component): return jsonify(list_json) -@app.route("/simulated/configdb/getCellList", methods=["GET"]) -def get_cell_list(): +@app.route("/simulated/policy/pdpx/decision/v1", methods=["POST"]) +def get_pdx_policies(): + """ + get the pdpx policy + """ + return jsonify(json_from_file("policy/response-payloads/policy_response.json")) + + +@app.route("/simulated/configdb/getCellList/<network_id>/<ts>", methods=["GET"]) +def get_cell_list(network_id, ts): data, status = get_payload_for_simulated_component('configdb', - 'getCellList-' + request.args.get('networkId') + '.json') + 'getCellList-' + network_id + '.json') if not status: return jsonify(data) return jsonify(data), 503 -@app.route("/simulated/configdb/getNbrList", methods=["GET"]) -def get_nbr_list(): - data, status = get_payload_for_simulated_component('configdb', 'getNbrList-' + request.args.get('cellId') + '.json') +@app.route("/simulated/configdb/getNbrList/<cell_id>/<ts>", methods=["GET"]) +def get_nbr_list(cell_id, ts): + data, status = get_payload_for_simulated_component('configdb', 'getNbrList-' + cell_id + '.json') if not status: return jsonify(data) return jsonify(data), 503 +@app.route("/simulated/aai/v23/nodes/service-instances/service-instance/<service_id>", methods=["GET"]) +def get_aai_instances(service_id): + data, status = get_payload_for_simulated_component('aai', 'nsi_instance.json') + if not status: + return jsonify(data) + return jsonify(data), 503 + +@app.route("/simulated/aai/v23/dsl", methods=["PUT"]) +def dsl_query(): + + nssi_query = {"dsl": "service-instance*('service-instance-id','9629e36c-a3d9-4aed-8368-f72b8be1cd34')('workload-context', 'CN') > " + "service-instance*('service-role','nsi')"} + + nssi_with_nsi_query = {"dsl": "service-instance*('service-instance-id','9629e36c-a3d9-4aed-8368-f72b8be1cd34')('workload-context', 'CN') > " + "service-instance*('service-role','nsi')('service-instance-id'," + "'660ca85c-1a0f-4521-a559-65f23e794699')"} + + queries = { + "nssi_query": nssi_query, + "nssi_with_nsi": nssi_with_nsi_query + } + + count = { + "nssi_query": 1, + "nssi_with_nsi": 2 + } + + request_body = request.get_json() + service_count = 0 + for query_type, query in queries.items(): + if request_body == query: + service_count = count[query_type] + return {'results': [{'service-instance': service_count}]} + if __name__ == "__main__": app.run(debug=True, host='0.0.0.0') diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Affinity_vCPE_1.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Affinity_vCPE_1.json index 6f0ecb3..2953589 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Affinity_vCPE_1.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Affinity_vCPE_1.json @@ -1,7 +1,7 @@ { - "service": "zone", - "policyName": "OSDF_R2.Affinity_vCPE_1", - "description": "Optimization query policy for vCPE", + "service": "affinityPolicy", + "policyName": "OSDF_DUBLIN.Affinity_vCPE_1", + "description": "Zone policy for vCPE", "templateVersion": "OpenSource.version.1", "version": "test1", "priority": "3", diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Capacity_vGMuxInfra.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Capacity_vGMuxInfra.json index 2578544..010cf3f 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Capacity_vGMuxInfra.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Capacity_vGMuxInfra.json @@ -1,6 +1,6 @@ { "service": "vim_fit", - "policyName": "OSDF_R2.Capacity_vGMuxInfra", + "policyName": "OSDF_DUBLIN.Capacity_vGMuxInfra", "description": "Capacity policy for vGMuxInfra", "templateVersion": "OpenSource.version.1", "version": "test1", diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Capacity_vG_1.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Capacity_vG_1.json index c1682fa..fedcc4f 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Capacity_vG_1.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Capacity_vG_1.json @@ -1,6 +1,6 @@ { "service": "vim_fit", - "policyName": "OSDF_R2.Capacity_vG_1", + "policyName": "OSDF_DUBLIN.Capacity_vG_1", "description": "Capacity policy for vG", "templateVersion": "OpenSource.version.1", "version": "test1", diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Distance_vGMuxInfra_1.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Distance_vGMuxInfra_1.json index 61ec500..e3ba83c 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Distance_vGMuxInfra_1.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Distance_vGMuxInfra_1.json @@ -1,6 +1,6 @@ { - "service": "distance_to_location", - "policyName": "OSDF_R2.Distance_vGMuxInfra", + "service": "distancePolicy", + "policyName": "OSDF_DUBLIN.Distance_vGMuxInfra", "description": "Distance Policy for vGMuxInfra", "templateVersion": "OpenSource.version.1", "version": "test1", @@ -10,13 +10,13 @@ "guard": "False", "content": { "distanceProperties": { - "locationInfo": "customer_location", + "locationInfo": "customer_loc", "distance": { "value": "500", "operator": "<", "unit": "km" } }, "identity": "distance-vGMuxInfra", "resources": ["vGMuxInfra"], "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"], - "policyType": "distancePolicy", + "policyType": "distance_to_location", "applicableResources": "any" } } diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Distance_vG_1.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Distance_vG_1.json index 06c3ada..c498c7a 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Distance_vG_1.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Distance_vG_1.json @@ -1,6 +1,6 @@ { - "service": "distance_to_location", - "policyName": "OSDF_R2.Distance_vG_1", + "service": "distancePolicy", + "policyName": "OSDF_DUBLIN.Distance_vG_1", "description": "Distance Policy for vG", "templateVersion": "OpenSource.version.1", "version": "test1", @@ -10,13 +10,13 @@ "guard": "False", "content": { "distanceProperties": { - "locationInfo": "customer_location", + "locationInfo": "customer_loc", "distance": { "value": "1500", "operator": "<", "unit": "km" } }, "identity": "distance-vG", "resources": ["vG"], "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vG"], - "policyType": "distancePolicy", + "policyType": "distance_to_location", "applicableResources": "any" } } diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Placement_Optimization_1.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Placement_Optimization_1.json index ab3c586..9b062b0 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Placement_Optimization_1.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/Placement_Optimization_1.json @@ -1,6 +1,6 @@ { - "service": "placementOptimization", - "policyName": "OSDF_R2.Placement_Optimization_1", + "service": "optimizationPolicy", + "policyName": "OSDF_DUBLIN.Placement_Optimization_1", "description": "Placement Optimization Policy for vGMuxInfra", "templateVersion": "OpenSource.version.1", "version": "test1", @@ -30,13 +30,26 @@ "parameter": "hpa_score", "weight": "200", "operator": "product" + }, + { + "resources": ["vFW"], + "customerLocationInfo": "customer_loc", + "parameter": "distance", + "weight": "100", + "operator": "product" + }, + { + "resources": ["vFW"], + "parameter": "hpa_score", + "weight": "200", + "operator": "product" } ], "operator": "sum" }, "identity": "optimization", "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra", "vG"], - "policyType": "placementOptimization", + "policyType": "placement_optimization", "objective": "minimize" } } diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/QueryPolicy_vCPE.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/QueryPolicy_vCPE.json index 27f49d2..5097964 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/QueryPolicy_vCPE.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/QueryPolicy_vCPE.json @@ -1,7 +1,7 @@ { - "service": "optimizationQueryPolicy", - "policyName": "OSDF_R2.QueryPolicy_vCPE", - "description": "Optimization query policy for vCPE", + "service": "queryPolicy", + "policyName": "OSDF_DUBLIN.QueryPolicy_vCPE", + "description": "Query policy for vCPE", "templateVersion": "OpenSource.version.1", "version": "test1", "priority": "3", @@ -14,7 +14,7 @@ {"attribute":"customerLongitude", "attribute_location": "customerLongitude"} ], "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra", "vG"], - "policyType": "optimizationQueryPolicy", + "policyType": "request_param_query", "serviceName": "vCPE", "identity": "vCPE_Query_Policy" } diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/QueryPolicy_vCPE_2.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/QueryPolicy_vCPE_2.json index 7f1db83..e398f39 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/QueryPolicy_vCPE_2.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/QueryPolicy_vCPE_2.json @@ -1,10 +1,10 @@ { - "service": "optimizationQueryPolicy", - "policyName": "oofBeijing.queryPolicy_vCPE", - "description": "Optimization query policy for vCPE", - "templateVersion": "0.0.1", - "version": "oofBeijing", - "priority": "5", + "service": "queryPolicy", + "policyName": "OSDF_DUBLIN.queryPolicy_vCPE", + "description": "Query policy for vCPE", + "templateVersion": "OpenSource.version.1", + "version": "test1", + "priority": "3", "riskType": "test", "riskLevel": "2", "guard": "False", @@ -17,7 +17,8 @@ {"attribute":"customerLongitude", "attribute_location": "customerLongitude", "value": 2.2} ], "serviceName": "vCPE", - "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra", "vG", "optimizationQueryPolicy"], - "policyType": "optimizationQueryPolicy" + "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra", "vG"], + "policyType": "request_param_query", + "identity": "vCPE_Query_Policy" } } diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/hpa_policy_vGMuxInfra_1.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/hpa_policy_vGMuxInfra_1.json index ce0b7e3..690f5dc 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/hpa_policy_vGMuxInfra_1.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/hpa_policy_vGMuxInfra_1.json @@ -1,6 +1,6 @@ { "service": "hpaPolicy", - "policyName": "OSDF_R2.hpa_policy_vGMuxInfra_1", + "policyName": "OSDF_DUBLIN.hpa_policy_vGMuxInfra_1", "description": "HPA policy for vGMuxInfra", "templateVersion": "OpenSource.version.1", "version": "test1", @@ -9,10 +9,10 @@ "riskLevel": "2", "guard": "False", "content": { - "resources": "vGMuxInfra", - "identity": "hpaPolicy_vGMuxInfra", + "resources": ["vGMuxInfra"], + "identity": "hpa-vGMuxInfra", "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"], - "policyType": "hpaPolicy", + "policyType": "hpa", "flavorFeatures": [ { "id": "vgmux_1", diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/hpa_policy_vG_1.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/hpa_policy_vG_1.json index 5d2499f..b29c67d 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/hpa_policy_vG_1.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/hpa_policy_vG_1.json @@ -1,6 +1,6 @@ { "service": "hpaPolicy", - "policyName": "OSDF_R2.hpa_policy_vG_1", + "policyName": "OSDF_DUBLIN.hpa_policy_vG_1", "description": "HPA policy for vG", "templateVersion": "OpenSource.version.1", "version": "test1", @@ -9,10 +9,10 @@ "riskLevel": "2", "guard": "False", "content": { - "resources": "vG", - "identity": "hpaPolicy_vG", + "resources": ["vG"], + "identity": "hpa-vG", "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vG"], - "policyType": "hpaPolicy", + "policyType": "hpa", "flavorFeatures": [ { "id": "vg_1", diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/vnfPolicy_vG.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/vnfPolicy_vG.json index d215078..b047686 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/vnfPolicy_vG.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/vnfPolicy_vG.json @@ -1,6 +1,6 @@ { "service": "vnfPolicy", - "policyName": "OSDF_R2.vnfPolicy_vG", + "policyName": "OSDF_DUBLIN.vnfPolicy_vG", "description": "vnfPolicy", "templateVersion": "OpenSource.version.1", "version": "test1", diff --git a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/vnfPolicy_vGMuxInfra.json b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/vnfPolicy_vGMuxInfra.json index 6849105..45d67f6 100644 --- a/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/vnfPolicy_vGMuxInfra.json +++ b/test/functest/simulators/policy/response-payloads/pdp-has-vcpe-good/vnfPolicy_vGMuxInfra.json @@ -1,6 +1,6 @@ { "service": "vnfPolicy", - "policyName": "OSDF_R2.vnfPolicy_vGMuxInfra", + "policyName": "OSDF_DUBLIN.vnfPolicy_vGMuxInfra", "description": "vnfPolicy", "templateVersion": "OpenSource.version.1", "version": "test1", diff --git a/test/functest/simulators/simulated-config/common_config.yaml b/test/functest/simulators/simulated-config/common_config.yaml index 1a85714..36c639f 100644 --- a/test/functest/simulators/simulated-config/common_config.yaml +++ b/test/functest/simulators/simulated-config/common_config.yaml @@ -23,7 +23,7 @@ osdf_temp: # special configuration required for "workarounds" or testing - hpa_policy_vG_1.json - vnfPolicy_vG.json - vnfPolicy_vGMuxInfra.json - - subscriber_policy.json + - subscriber_policy_vCPE.json service_info: vCPE: vcpeHostName: requestParameters.vcpeHostName @@ -62,3 +62,13 @@ policy_info: default: # if no explicit service related information is needed policy_fetch: by_name policy_scope: none + +PCI: + ML: + average_ho_threshold: 10000 + latest_ho_threshold: 500 + DES: + service_id: ho_metric + filter: + interval: 10 + ml_enabled: false diff --git a/test/functest/simulators/simulated-config/log.yml b/test/functest/simulators/simulated-config/log.yml new file mode 100644 index 0000000..ad0de21 --- /dev/null +++ b/test/functest/simulators/simulated-config/log.yml @@ -0,0 +1,100 @@ +version: 1 +disable_existing_loggers: True + +loggers: + error: + handlers: [error_handler, console_handler] + level: "WARN" + propagate: True + debug: + handlers: [debug_handler, console_handler] + level: "DEBUG" + propagate: True + metrics: + handlers: [metrics_handler, console_handler] + level: "INFO" + propagate: True + audit: + handlers: [audit_handler, console_handler] + level: "INFO" + propagate: True +handlers: + debug_handler: + level: "DEBUG" + class: "logging.handlers.TimedRotatingFileHandler" + filename: "logs/debug.log" + formatter: "debugFormat" + when: midnight + interval: 1 + utc: True + delay: False + backupCount: 10 + error_handler: + level: "WARN" + class: "logging.handlers.TimedRotatingFileHandler" + filename: "logs/error.log" + formatter: "errorFormat" + when: midnight + interval: 1 + utc: True + delay: False + backupCount: 10 + metrics_handler: + level: "INFO" + class: "logging.handlers.TimedRotatingFileHandler" + filename: "logs/metrics.log" + formatter: "metricsFormat" + when: midnight + interval: 1 + utc: True + delay: False + backupCount: 10 + audit_handler: + level: "INFO" + class: "logging.handlers.TimedRotatingFileHandler" + filename: "logs/audit.log" + formatter: "auditFormat" + when: midnight + interval: 1 + utc: True + delay: False + backupCount: 10 + console_handler: + level: "DEBUG" + class: "logging.StreamHandler" + formatter: "metricsFormat" + +formatters: + standard: + format: "%(asctime)s|||||%(name)s||%(thread)||%(funcName)s||%(levelname)s||%(message)s" + debugFormat: + format: "%(mdc)s" + datefmt: "%Y-%m-%dT%H:%M:%S" + mdcfmt: "%(asctime)s.%(msecs)03d+00:00|{requestID}|%(threadName)s|{server}|%(levelname)s|%(message)s" + (): osdf.logging.oof_mdc_formatter.OOFMDCFormatter + errorFormat: + format: "%(mdc)s" + datefmt: "%Y-%m-%dT%H:%M:%S" + mdcfmt: "%(asctime)s.%(msecs)03d+00:00|{requestID}|%(threadName)s|{serviceName}|{partnerName}\ + |{targetEntity}|{targetServiceName}|%(levelname)s|{errorCode}|{errorDescription}|%(message)s" + (): osdf.logging.oof_mdc_formatter.OOFMDCFormatter + auditFormat: + format: "%(mdc)s" + datefmt: "%Y-%m-%dT%H:%M:%S" + mdcfmt: "{entryTimestamp}+00:00|%(asctime)s.%(msecs)03d+00:00|{requestID}|{serviceInstanceID}\ + |%(threadName)s|{server}|{serviceName}|{partnerName}|{statusCode}|{responseCode}|{responseDescription}\ + |{instanceUUID}|%(levelname)s|{severity}|{serverIPAddress}|{timer}|{server}|{IPAddress}||{unused}\ + |{processKey}|{customField1}|{customField2}|{customField3}|{customField4}|%(message)s" + (): osdf.logging.oof_mdc_formatter.OOFMDCFormatter + metricsFormat: + format: "%(mdc)s" + datefmt: "%Y-%m-%dT%H:%M:%S" + mdcfmt: "{entryTimestamp}+00:00|%(asctime)s.%(msecs)03d+00:00|{requestID}|{serviceInstanceID}\ + |%(threadName)s|{server}|{serviceName}|{partnerName}|{targetEntity}|{targetServiceName}|{statusCode}|{responseCode}|{responseDescription}\ + |{instanceUUID}|%(levelname)s|{severity}|{serverIPAddress}|{timer}|{server}|{IPAddress}||{unused}\ + |{processKey}|{TargetVirtualEntity}|{customField1}|{customField2}|{customField3}|{customField4}|%(message)s" + (): osdf.logging.oof_mdc_formatter.OOFMDCFormatter + mdcFormat: + format: "%(asctime)s.%(msecs)03d+00:00|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s" + mdcfmt: "{requestID} {invocationID} {serviceName} {serverIPAddress}" + (): osdf.logging.oof_mdc_formatter.OOFMDCFormatter diff --git a/test/functest/simulators/simulated-config/opteng_config.yaml b/test/functest/simulators/simulated-config/opteng_config.yaml new file mode 100755 index 0000000..0dfb536 --- /dev/null +++ b/test/functest/simulators/simulated-config/opteng_config.yaml @@ -0,0 +1,25 @@ +# Policy Platform -- requires Authorization +policyPlatformUrl: https://policy-xacml-pdp:6969/policy/pdpx/decision/v1 # Policy Dev platform URL + +# AAF Authentication config +is_aaf_enabled: False +aaf_cache_expiry_mins: 5 +aaf_url: https://aaftest.simpledemo.onap.org:8095 +aaf_user_roles: + - '/optmodel:org.onap.oof.access|*|read ALL' + - '/optengine:org.onap.oof.access|*|read ALL' + +# Secret Management Service from AAF +aaf_sms_url: https://aaf-sms.onap:10443 +aaf_sms_timeout: 30 +secret_domain: osdf +aaf_ca_certs: ssl_certs/aaf_root_ca.cer + +osdfDatabaseHost: localhost +osdfDatabaseSchema: osdf +osdfDatabaseUsername: osdf +osdfDatabasePassword: osdf +osdfDatabasePort: 3306 + +#key +appkey: os35@rrtky400fdntc#001t5 diff --git a/test/functest/simulators/simulated-config/osdf_config.yaml b/test/functest/simulators/simulated-config/osdf_config.yaml index dbdcc91..eb02b33 100755 --- a/test/functest/simulators/simulated-config/osdf_config.yaml +++ b/test/functest/simulators/simulated-config/osdf_config.yaml @@ -1,3 +1,15 @@ +placementVersioningEnabled: False + +# Placement API latest version numbers to be set in HTTP header +placementMajorVersion: "1" +placementMinorVersion: "0" +placementPatchVersion: "0" + +# Placement API default version numbers to be set in HTTP header +placementDefaultMajorVersion: "1" +placementDefaultMinorVersion: "0" +placementDefaultPatchVersion: "0" + osdfUserNameForSO: "" # The OSDF Manager username for MSO. odfPasswordForSO: "" # The OSDF Manager password for MSO. @@ -10,6 +22,8 @@ conductorUsername: "CONDUCTOR-USER" conductorPassword: "CONDUCTOR-PASSWD" conductorPingWaitTime: 2 # seconds to wait before calling the conductor retry URL conductorMaxRetries: 5 # if we don't get something in 30 minutes, give up +# versions to be set in HTTP header +conductorMinorVersion: 0 # Policy Platform -- requires ClientAuth, Authorization, and Environment policyPlatformUrl: http://127.0.0.1:5001/simulated/policy/pdp-has-vcpe-good/pdp/getConfig # Policy Dev platform URL @@ -33,6 +47,21 @@ osdfPlacementUrl: "http://127.0.0.1:24699/osdf/api/v2/placement" osdfPlacementUsername: "test" osdfPlacementPassword: "testpwd" +# AAF Authentication config +is_aaf_enabled: False +aaf_cache_expiry_hrs: 3 +aaf_url: https://aaftest.simpledemo.onap.org:8095 +aaf_user_roles: + - /api/oof/v1/placement:org.onap.osdf.access|*|read ALL + +# Secret Management Service from AAF +aaf_sms_url: https://aaf-sms.onap:10443 +aaf_sms_timeout: 30 +secret_domain: osdf +aaf_ca_certs: ssl_certs/aaf_root_ca.cer + +configClientType: configdb + # config db api configDbUrl: http://127.0.0.1:5000/simulated/configdb configDbUserName: osdf @@ -44,3 +73,16 @@ configDbGetNbrListUrl: 'getNbrList' pciHMSUsername: "" # pcihandler username for call back. pciHMSPassword: "" # pcihandler password for call back. +aaiUrl: "https://api.url:30233" +aaiGetLinksUrl: "/aai/v16/network/logical-links" +aaiGetControllersUrl: /aai/v19/external-system/esr-thirdparty-sdnc-list +controllerQueryUrl: /aai/v19/query?format=resource +aaiGetInterDomainLinksUrl: /aai/v19/network/logical-links?link-type=inter-domain&operational-status=up + +#consulconfig +consulHost: '127.0.0.1' +consulPort: 8500 +consulScheme: 'http' +consulVerify: True +consulCert: None +activateConsulConfig: False diff --git a/test/functest/simulators/simulated-config/slicing_config.yaml b/test/functest/simulators/simulated-config/slicing_config.yaml new file mode 100644 index 0000000..179f54a --- /dev/null +++ b/test/functest/simulators/simulated-config/slicing_config.yaml @@ -0,0 +1,96 @@ +app_info: + NSI: + app_name: slice_selection + requirements_field: serviceProfile + model_info: NSTInfo + NSSI: + app_name: subnet_selection + requirements_field: sliceProfile + model_info: NSSTInfo + +attribute_mapping: + camel_to_snake: + maxBandwidth: max_bandwidth + jitter: jitter + sST: sst + latency: latency + resourceSharingLevel: resource_sharing_level + uEMobilityLevel: ue_mobility_level + maxNumberofUEs: max_number_of_ues + dLThptPerUE: dl_thpt_per_ue + uLThptPerUE: ul_thpt_per_ue + sNSSAI: s_nssai + pLMNIdList: plmn_id_list + activityFactor: activity_factor + coverageAreaTAList: coverage_area_ta_list + availability: availability + cSAvailabilityTarget: cs_availability_target + reliability: reliability + cSReliabilityMeanTime: cs_reliability_mean_time + dLThptPerSlice: dl_thpt_per_slice + expDataRateDL: exp_data_rate_dl + uLThptPerSlice: ul_thpt_per_slice + expDataRateUL: exp_data_rate_ul + maxPktSize: max_pkt_size + msgSizeByte: msg_size_byte + maxNumberofConns: max_number_of_conns + maxNumberofPDUSession: max_number_of_pdu_session + termDensity: terminal_density + survivalTime: survival_time + areaTrafficCapDL: area_traffic_cap_dl + areaTrafficCapUL: area_traffic_cap_ul + overallUserDensity: overall_user_density + transferIntervalTarget: transfer_interval_target + expDataRate: exp_data_rate + security: security + maxThroughput: max_throughput + sliceProfileId: slice_profile_id + snssaiList: s_nssai_list + domainType: domain_type + logicInterfaceId: logical_interface_id + ipAddress: ip_address + nextHopInfo: next_hop_info + perfReq: perf_req + + snake_to_camel: + max_bandwidth: maxBandwidth + jitter: jitter + sst: sST + latency: latency + resource_sharing_level: resourceSharingLevel + ue_mobility_level: uEMobilityLevel + max_number_of_ues: maxNumberofUEs + dl_thpt_per_ue: dLThptPerUE + ul_thpt_per_ue: uLThptPerUE + s_nssai: sNSSAI + plmn_id_list: pLMNIdList + activity_factor: activityFactor + coverage_area_ta_list: coverageAreaTAList + availability: availability + cs_availability_target: cSAvailabilityTarget + reliability: reliability + cs_reliability_mean_time: cSReliabilityMeanTime + dl_thpt_per_slice: dLThptPerSlice + exp_data_rate_dl: expDataRateDL + ul_thpt_per_slice: uLThptPerSlice + exp_data_rate_ul: expDataRateUL + max_pkt_size: maxPktSize + msg_size_byte: msgSizeByte + max_number_of_conns: maxNumberofConns + max_number_of_pdu_session: maxNumberofPDUSession + terminal_density: termDensity + survival_time: survivalTime + area_traffic_cap_dl: areaTrafficCapDL + area_traffic_cap_ul: areaTrafficCapUL + overall_user_density: overallUserDensity + transfer_interval_target: transferIntervalTarget + exp_data_rate: expDataRate + security: security + max_throughput: maxThroughput + slice_profile_id: sliceProfileId + s_nssai_list: snssaiList + domain_type: domainType + logical_interface_id: logicInterfaceId + ip_address: ipAddress + next_hop_info: nextHopInfo + perf_req: perfReq diff --git a/test/functest/simulators/start_sim.sh b/test/functest/simulators/start_sim.sh new file mode 100755 index 0000000..f5935da --- /dev/null +++ b/test/functest/simulators/start_sim.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +cd /sim +python oof_dependencies_simulators.py |