summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conductor/conductor/tests/functional/simulators/aaisim/aai_imposter.jsont156
-rw-r--r--conductor/conductor/tests/functional/simulators/aaisim/responses/get_nsi_response.json84
-rw-r--r--conductor/conductor/tests/functional/simulators/aaisim/responses/get_nssi_response.json5
-rw-r--r--conductor/conductor/tests/functional/simulators/imposter.py24
-rwxr-xr-xconductor/conductor/tests/functional/simulators/run_aaisim.sh12
5 files changed, 278 insertions, 3 deletions
diff --git a/conductor/conductor/tests/functional/simulators/aaisim/aai_imposter.jsont b/conductor/conductor/tests/functional/simulators/aaisim/aai_imposter.jsont
new file mode 100644
index 0000000..93799cd
--- /dev/null
+++ b/conductor/conductor/tests/functional/simulators/aaisim/aai_imposter.jsont
@@ -0,0 +1,156 @@
+{
+ "port": 8081,
+ "protocol": "http",
+ "stubs": [{
+ "responses": [
+ { "is": {
+ "statusCode": 200,
+ "body": {{ get_nsi_response }}
+ }
+ }
+ ],
+ "predicates": [{
+ "and": [
+ {
+ "equals": {
+ "path": "/aai/v14/nodes/service-instances",
+ "method": "GET",
+ "query": {
+ "model-version-id": "bfba363e-e39c-4bd9-a9d5-1371c28f4d22",
+ "model-invariant-id": "21d57d4b-52ad-4d3c-a798-248b5bb9124a",
+ "depth": 2
+ }
+ }
+ }
+ ]
+ }]
+ },
+ {
+ "responses": [
+ { "is": {
+ "statusCode": 200,
+ "body": {{ get_nssi_response }}
+ }
+ }
+ ],
+ "predicates": [{
+ "and": [
+ {
+ "equals": {
+ "path": "/aai/v14/nodes/service-instances",
+ "method": "GET",
+ "query": {
+ "model-version-id": "8d770214-d3e7-43ea-b7a6-9b235dcbcd34",
+ "model-invariant-id": "c343a533-c045-4ec0-bbb6-f30eb8eb5a41",
+ "depth": 2
+ }
+ }
+ }
+ ]
+ }]
+ },
+ {
+ "responses": [
+ { "is": {
+ "statusCode": 200,
+ "body": {{ healthcheck }}
+ }
+ }
+ ],
+ "predicates": [{
+ "and": [
+ {
+ "equals": {
+ "path": "/healthcheck",
+ "method": "GET"
+ }
+ }
+ ]
+ }]
+ },
+ {
+ "responses": [
+ { "is": {
+ "statusCode": 200,
+ "body": {{ get_onap_regions }}
+ }
+ }
+ ],
+ "predicates": [{
+ "and": [
+ {
+ "equals": {
+ "path": "/aai/v14/cloud-infrastructure/cloud-regions/",
+ "method": "GET"
+ }
+ }
+ ]
+ }]
+ },
+ {
+ "responses": [
+ { "is": {
+ "statusCode": 200,
+ "body": {{ get_onap_complex_DLLSTX233 }}
+ }
+ }
+ ],
+ "predicates": [{
+ "and": [
+ {
+ "equals": {
+ "path": "/aai/v14/cloud-infrastructure/complexes/complex/DLLSTX233",
+ "method": "GET"
+ }
+ }
+ ]
+ }]
+ },
+ {
+ "responses": [
+ { "is": {
+ "statusCode": 200,
+ "body": {{ get_flavors_cloud_region_1 }}
+ }
+ }
+ ],
+ "predicates": [{
+ "and": [
+ {
+ "equals": {
+ "path": "/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/HPA-cloud/cloud-region-1/flavors/",
+ "method": "GET"
+ }
+ }
+ ]
+ }]
+ },
+ {
+ "responses": [
+ { "is": {
+ "statusCode": 200,
+ "body": {{ get_flavors_cloud_region_2 }}
+ }
+ }
+ ],
+ "predicates": [{
+ "and": [
+ {
+ "equals": {
+ "path": "/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/HPA-cloud/cloud-region-2/flavors/",
+ "method": "GET"
+ }
+ }
+ ]
+ }]
+ },
+ {
+ "responses": [
+ { "is": {
+ "statusCode": 404,
+ "body": "Not found"
+ }
+ }
+ ]
+ }]
+}
diff --git a/conductor/conductor/tests/functional/simulators/aaisim/responses/get_nsi_response.json b/conductor/conductor/tests/functional/simulators/aaisim/responses/get_nsi_response.json
new file mode 100644
index 0000000..3d3f080
--- /dev/null
+++ b/conductor/conductor/tests/functional/simulators/aaisim/responses/get_nsi_response.json
@@ -0,0 +1,84 @@
+{"service-instance": [{
+ "service-instance-id": "1a636c4d-5e76-427e-bfd6-241a947224b0",
+ "service-instance-name": "nsi_test_0211",
+ "service-type": "embb",
+ "service-role": "nsi",
+ "service-function": "shared",
+ "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": "service-instance",
+ "relationship-label": "org.onap.relationships.inventory.ComposedOf",
+ "related-link": "/aai/v16/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/4115d3c8-dd59-45d6-b09d-e756dee9b518",
+ "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": "4115d3c8-dd59-45d6-b09d-e756dee9b518"
+ }
+ ],
+ "related-to-property": [
+ {
+ "property-key": "service-instance.service-instance-name",
+ "property-value": "csi_test_0211"
+ }
+ ]
+ }
+ ]
+ },
+ "service-profiles": {
+ "service-profile": [
+ {
+ "profile-id": "cdad9f49-4201-4e3a-aac1-b0f27902c299",
+ "latency": 20,
+ "max-number-of-UEs": 0,
+ "coverage-area-TA-list": "Chennai",
+ "ue-mobility-level": "stationary",
+ "resource-sharing-level": "0",
+ "exp-data-rate-UL": 100,
+ "exp-data-rate-DL": 100,
+ "activity-factor": 0,
+ "e2e-latency": 0,
+ "jitter": 0,
+ "survival-time": 0,
+ "exp-data-rate": 0,
+ "payload-size": 0,
+ "traffic-density": 0,
+ "conn-density": 0,
+ "reliability": 99.999,
+ "resource-version": "1581418602494"
+ },
+ {
+ "profile-id": "fe579f49-4201-4e3a-aac1-b0f27902c276",
+ "latency": 17,
+ "max-number-of-UEs": 0,
+ "coverage-area-TA-list": "Chennai",
+ "ue-mobility-level": "stationary",
+ "resource-sharing-level": "0",
+ "exp-data-rate-UL": 100,
+ "exp-data-rate-DL": 100,
+ "activity-factor": 0,
+ "e2e-latency": 0,
+ "jitter": 0,
+ "survival-time": 0,
+ "exp-data-rate": 0,
+ "payload-size": 0,
+ "traffic-density": 0,
+ "conn-density": 0,
+ "reliability": 99.999,
+ "resource-version": "1581418602494"
+ }
+ ]
+ }
+}]}
diff --git a/conductor/conductor/tests/functional/simulators/aaisim/responses/get_nssi_response.json b/conductor/conductor/tests/functional/simulators/aaisim/responses/get_nssi_response.json
index b7ef43b..0e00ca3 100644
--- a/conductor/conductor/tests/functional/simulators/aaisim/responses/get_nssi_response.json
+++ b/conductor/conductor/tests/functional/simulators/aaisim/responses/get_nssi_response.json
@@ -3,7 +3,8 @@
"service-instance-name": "nssi_test_0211",
"service-type": "embb",
"service-role": "nssi",
- "environment-context": "cn",
+ "service-function": "shared",
+ "workload-context": "cn",
"model-invariant-id": "21d57d4b-52ad-4d3c-a798-248b5bb9124a",
"model-version-id": "bfba363e-e39c-4bd9-a9d5-1371c28f4d22",
"resource-version": "1581418601616",
@@ -43,7 +44,7 @@
"profile-id": "cdad9f49-4201-4e3a-aac1-b0f27902c299",
"latency": 20,
"max-number-of-UEs": 0,
- "coverage-area-TA-list": "[{\"province\":\"??\",\"city\":\"???\",\"county\":\"???\",\"street\":\"?????\"}]",
+ "coverage-area-TA-list": "Chennai",
"ue-mobility-level": "stationary",
"resource-sharing-level": "0",
"exp-data-rate-UL": 100,
diff --git a/conductor/conductor/tests/functional/simulators/imposter.py b/conductor/conductor/tests/functional/simulators/imposter.py
new file mode 100644
index 0000000..50da73f
--- /dev/null
+++ b/conductor/conductor/tests/functional/simulators/imposter.py
@@ -0,0 +1,24 @@
+from jinja2 import Template
+import json
+import os
+import re
+import sys
+
+imposter_template = sys.argv[1]
+responses_dir = sys.argv[2]
+imposter_json = sys.argv[3]
+
+with open(imposter_template, 'r') as imposter_file:
+ tm = Template(imposter_file.read())
+
+responses = {}
+
+for filename in os.listdir(responses_dir):
+ if filename.endswith('.json'):
+ with open(os.path.join(responses_dir, filename), 'r') as response_file:
+ responses[re.sub('\.json$', '', filename)] = response_file.read()
+
+imposter = tm.render(responses)
+
+with open(imposter_json, 'w') as imposter_file:
+ imposter_file.write(imposter)
diff --git a/conductor/conductor/tests/functional/simulators/run_aaisim.sh b/conductor/conductor/tests/functional/simulators/run_aaisim.sh
index 203de16..288049d 100755
--- a/conductor/conductor/tests/functional/simulators/run_aaisim.sh
+++ b/conductor/conductor/tests/functional/simulators/run_aaisim.sh
@@ -17,5 +17,15 @@
#
# -------------------------------------------------------------------------
#
-docker run -d --name aaisim -p 8081:8081 aaisim
+#docker run -d --name aaisim -p 8081:8081 aaisim
+docker run --name aaisim -p 2525:2525 -p 8081:8081 -d andyrbell/mountebank:2.3.2
+sleep 10
+
+#generate imposter data
+python3 imposter.py aaisim/aai_imposter.jsont aaisim/responses aai_imposter.json
+
+#Add imposter at 8081
+curl -i -X POST -H 'Content-Type: application/json' http://localhost:2525/imposters --data @aai_imposter.json
+
+rm -rf aai_imposter.json