aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xplans/appc/healthcheck/setup.sh6
-rw-r--r--plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml8
-rw-r--r--plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh31
-rw-r--r--plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh3
-rwxr-xr-xplans/dcaegen2-collectors-datafile/ManagementInterface-suite/testplan.txt3
-rw-r--r--plans/dcaegen2-collectors-hv-ves/testsuites/.env3
-rw-r--r--plans/dcaegen2-collectors-hv-ves/testsuites/consul.d/cbs.json10
-rw-r--r--plans/dcaegen2-collectors-hv-ves/testsuites/docker-compose.yml90
-rw-r--r--plans/dcaegen2-pmmapper/pmmapper/assets/config.json12
-rw-r--r--plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-e2e.yml10
-rw-r--r--plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml5
-rwxr-xr-xplans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh13
-rw-r--r--plans/dcaegen2-pmmapper/pmmapper/setup.sh4
-rw-r--r--plans/dcaegen2-pmmapper/pmmapper/teardown.sh1
-rw-r--r--plans/multicloud-fcaps/functionality1/setup.sh34
-rw-r--r--plans/multicloud-fcaps/functionality1/teardown.sh15
-rw-r--r--plans/multicloud-fcaps/functionality1/testplan.txt3
-rwxr-xr-xplans/multicloud-k8s/functionality1/setup.sh38
-rwxr-xr-xplans/multicloud-k8s/functionality1/teardown.sh16
-rw-r--r--plans/multicloud-k8s/functionality1/testplan.txt3
-rwxr-xr-xplans/multicloud-lenovo/functionality1/setup.sh34
-rwxr-xr-xplans/multicloud-lenovo/functionality1/teardown.sh15
-rw-r--r--plans/multicloud-lenovo/functionality1/testplan.txt3
-rw-r--r--plans/policy/xacml-pdp/setup.sh32
-rw-r--r--plans/policy/xacml-pdp/teardown.sh20
-rw-r--r--plans/policy/xacml-pdp/testplan.txt3
-rw-r--r--plans/usecases/5G-bulkpm/composefile/docker-compose-dfc.yml12
-rw-r--r--plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml42
-rw-r--r--plans/usecases/5G-bulkpm/setup.sh63
-rw-r--r--plans/usecases/5G-bulkpm/teardown.sh7
-rwxr-xr-xscripts/clamp/start_clamp_containers.sh19
-rw-r--r--tests/clamp/APIs/01__Create_CL_Holmes.robot26
-rw-r--r--tests/clamp/APIs/02__Create_CL_TCA.robot40
-rw-r--r--tests/clamp/APIs/03__VariousApis.robot37
-rw-r--r--tests/clamp/APIs/04__Verify_API_Models.robot67
-rwxr-xr-xtests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot74
-rwxr-xr-xtests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot2
-rw-r--r--tests/dcaegen2-collectors-hv-ves/testcases/__init__.robot2
-rw-r--r--tests/dcaegen2-collectors-hv-ves/testcases/message-routing.robot4
-rw-r--r--tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios/too-big-payload/dcae-too-big-payload-request.json24
-rw-r--r--tests/dcaegen2-pmmapper/pmmapper/assets/A20181002.0000-1000-0015-1000_5G.xml88
-rw-r--r--tests/dcaegen2-pmmapper/pmmapper/assets/diff_vendor_metadata.json12
-rw-r--r--tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml24
-rw-r--r--tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml27
-rw-r--r--tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml11
-rw-r--r--tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json12
-rw-r--r--tests/dcaegen2-pmmapper/pmmapper/assets/valid_pm.xml678
-rw-r--r--tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot131
-rw-r--r--tests/dcaegen2/prh-testcases/resources/.env3
-rw-r--r--tests/dcaegen2/prh-testcases/resources/consul.d/cbs.json10
-rw-r--r--tests/dcaegen2/prh-testcases/resources/docker-compose.yml54
-rw-r--r--tests/multicloud-fcaps/provision/sanity_test_multicloud.robot20
-rw-r--r--tests/multicloud-k8s/data/create_rbdefinition.json7
-rw-r--r--tests/multicloud-k8s/multicloud-k8s-test.robot66
-rw-r--r--tests/multicloud-lenovo/provision/sanity_test_multicloud.robot22
-rw-r--r--tests/policy/api/api-test.robot4
-rw-r--r--tests/policy/distribution/distribution-test.robot10
-rw-r--r--tests/policy/xacml-pdp/xacml-pdp-test.robot28
-rw-r--r--tests/usecases/5G-bulkpm/BulkpmE2E.robot2
59 files changed, 1755 insertions, 288 deletions
diff --git a/plans/appc/healthcheck/setup.sh b/plans/appc/healthcheck/setup.sh
index 5e34afba..04d5c5e3 100755
--- a/plans/appc/healthcheck/setup.sh
+++ b/plans/appc/healthcheck/setup.sh
@@ -20,9 +20,9 @@
SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source ${WORKSPACE}/scripts/appc/script1.sh
-export APPC_DOCKER_IMAGE_VERSION=1.4.0-SNAPSHOT-latest
-export DGBUILDER_DOCKER_IMAGE_VERSION=0.3.0
-export ANSIBLE_DOCKER_IMAGE_VERSION=0.3.0
+export APPC_DOCKER_IMAGE_VERSION=1.5.0-SNAPSHOT-latest
+export DGBUILDER_DOCKER_IMAGE_VERSION=0.3.3
+export ANSIBLE_DOCKER_IMAGE_VERSION=0.4.1-STAGING-latest
export BRANCH=master
export SOLUTION_NAME=onap
diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml
new file mode 100644
index 00000000..b95842ba
--- /dev/null
+++ b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml
@@ -0,0 +1,8 @@
+version: '2'
+services:
+ dfc:
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest
+ container_name: dfc
+ ports:
+ - "8100:8100"
+ - "8433:8433"
diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh
new file mode 100644
index 00000000..af24717a
--- /dev/null
+++ b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+docker-compose up -d
+
+
+DFC=$(docker ps -a -q --filter="name=dfc")
+
+# Wait for initialization of Docker contaienr for DFC
+for i in {1..10}; do
+if [ $(docker inspect --format '{{ .State.Running }}' $DFC) ]
+then
+ echo "DFC Container Running"
+ break
+else
+ echo sleep $i
+ sleep $i
+fi
+done
+
+#Wait for initialization of the DFC service
+for i in {1..10}; do
+if [ $(curl -so /dev/null -w '%{response_code}' http://localhost:8100/heartbeat ) -eq 200 ]
+then
+ echo "DFC Service running"
+ break
+else
+ echo sleep $i
+ sleep $i
+fi
+done
+
diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh
new file mode 100644
index 00000000..bb0ac923
--- /dev/null
+++ b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+kill-instance.sh dfc \ No newline at end of file
diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/testplan.txt b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/testplan.txt
new file mode 100755
index 00000000..1f4ea93e
--- /dev/null
+++ b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite
diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/.env b/plans/dcaegen2-collectors-hv-ves/testsuites/.env
index a64ba26a..7e2fffcf 100644
--- a/plans/dcaegen2-collectors-hv-ves/testsuites/.env
+++ b/plans/dcaegen2-collectors-hv-ves/testsuites/.env
@@ -8,6 +8,5 @@ DCAE_APP_SIMULATOR_IMAGE=hv-collector-dcae-app-simulator
# IN XNF_SIMULATOR_LIBRARY PYTHON FILE.
HV_VES_VERSION=1.1-SNAPSHOT
-HV_VES_CONFIG_URL=http://consul:8500/v1/kv/veshv-config?raw=true
HV_VES_HEALTHCHECK_CMD=curl --request GET --fail --silent --show-error localhost:6060/health/ready && nc -vz localhost 6061
-HV_VES_MAIN_CLASS=org.onap.dcae.collectors.veshv.main.MainKt \ No newline at end of file
+HV_VES_MAIN_CLASS=org.onap.dcae.collectors.veshv.main.MainKt
diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/consul.d/cbs.json b/plans/dcaegen2-collectors-hv-ves/testsuites/consul.d/cbs.json
new file mode 100644
index 00000000..0761c7e5
--- /dev/null
+++ b/plans/dcaegen2-collectors-hv-ves/testsuites/consul.d/cbs.json
@@ -0,0 +1,10 @@
+{
+ "service": {
+ "name": "cbs",
+ "tags": [
+ "cbs"
+ ],
+ "port": 10000,
+ "address": "config-binding-service"
+ }
+}
diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/docker-compose.yml b/plans/dcaegen2-collectors-hv-ves/testsuites/docker-compose.yml
index 67178353..ac07eb78 100644
--- a/plans/dcaegen2-collectors-hv-ves/testsuites/docker-compose.yml
+++ b/plans/dcaegen2-collectors-hv-ves/testsuites/docker-compose.yml
@@ -6,92 +6,124 @@ networks:
name: $CONTAINERS_NETWORK
services:
+
+ #
+ # DMaaP Message Router
+ #
+
zookeeper:
image: wurstmeister/zookeeper
ports:
- - "2181:2181"
+ - "2181:2181"
networks:
- - ves-hv-default
+ - ves-hv-default
kafka:
image: wurstmeister/kafka
ports:
- - "9092:9092"
+ - "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: "kafka"
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9092"
volumes:
- - /var/run/docker.sock:/var/run/docker.sock
+ - /var/run/docker.sock:/var/run/docker.sock
depends_on:
- - zookeeper
+ - zookeeper
networks:
- - ves-hv-default
+ - ves-hv-default
+
+
+ #
+ # Consul / CBS
+ #
- consul:
- image: progrium/consul
+ consul-server:
+ image: docker.io/consul:1.0.6
ports:
- - "8500:8500"
+ - "8500:8500"
+ command: ["agent","-bootstrap", "-client=0.0.0.0", "-server", "-ui", "-config-dir=/consul/consul.d"]
+ volumes:
+ - ./consul.d/:/consul/consul.d
+ networks:
+ ves-hv-default:
+ aliases:
+ - consul
+
+ config-binding-service:
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:2.2.4
+ ports:
+ - "10000:10000"
environment:
- - CONSUL_BIND_INTERFACE=eth0
+ CONSUL_HOST: "consul-server"
+ depends_on:
+ - consul-server
networks:
ves-hv-default:
aliases:
- - consul
- command: ["-server", "-bootstrap"]
+ - cbs
+ #
+ # DCAE HV VES Collector
+ #
ves-hv-collector:
image: ${DOCKER_REGISTRY}/${HV_VES_COLLECTOR_NAMESPACE}/${HV_VES_GROUP_ID}.${HV_VES_IMAGE}:${HV_VES_VERSION}
ports:
- - "6060:6060"
- - "6061:6061/tcp"
+ - "6060:6060"
+ - "6061:6061/tcp"
command: ["--listen-port", "6061",
- "--config-url", "${HV_VES_CONFIG_URL}",
"--kafka-bootstrap-servers", "kafka:9092",
"--key-store-password", "onaponap",
"--trust-store-password", "onaponap"]
environment:
JAVA_OPTS: "-Dio.netty.leakDetection.level=paranoid"
+ CONSUL_HOST: "consul-server"
+ CONFIG_BINDING_SERVICE: "cbs"
+ HOSTNAME: "dcae-hv-ves-collector"
healthcheck:
interval: 10s
timeout: 5s
retries: 2
test: ${HV_VES_HEALTHCHECK_CMD}
- depends_on:
- - kafka
volumes:
- - ./ssl/:/etc/ves-hv/
+ - ./ssl/:/etc/ves-hv/
+ depends_on:
+ - config-binding-service
+ - kafka
networks:
- - ves-hv-default
+ - ves-hv-default
unencrypted-ves-hv-collector:
image: ${DOCKER_REGISTRY}/${HV_VES_COLLECTOR_NAMESPACE}/${HV_VES_GROUP_ID}.${HV_VES_IMAGE}:${HV_VES_VERSION}
ports:
- - "7060:6060"
- - "7061:6061/tcp"
+ - "7060:6060"
+ - "7061:6061/tcp"
command: ["--listen-port", "6061",
- "--config-url", "${HV_VES_CONFIG_URL}",
"--kafka-bootstrap-servers", "kafka:9092",
"--ssl-disable"]
environment:
JAVA_OPTS: "-Dio.netty.leakDetection.level=paranoid"
+ CONSUL_HOST: "consul-server"
+ CONFIG_BINDING_SERVICE: "cbs"
+ HOSTNAME: "dcae-hv-ves-collector"
healthcheck:
interval: 10s
timeout: 5s
retries: 2
test: ${HV_VES_HEALTHCHECK_CMD}
- depends_on:
- - kafka
volumes:
- - ./ssl/:/etc/ves-hv/
+ - ./ssl/:/etc/ves-hv/
+ depends_on:
+ - config-binding-service
+ - kafka
networks:
- - ves-hv-default
+ - ves-hv-default
dcae-app-simulator:
image: ${DOCKER_REGISTRY}/${HV_VES_COLLECTOR_NAMESPACE}/${HV_VES_GROUP_ID}.${DCAE_APP_SIMULATOR_IMAGE}:${HV_VES_VERSION}
ports:
- - "6063:6063/tcp"
+ - "6063:6063/tcp"
command: ["--listen-port", "6063", "--kafka-bootstrap-servers", "kafka:9092", "--kafka-topics", "non-existing-topic"]
healthcheck:
interval: 10s
@@ -99,9 +131,9 @@ services:
retries: 2
test: "curl --request GET --fail --silent --show-error localhost:6063/healthcheck"
depends_on:
- - kafka
+ - kafka
networks:
ves-hv-default:
aliases:
- - dcae-app-simulator
+ - dcae-app-simulator
diff --git a/plans/dcaegen2-pmmapper/pmmapper/assets/config.json b/plans/dcaegen2-pmmapper/pmmapper/assets/config.json
index 47b215f5..3a42e7c5 100644
--- a/plans/dcaegen2-pmmapper/pmmapper/assets/config.json
+++ b/plans/dcaegen2-pmmapper/pmmapper/assets/config.json
@@ -1,6 +1,5 @@
{
- "pm-mapper-filter": "{ \"filters\":[]}",
- "3GPP.schema.file": "{\"3GPP_Schema\":\"./etc/3GPP_relaxed_schema.xsd\"}",
+ "pm-mapper-filter": { "filters":[{"nfType": "gnb", "vendor": "Ericsson"}]},
"streams_subscribes": {
"dmaap_subscriber": {
"type": "data_router",
@@ -8,15 +7,15 @@
"aaf_password": null,
"dmaap_info": {
"location": "csit-pmmapper",
- "delivery_url": "3gpppmmapper",
+ "delivery_url": "http://3gpppmmapper:8081/delivery",
"username": "username",
"password": "password",
- "subscriber_id": "subsriber_id"
+ "subscriber_id": "subscriber_id"
}
}
},
"streams_publishes": {
- "pm_mapper_handle_out": {
+ "dmaap_publisher": {
"type": "message_router",
"aaf_password": null,
"dmaap_info": {
@@ -28,7 +27,8 @@
"aaf_username": null
}
},
- "buscontroller_feed_id": "1",
+ "dmaap_dr_feed_id": "1",
"buscontroller_feed_subscription_endpoint": "http://dmaap-bc:8080/webapi/dr_subs",
+ "dmaap_dr_delete_endpoint": "http://dmaap-dr-node:8443/delete",
"services_calls": {}
} \ No newline at end of file
diff --git a/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-e2e.yml b/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-e2e.yml
index ff1b517a..bf02465b 100644
--- a/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-e2e.yml
+++ b/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-e2e.yml
@@ -1,7 +1,7 @@
version: '2.1'
services:
datarouter-prov:
- image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.0.0-SNAPSHOT
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.0.1
container_name: datarouter-prov
hostname: dmaap-dr-prov
ports:
@@ -22,7 +22,7 @@ services:
retries: 5
datarouter-node:
- image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.0.0-SNAPSHOT
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.0.1
container_name: datarouter-node
hostname: dmaap-dr-node
ports:
@@ -62,13 +62,13 @@ services:
buscontroller:
container_name: buscontroller
- image: nexus3.onap.org:10001/onap/dmaap/buscontroller
+ image: nexus3.onap.org:10001/onap/dmaap/dmaap-bc:1.1.1
ports:
- "18080:8080"
- "18443:8443"
extra_hosts:
- - "dmaap-dr-prov: DMAAPDR"
- - "message-router: DMAAPMR"
+ - "dmaap-dr-prov:DMAAPDR"
+ - "message-router:DMAAPMR"
volumes:
- /tmp/docker-databus-controller.conf:/opt/app/config/conf
depends_on:
diff --git a/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml b/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml
index 0833dfe8..b14a73c6 100644
--- a/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml
+++ b/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml
@@ -2,7 +2,7 @@ version: '2.1'
services:
pmmapper:
container_name: pmmapper
- image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:1.0-SNAPSHOT
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper
ports:
- "8081:8081"
environment:
@@ -10,4 +10,5 @@ services:
CONFIG_BINDING_SERVICE_SERVICE_PORT: 10000
HOSTNAME: pmmapper
extra_hosts:
- - "dmaap-bc: BUSIP" \ No newline at end of file
+ - "dmaap-bc:BUSIP"
+ - "dmaap-dr-node:DRNODEIP"
diff --git a/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh b/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh
index bb8c6f26..14051121 100755
--- a/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh
+++ b/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh
@@ -53,7 +53,18 @@ cat << EOF > $JSON
"feedVersion": "1",
"feedDescription":"PM Mapper Feed",
"owner":"bulkpm",
-"asprClassification": "unclassified"
+"asprClassification": "unclassified",
+"pubs": [
+ {
+ "dcaeLocationName": "csit-pmmapper",
+ "feedId": "1",
+ "lastMod": "2015-01-01T15:00:00.000Z",
+ "pubId": "10",
+ "status": "EMPTY",
+ "username": "pmmapper",
+ "userpwd": "pmmapper"
+ }
+ ]
}
EOF
echo "Initializing /feeds endpoint"
diff --git a/plans/dcaegen2-pmmapper/pmmapper/setup.sh b/plans/dcaegen2-pmmapper/pmmapper/setup.sh
index 9de81667..071213ef 100644
--- a/plans/dcaegen2-pmmapper/pmmapper/setup.sh
+++ b/plans/dcaegen2-pmmapper/pmmapper/setup.sh
@@ -121,6 +121,7 @@ cp $WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapp
CBS_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cbs)
sed -i 's/CBSIP/'$CBS_IP'/g' docker-compose.yml
sed -i 's/BUSIP/'$DMAAPBC_IP'/g' docker-compose.yml
+sed -i 's/DRNODEIP/'$DR_NODE_IP'/g' docker-compose.yml
docker-compose up -d
# Wait for initialization of Docker container for 3GPP PM Mapper
@@ -136,6 +137,7 @@ for i in {1..10}; do
done
PMMAPPER_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' pmmapper)
docker exec datarouter-prov /bin/sh -c "echo '${PMMAPPER_IP}' 3gpppmmapper >> /etc/hosts"
+docker exec datarouter-node /bin/sh -c "echo '${PMMAPPER_IP}' 3gpppmmapper >> /etc/hosts"
sleep 10
docker exec pmmapper /bin/sh -c "cat /var/log/ONAP/dcaegen2/services/pm-mapper/pm-mapper_output.log" > /tmp/pmmapper.log
cat /tmp/pmmapper.log
@@ -143,4 +145,4 @@ docker exec buscontroller /bin/sh -c "cat /opt/app/dmaapbc/logs/ONAP/application
curl -k https://$DR_PROV_IP:8443/internal/prov
#Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DMAAPBC_IP:${DMAAPBC_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v CBS_IP:${CBS_IP} -v PMMAPPER_IP:${PMMAPPER_IP}" \ No newline at end of file
+ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DMAAPBC_IP:${DMAAPBC_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v CBS_IP:${CBS_IP} -v PMMAPPER_IP:${PMMAPPER_IP} -v DR_NODE_IP:${DR_NODE_IP}" \ No newline at end of file
diff --git a/plans/dcaegen2-pmmapper/pmmapper/teardown.sh b/plans/dcaegen2-pmmapper/pmmapper/teardown.sh
index 08e1c770..bcbcffff 100644
--- a/plans/dcaegen2-pmmapper/pmmapper/teardown.sh
+++ b/plans/dcaegen2-pmmapper/pmmapper/teardown.sh
@@ -1,5 +1,6 @@
#!/bin/bash
echo "Starting teardown script"
+docker exec pmmapper /bin/sh -c "cat /var/log/ONAP/dcaegen2/services/pm-mapper/pm-mapper_output.log"
kill-instance.sh $DMAAP
kill-instance.sh $KAFKA
kill-instance.sh $ZOOKEEPER
diff --git a/plans/multicloud-fcaps/functionality1/setup.sh b/plans/multicloud-fcaps/functionality1/setup.sh
new file mode 100644
index 00000000..1e125d69
--- /dev/null
+++ b/plans/multicloud-fcaps/functionality1/setup.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, CMCC Technologies Co., Ltd.
+#
+# 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.
+
+#
+# Place the scripts in run order:
+# Start all process required for executing test case
+
+source ${SCRIPTS}/common_functions.sh
+
+# start multicloud-fcaps
+docker run -d --name multicloud-fcaps nexus3.onap.org:10001/onap/multicloud/openstack-fcaps
+SERVICE_IP=`get-instance-ip.sh multicloud-fcaps`
+SERVICE_PORT=9011
+
+for i in {1..50}; do
+ curl -sS ${SERVICE_IP}:${SERVICE_PORT} && break
+ echo sleep $i
+ sleep $i
+done
+
+echo SCRIPTS
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} "
+ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} "
diff --git a/plans/multicloud-fcaps/functionality1/teardown.sh b/plans/multicloud-fcaps/functionality1/teardown.sh
new file mode 100644
index 00000000..c923a4cc
--- /dev/null
+++ b/plans/multicloud-fcaps/functionality1/teardown.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, CMCC Technologies Co., Ltd.
+#
+# 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.
+
+# This script is sourced by run-csit.sh after Robot test completion.
+kill-instance.sh multicloud-fcaps
diff --git a/plans/multicloud-fcaps/functionality1/testplan.txt b/plans/multicloud-fcaps/functionality1/testplan.txt
new file mode 100644
index 00000000..5297eecc
--- /dev/null
+++ b/plans/multicloud-fcaps/functionality1/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+multicloud-fcaps/provision/sanity_test_multicloud.robot
diff --git a/plans/multicloud-k8s/functionality1/setup.sh b/plans/multicloud-k8s/functionality1/setup.sh
new file mode 100755
index 00000000..182fb8b7
--- /dev/null
+++ b/plans/multicloud-k8s/functionality1/setup.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+#
+# Copyright (c) 2018 Intel Corporation, Inc
+#
+# 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.
+
+pushd ${SCRIPTS}
+
+# start mongodb
+./run-instance.sh docker.io/mongo:4.0 multicloud-k8s-mongodb
+MONGO_IP=$(./get-instance-ip.sh multicloud-k8s-mongodb)
+
+# start multicloud-k8s
+./run-instance.sh nexus3.onap.org:10001/onap/multicloud/k8s:latest multicloud-k8s "-e PLUGINS_DIR=/opt/multicloud/k8s -e DATABASE_TYPE=mongo -e DATABASE_IP=$MONGO_IP"
+SERVICE_IP=$(./get-instance-ip.sh multicloud-k8s)
+SERVICE_PORT=8081
+popd
+
+if [[ $no_proxy && $no_proxy != *$SERVICE_IP* ]]; then
+ export no_proxy+=$no_proxy,$SERVICE_IP
+fi
+
+for i in {1..50}; do
+ curl -sS ${SERVICE_IP}:${SERVICE_PORT} && break
+ echo sleep $i
+ sleep $i
+done
+
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} "
+ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} "
diff --git a/plans/multicloud-k8s/functionality1/teardown.sh b/plans/multicloud-k8s/functionality1/teardown.sh
new file mode 100755
index 00000000..ed4c0a80
--- /dev/null
+++ b/plans/multicloud-k8s/functionality1/teardown.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+#
+# Copyright (c) 2018 Intel Corporation, Inc
+#
+# 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.
+
+# This script is sourced by run-csit.sh after Robot test completion.
+kill-instance.sh multicloud-k8s
+kill-instance.sh multicloud-k8s-mongodb
diff --git a/plans/multicloud-k8s/functionality1/testplan.txt b/plans/multicloud-k8s/functionality1/testplan.txt
new file mode 100644
index 00000000..02d23d47
--- /dev/null
+++ b/plans/multicloud-k8s/functionality1/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+multicloud-k8s/multicloud-k8s-test.robot
diff --git a/plans/multicloud-lenovo/functionality1/setup.sh b/plans/multicloud-lenovo/functionality1/setup.sh
new file mode 100755
index 00000000..39f24eaa
--- /dev/null
+++ b/plans/multicloud-lenovo/functionality1/setup.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# Copyright (c) 2017 Lenovo Systems, Inc.
+#
+# 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.
+
+#
+# Place the scripts in run order:
+# Start all process required for executing test case
+
+source ${SCRIPTS}/common_functions.sh
+
+# start multicloud-lenovo
+docker run -d --name multicloud-lenovo nexus3.onap.org:10001/onap/multicloud/openstack-lenovo
+SERVICE_IP=`get-instance-ip.sh multicloud-lenovo`
+SERVICE_PORT=9010
+
+for i in {1..50}; do
+ curl -sS ${SERVICE_IP}:${SERVICE_PORT} && break
+ echo sleep $i
+ sleep $i
+done
+
+echo SCRIPTS
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} "
+ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} "
diff --git a/plans/multicloud-lenovo/functionality1/teardown.sh b/plans/multicloud-lenovo/functionality1/teardown.sh
new file mode 100755
index 00000000..8dace0e6
--- /dev/null
+++ b/plans/multicloud-lenovo/functionality1/teardown.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+# Copyright (c) 2017 Lenovo Systems, Inc.
+#
+# 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.
+
+# This script is sourced by run-csit.sh after Robot test completion.
+kill-instance.sh multicloud-lenovo
diff --git a/plans/multicloud-lenovo/functionality1/testplan.txt b/plans/multicloud-lenovo/functionality1/testplan.txt
new file mode 100644
index 00000000..ef14af3b
--- /dev/null
+++ b/plans/multicloud-lenovo/functionality1/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+multicloud-lenovo/provision/sanity_test_multicloud.robot
diff --git a/plans/policy/xacml-pdp/setup.sh b/plans/policy/xacml-pdp/setup.sh
new file mode 100644
index 00000000..e7882822
--- /dev/null
+++ b/plans/policy/xacml-pdp/setup.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+# Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+docker run -d --name policy-xacml-pdp -p 6969:6969 -it nexus3.onap.org:10001/onap/policy-xacml-pdp:2.0.0-SNAPSHOT-latest
+docker ps -a
+sleep 5
+POLICY_PDPX_IP=`get-instance-ip.sh policy-xacml-pdp`
+echo PDP-X IP IS ${POLICY_PDPX_IP}
+# Wait for initialization
+for i in {1..10}; do
+ curl -sS ${POLICY_PDPX_IP}:6969 && break
+ echo sleep $i
+ sleep $i
+done
+
+ROBOT_VARIABLES="-v POLICY_PDPX_IP:${POLICY_PDPX_IP}"
diff --git a/plans/policy/xacml-pdp/teardown.sh b/plans/policy/xacml-pdp/teardown.sh
new file mode 100644
index 00000000..a81ee6b1
--- /dev/null
+++ b/plans/policy/xacml-pdp/teardown.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+# Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+kill-instance.sh policy-xacml-pdp
diff --git a/plans/policy/xacml-pdp/testplan.txt b/plans/policy/xacml-pdp/testplan.txt
new file mode 100644
index 00000000..2b641dfd
--- /dev/null
+++ b/plans/policy/xacml-pdp/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+policy/xacml-pdp/xacml-pdp-test.robot
diff --git a/plans/usecases/5G-bulkpm/composefile/docker-compose-dfc.yml b/plans/usecases/5G-bulkpm/composefile/docker-compose-dfc.yml
new file mode 100644
index 00000000..aae77f71
--- /dev/null
+++ b/plans/usecases/5G-bulkpm/composefile/docker-compose-dfc.yml
@@ -0,0 +1,12 @@
+version: '2.1'
+services:
+ dfc:
+ container_name: dfc
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest
+ ports:
+ - "8433:8433"
+ environment:
+ CONSUL_HOST: CONSUL_IP
+ CONSUL_PORT: 8500
+ extra_hosts:
+ - "dmaap-dr-node:DR_NODE_IP" \ No newline at end of file
diff --git a/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml b/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml
index 05ccb70d..3ee96355 100644
--- a/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml
+++ b/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml
@@ -1,7 +1,7 @@
version: '2.1'
services:
datarouter-prov:
- image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.0.0-SNAPSHOT
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.0.1
container_name: datarouter-prov
hostname: dmaap-dr-prov
ports:
@@ -22,7 +22,7 @@ services:
retries: 5
datarouter-node:
- image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.0.0-SNAPSHOT
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.0.1
container_name: datarouter-node
hostname: dmaap-dr-node
ports:
@@ -35,7 +35,7 @@ services:
condition: service_healthy
datarouter-subscriber:
- image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber:2.0.0-SNAPSHOT
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber:2.0.1
container_name: fileconsumer-node
hostname: subscriber.com
ports:
@@ -68,14 +68,40 @@ services:
- /host/upload:/home/admin
command: admin:admin:1001
+ ves:
+ container_name: vescollector
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.4.1
+ environment:
+ DMAAPHOST:
+
dfc:
container_name: dfc
- image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.1.1
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest
ports:
- "8433:8433"
+ extra_hosts:
+ - "dmaap-dr-node:DR_NODE_IP"
- ves:
- container_name: vescollector
- image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:latest
+ consul:
+ container_name: consul
+ image: nexus3.onap.org:10001/consul:latest
+
+ cbs:
+ container_name: cbs
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:latest
environment:
- DMAAPHOST:
+ CONSUL_HOST:
+
+ buscontroller:
+ container_name: buscontroller
+ image: nexus3.onap.org:10001/onap/dmaap/dmaap-bc:1.1.1
+ ports:
+ - "18080:8080"
+ - "18443:8443"
+ extra_hosts:
+ - "dmaap-dr-prov:DMAAPDR"
+ - "message-router:DMAAPMR"
+ volumes:
+ - /tmp/docker-databus-controller.conf:/opt/app/config/conf
+ depends_on:
+ - datarouter-prov
diff --git a/plans/usecases/5G-bulkpm/setup.sh b/plans/usecases/5G-bulkpm/setup.sh
index 5f3c4a3c..6f9b7591 100644
--- a/plans/usecases/5G-bulkpm/setup.sh
+++ b/plans/usecases/5G-bulkpm/setup.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Place the scripts in run order:
+#Place the scripts in run order:
source ${SCRIPTS}/common_functions.sh
CSIT=TRUE
@@ -70,6 +70,8 @@ cd $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/res
mkdir docker-compose
cd $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose
cp $WORKSPACE/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose/docker-compose.yml
+cp $WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/assets/docker-databus-controller.conf /tmp/
+sed -i 's/DMAAPMR/'$DMAAP_MR_IP'/g' /tmp/docker-databus-controller.conf
docker login -u docker -p docker nexus3.onap.org:10001
docker-compose up -d
@@ -77,6 +79,9 @@ echo "Disregard the message ERROR: for datarouter-node Container 1234456 is unh
docker kill datarouter-prov
docker kill datarouter-node
docker kill vescollector
+docker kill cbs
+CONSUL_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' consul )
+sed -i -e '/CONSUL_HOST:/ s/:.*/: '$CONSUL_IP'/' docker-compose.yml
HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
sed -i -e '/DMAAPHOST:/ s/:.*/: '$HOST_IP'/' docker-compose.yml
MARIADB=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mariadb )
@@ -98,7 +103,6 @@ for i in {1..10}; do
done
sleep 5
-
# Get IP address of datarrouger-prov, datarouter-node, fileconsumer-node.
DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov)
DR_NODE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-node)
@@ -127,29 +131,53 @@ export VESC_IP=${VESC_IP}
export HOST_IP=${HOST_IP}
export DMAAP_MR_IP=${DMAAP_MR_IP}
-#Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DR_NODE_IP:${DR_NODE_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v VESC_IP:${VESC_IP} -v VESC_PORT:${VESC_PORT} -v DR_SUBSCIBER_IP:${DR_SUBSCIBER_IP}"
-
-pip install jsonschema uuid
-# Wait container ready
-sleep 2
+docker kill buscontroller
+sed -i 's/DMAAPDR/'$DR_PROV_IP'/g' docker-compose.yml
+sed -i 's/DMAAPMR/'$DMAAP_MR_IP'/g' docker-compose.yml
+docker-compose up -d
+sed -i 's/DMAAPDR/'$DR_PROV_IP'/g' /tmp/docker-databus-controller.conf
# Data File Collector configuration :
-docker cp dfc:/config/datafile_endpoints.json /tmp/
-echo data_endpoints.json from DFC containter
-cat /tmp/datafile_endpoints.json
+sed -i 's/DR_NODE_IP/'$DR_NODE_IP'/g' docker-compose.yml
cp $WORKSPACE/plans/usecases/5G-bulkpm/assets/datafile_endpoints.json /tmp/
sed -i 's/dmaapmrhost/'${DMAAP_MR_IP}'/g' /tmp/datafile_endpoints.json
sed -i 's/dmaapdrhost/'${DR_PROV_IP}'/g' /tmp/datafile_endpoints.json
-echo data_endpoints.json copied onto the DFC containter
+echo data_endpoints.json to be copied onto the DFC containter
cat /tmp/datafile_endpoints.json
-docker cp /tmp/datafile_endpoints.json dfc:/config/
+docker-compose up -d
+sleep 2
+# DFC is now online
+docker cp dfc:/opt/app/datafile/config/datafile_endpoints.json /tmp/datafile_endpoints.json.fromcontainer
+echo data_endpoints.json from DFC containter
+cat /tmp/datafile_endpoints.json.fromcontainer
+docker cp /tmp/datafile_endpoints.json dfc:/opt/app/datafile/config/
#Increase Logging
-docker exec dfc /bin/sh -c " sed -i 's/org.onap.dcaegen2.collectors.datafile: ERROR/org.onap.dcaegen2.collectors.datafile: TRACE/g' /config/application.yaml"
+docker exec dfc /bin/sh -c " sed -i 's/org.onap.dcaegen2.collectors.datafile: ERROR/org.onap.dcaegen2.collectors.datafile: TRACE/g' /opt/app/datafile/config/application.yaml"
docker restart dfc
-docker exec dfc /bin/sh -c "echo '${DR_NODE_IP}' dmaap-dr-node >> /etc/hosts"
+sleep 2
+
+# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb, Consul, CBS, Buscontroller
+for i in {1..10}; do
+ if [ $(docker inspect --format '{{ .State.Running }}' consul) ] && \
+ [ $(docker inspect --format '{{ .State.Running }}' cbs) ] && \
+ [ $(docker inspect --format '{{ .State.Running }}' buscontroller) ]
+ then
+ echo "Data Router, Consul, Config Binding Service, Buscontroller Services Running"
+ break
+ else
+ echo sleep $i
+ sleep $i
+ fi
+done
+sleep 10
+
+#Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DR_NODE_IP:${DR_NODE_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v VESC_IP:${VESC_IP} -v VESC_PORT:${VESC_PORT} -v DR_SUBSCIBER_IP:${DR_SUBSCIBER_IP}"
+
+pip install jsonschema uuid
+# Wait container ready
+sleep 2
-# SFTP Configuration:
# Update the File Ready Notification with actual sftp ip address and copy pm files to sftp server.
cp $WORKSPACE/tests/usecases/5G-bulkpm/assets/json_events/FileExistNotification.json $WORKSPACE/tests/usecases/5G-bulkpm/assets/json_events/FileExistNotificationUpdated.json
sed -i 's/sftpserver/'${SFTP_IP}'/g' $WORKSPACE/tests/usecases/5G-bulkpm/assets/json_events/FileExistNotificationUpdated.json
@@ -240,4 +268,5 @@ curl -k https://$DR_PROV_IP:8443/internal/prov
#Pass any variables required by Robot test suites in ROBOT_VARIABLES
ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DR_NODE_IP:${DR_NODE_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v VESC_IP:${VESC_IP} -v VESC_PORT:${VESC_PORT} -v DR_SUBSCIBER_IP:${DR_SUBSCIBER_IP} -v DFC_POD:${DFC_POD} -v HOST_IP:${HOST_IP} "
-fi; \ No newline at end of file
+fi;
+
diff --git a/plans/usecases/5G-bulkpm/teardown.sh b/plans/usecases/5G-bulkpm/teardown.sh
index a69dc358..7a99941b 100644
--- a/plans/usecases/5G-bulkpm/teardown.sh
+++ b/plans/usecases/5G-bulkpm/teardown.sh
@@ -1,6 +1,6 @@
#!/bin/bash
echo "Starting teardown script"
-docker exec dfc /bin/sh -c "less /opt/log/application.log" > /tmp/dfc_docker.log
+docker exec dfc /bin/sh -c "less /var/log/ONAP/application.log" > /tmp/dfc_docker.log
cat /tmp/dfc_docker.log
sleep 3
rm /tmp/dfc_docker.log.robot
@@ -13,4 +13,7 @@ kill-instance.sh datarouter-prov
kill-instance.sh fileconsumer-node
kill-instance.sh mariadb
kill-instance.sh dfc
-kill-instance.sh sftp \ No newline at end of file
+kill-instance.sh sftp
+kill-instance.sh cbs
+kill-instance.sh consul
+kill-instance.sh buscontroller \ No newline at end of file
diff --git a/scripts/clamp/start_clamp_containers.sh b/scripts/clamp/start_clamp_containers.sh
index 8a176fbf..8da83405 100755
--- a/scripts/clamp/start_clamp_containers.sh
+++ b/scripts/clamp/start_clamp_containers.sh
@@ -49,22 +49,5 @@ if [ "$TIME" -ge "$TIME_OUT" ]; then
exit 1;
fi
-# To avoid some problem because templates not yet read
-TIME=0
-while [ "$TIME" -lt "$TIME_OUT" ]; do
- response=$(curl --write-out '%{http_code}' --silent --output /dev/null -u admin:password -vk --key config/org.onap.clamp.keyfile https://localhost:8443/restservices/clds/v1/cldsTempate/template-names); echo $response
+sleep 30
- if [ "$response" == "200" ]; then
- echo Templates well available
- break;
- fi
-
- echo Sleep: $INTERVAL seconds before testing if templates available. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds
- sleep $INTERVAL
- TIME=$(($TIME+$INTERVAL))
-done
-
-if [ "$TIME" -ge "$TIME_OUT" ]; then
- echo TIME OUT: Templates not available in $TIME_OUT seconds... Could cause problems for tests...
- exit 1;
-fi
diff --git a/tests/clamp/APIs/01__Create_CL_Holmes.robot b/tests/clamp/APIs/01__Create_CL_Holmes.robot
index ce4c8df6..be63f22f 100644
--- a/tests/clamp/APIs/01__Create_CL_Holmes.robot
+++ b/tests/clamp/APIs/01__Create_CL_Holmes.robot
@@ -19,29 +19,3 @@ Get Requests health check ok
Create the sessions
${resp}= Get Request ${clamp_session} /restservices/clds/v1/healthcheck
Should Be Equal As Strings ${resp.status_code} 200
-
-Get Requests verify test template found
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/cldsTempate/template-names
- Should Be Equal As Strings ${resp.status_code} 200
- Should Contain Match ${resp} *templateHolmes1*
- Should Contain Match ${resp} *templateHolmes2*
- Should Not Contain Match ${resp} *templateHolmes99*
-
-Put Requests to add Close Loop ClHolmes1
- ${data}= Get Binary File ${CURDIR}${/}data${/}createClHolmes1.json
- &{headers}= Create Dictionary Content-Type=application/json
- ${resp}= Put Request ${clamp_session} /restservices/clds/v1/clds/model/ClHolmes1 data=${data} headers=${headers}
- Should Be Equal As Strings ${resp.status_code} 200
-
-Put Requests to add Close Loop ClHolmes2
- ${data}= Get Binary File ${CURDIR}${/}data${/}createClHolmes2.json
- &{headers}= Create Dictionary Content-Type=application/json
- ${resp}= Put Request ${clamp_session} /restservices/clds/v1/clds/model/ClHolmes2 data=${data} headers=${headers}
- Should Be Equal As Strings ${resp.status_code} 200
-
-Get Requests verify CL1 found
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/model-names
- Should Be Equal As Strings ${resp.status_code} 200
- Should Contain Match ${resp} *ClHolmes1*
- Should Contain Match ${resp} *ClHolmes2*
- Should Not Contain Match ${resp} *ClHolmes99*
diff --git a/tests/clamp/APIs/02__Create_CL_TCA.robot b/tests/clamp/APIs/02__Create_CL_TCA.robot
deleted file mode 100644
index 15ab4b16..00000000
--- a/tests/clamp/APIs/02__Create_CL_TCA.robot
+++ /dev/null
@@ -1,40 +0,0 @@
-*** Settings ***
-Library Collections
-Library RequestsLibrary
-Library OperatingSystem
-Library json
-
-*** Variables ***
-${login} admin
-${passw} password
-
-*** Test Cases ***
-Get Requests health check ok
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/healthcheck
- Should Be Equal As Strings ${resp.status_code} 200
-
-Get Requests verify test template found
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/cldsTempate/template-names
- Should Be Equal As Strings ${resp.status_code} 200
- Should Contain Match ${resp} *templateTCA1*
- Should Contain Match ${resp} *CA2*
- Should Not Contain Match ${resp} *templateTCA99*
-
-Put Requests to add Close Loop ClHolmes1
- ${data}= Get Binary File ${CURDIR}${/}data${/}createClTCA1.json
- &{headers}= Create Dictionary Content-Type=application/json
- ${resp}= Put Request ${clamp_session} /restservices/clds/v1/clds/model/ClTCA1 data=${data} headers=${headers}
- Should Be Equal As Strings ${resp.status_code} 200
-
-Put Requests to add Close Loop ClHolmes2
- ${data}= Get Binary File ${CURDIR}${/}data${/}createClTCA2.json
- &{headers}= Create Dictionary Content-Type=application/json
- ${resp}= Put Request ${clamp_session} /restservices/clds/v1/clds/model/ClTCA2 data=${data} headers=${headers}
- Should Be Equal As Strings ${resp.status_code} 200
-
-Get Requests verify CL1 found
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/model-names
- Should Be Equal As Strings ${resp.status_code} 200
- Should Contain Match ${resp} *ClTCA1*
- Should Contain Match ${resp} *ClTCA2*
- Should Not Contain Match ${resp} *ClTCA99*
diff --git a/tests/clamp/APIs/03__VariousApis.robot b/tests/clamp/APIs/03__VariousApis.robot
deleted file mode 100644
index f3272839..00000000
--- a/tests/clamp/APIs/03__VariousApis.robot
+++ /dev/null
@@ -1,37 +0,0 @@
-*** Settings ***
-Library Collections
-Library RequestsLibrary
-Library OperatingSystem
-Library json
-
-*** Variables ***
-${login} admin
-${passw} password
-
-*** Test Cases ***
-Get Clamp properties
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/cldsInfo
- Dictionary Should Contain Key ${resp.json()} userName
- Dictionary Should Contain Key ${resp.json()} permissionReadCl
-
-Get Clamp Info
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/cldsInfo
- Dictionary Should Contain Key ${resp.json()} userName
- Dictionary Should Contain Key ${resp.json()} cldsVersion
-
-Get model bpmn by name
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/model/bpmn/ClHolmes1
- Should Contain Match ${resp} *StartEvent_*
- Should Contain Match ${resp} *VesCollector_*
- Should Contain Match ${resp} *Holmes_*
- Should Contain Match ${resp} *Policy_*
- Should Contain Match ${resp} *EndEvent_*
-
-Get model names
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/model-names
- Should Contain Match ${resp} *ClHolmes1*
- Should Contain Match ${resp} *ClHolmes2*
- Should Contain Match ${resp} *ClTCA1*
- Should Contain Match ${resp} *ClTCA2*
- Should Not Contain Match ${resp} *ClHolmes99*
- Should Not Contain Match ${resp} *ClTCA99*
diff --git a/tests/clamp/APIs/04__Verify_API_Models.robot b/tests/clamp/APIs/04__Verify_API_Models.robot
deleted file mode 100644
index 9a29a918..00000000
--- a/tests/clamp/APIs/04__Verify_API_Models.robot
+++ /dev/null
@@ -1,67 +0,0 @@
-*** Settings ***
-Library Collections
-Library RequestsLibrary
-Library OperatingSystem
-Library json
-
-*** Variables ***
-${login} admin
-${passw} password
-
-*** Test Cases ***
-Verify HolmesModel1
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/model/ClHolmes1
- Should Contain Match ${resp} *plateHolmes1*
- Should Contain Match ${resp} *DC1*
- Should Contain Match ${resp} *DC2*
- Should Contain Match ${resp} *Policy1*
- Should Contain Match ${resp} *vnfRecipe*
- Should Contain Match ${resp} *180*
- Should Contain Match ${resp} *345*
- Should Contain Match ${resp} *Config Policy name1*
-
-Verify HolmesModel2
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/model/ClHolmes2
- Should Contain Match ${resp} *plateHolmes2*
- Should Contain Match ${resp} *DC2*
- Should Contain Match ${resp} *DC3*
- Should Contain Match ${resp} *Policy2*
- Should Contain Match ${resp} *vnfRecipe*
- Should Contain Match ${resp} *migrate*
- Should Contain Match ${resp} *360*
- Should Contain Match ${resp} *345*
- Should Contain Match ${resp} *Config Policy Name2*
-
-Verify TCAModel1
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/model/ClTCA1
- Should Contain Match ${resp} *plateTCA1*
- Should Contain Match ${resp} *enbRecipe*
- Should Contain Match ${resp} *DC1*
- Should Contain Match ${resp} *DC2*
- Should Contain Match ${resp} *Policy3*
- Should Contain Match ${resp} *345*
- Should Contain Match ${resp} *200*
- Should Contain Match ${resp} *ONSET*
-
-Verify TCAModel2
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/model/ClTCA2
- Should Contain Match ${resp} *lateTCA2*
- Should Contain Match ${resp} *enbRecipe*
- Should Contain Match ${resp} *DC1*
- Should Contain Match ${resp} *DC2*
- Should Contain Match ${resp} *DC3*
- Should Contain Match ${resp} *Policy4*
- Should Contain Match ${resp} *tcaPol*
- Should Contain Match ${resp} *345*
- Should Contain Match ${resp} *300*
- Should Contain Match ${resp} *VM*
-
-Get model names
- ${resp}= Get Request ${clamp_session} /restservices/clds/v1/clds/model-names
- Should Contain Match ${resp} *ClHolmes1*
- Should Contain Match ${resp} *ClHolmes2*
- Should Contain Match ${resp} *ClTCA1*
- Should Contain Match ${resp} *ClTCA2*
- Should Not Contain Match ${resp} *ClTCA99*
- Should Not Contain Match ${resp} *ClHolmes99*
-
diff --git a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot
new file mode 100755
index 00000000..7020042b
--- /dev/null
+++ b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot
@@ -0,0 +1,74 @@
+*** Settings ***
+Library OperatingSystem
+Library RequestsLibrary
+
+*** Variables ***
+
+
+*** Test Cases ***
+
+Heartbeat test
+ [Documentation] Check DFC heartbeat
+ Heartbeat I'm living
+
+Stop test
+ [Documentation] Check DFC stop
+ Stop Datafile Service has already been stopped!
+
+Start test
+ [Documentation] Check DFC start
+ Start Datafile Service has been started!
+
+Heartbeat test - secure
+ [Documentation] Check DFC heartbeat, secure
+ Heartbeat-secure I'm living
+
+Stop test - secure
+ [Documentation] Check DFC stop, secure
+ Stop-secure Datafile Service has already been stopped!
+
+
+Start test - secure
+ [Documentation] Check DFC start, secure
+ Start-secure Datafile Service has been started!
+
+
+#PRobably move definitions of common Keywords to a common file
+
+*** Keywords ***
+#Probably simplyfy the test cases by using variables for port numbers/urls etc
+Heartbeat
+ [Arguments] ${respbody}
+ Create Session session http://localhost:8100/heartbeat
+ ${resp}= Get Request session /
+ Should Be Equal ${resp.text} ${respbody}
+
+Heartbeat-secure
+ [Arguments] ${respbody}
+ Create Session session https://localhost:8433/heartbeat
+ ${resp}= Get Request session /
+ Should Be Equal ${resp.text} ${respbody}
+
+Stop
+ [Arguments] ${respbody}
+ Create Session session http://localhost:8100/stopDatafile
+ ${resp}= Get Request session /
+ Should Be Equal ${resp.text} ${respbody}
+
+Stop-secure
+ [Arguments] ${respbody}
+ Create Session session https://localhost:8433/stopDatafile
+ ${resp}= Get Request session /
+ Should Be Equal ${resp.text} ${respbody}
+
+Start
+ [Arguments] ${respbody}
+ Create Session session http://localhost:8100/start
+ ${resp}= Get Request session /
+ Should Be Equal ${resp.text} ${respbody}
+
+Start-secure
+ [Arguments] ${respbody}
+ Create Session session https://localhost:8433/start
+ ${resp}= Get Request session /
+ Should Be Equal ${resp.text} ${respbody}
diff --git a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot
new file mode 100755
index 00000000..c5ea9c60
--- /dev/null
+++ b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation Management Interface suite
diff --git a/tests/dcaegen2-collectors-hv-ves/testcases/__init__.robot b/tests/dcaegen2-collectors-hv-ves/testcases/__init__.robot
index 60580083..2b6a5786 100644
--- a/tests/dcaegen2-collectors-hv-ves/testcases/__init__.robot
+++ b/tests/dcaegen2-collectors-hv-ves/testcases/__init__.robot
@@ -40,7 +40,7 @@ ${HTTP_METHOD_URL} http://
${CONSUL_CONTAINER_HOST} consul
${CONSUL_CONTAINER_PORT} 8500
-${CONSUL_VES_HV_CONFIGURATION_KEY_PATH} /v1/kv/veshv-config
+${CONSUL_VES_HV_CONFIGURATION_KEY_PATH} /v1/kv/dcae-hv-ves-collector
${DCAE_APP_CONTAINER_HOST} dcae-app-simulator
${DCAE_APP_CONTAINER_PORT} 6063
diff --git a/tests/dcaegen2-collectors-hv-ves/testcases/message-routing.robot b/tests/dcaegen2-collectors-hv-ves/testcases/message-routing.robot
index 1850df61..c22c936f 100644
--- a/tests/dcaegen2-collectors-hv-ves/testcases/message-routing.robot
+++ b/tests/dcaegen2-collectors-hv-ves/testcases/message-routing.robot
@@ -37,7 +37,8 @@ Too big payload message handling
Send Messages From xNF Simulators ${XNF_SIMULATOR} ${XNF_TOO_BIG_PAYLOAD_REQUEST}
Wait until keyword succeeds 60 sec 5 sec
- ... Assert Dcae App Consumed Less Equal Than ${DCAE_APP_API_MESSAGES_COUNT_URL} ${AMOUNT_25000}
+ ... Assert Dcae App Consumed ${DCAE_APP_API_MESSAGES_COUNT_URL} ${AMOUNT_25000}
+ Assert Dcae App Consumed Proper Messages ${DCAE_APP_API_MESSAGES_VALIDATION_URL} ${DCAE_TOO_BIG_PAYLOAD_REQUEST}
Invalid wire frame message handling
@@ -85,6 +86,7 @@ ${XNF_INVALID_GPB_DATA_REQUEST} ${VES_HV_SCENARIOS}/invalid-gpb-d
${XNF_UNSUPPORTED_DOMAIN_REQUEST} ${VES_HV_SCENARIOS}/unsupported-domain/xnf-unsupported-domain-request.json
${DCAE_FIXED_PAYLOAD_REQUEST} ${VES_HV_SCENARIOS}/fixed-payload/dcae-fixed-payload-request.json
+${DCAE_TOO_BIG_PAYLOAD_REQUEST} ${VES_HV_SCENARIOS}/too-big-payload/dcae-too-big-payload-request.json
${DCAE_INVALID_WIRE_FRAME_REQUEST} ${VES_HV_SCENARIOS}/invalid-wire-frame/dcae-invalid-wire-frame-request.json
${DCAE_INVALID_GPB_DATA_REQUEST} ${VES_HV_SCENARIOS}/invalid-gpb-data/dcae-invalid-gpb-data-request.json
${DCAE_UNSUPPORTED_DOMAIN_REQUEST} ${VES_HV_SCENARIOS}/unsupported-domain/dcae-unsupported-domain-request.json
diff --git a/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios/too-big-payload/dcae-too-big-payload-request.json b/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios/too-big-payload/dcae-too-big-payload-request.json
new file mode 100644
index 00000000..1820d08f
--- /dev/null
+++ b/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios/too-big-payload/dcae-too-big-payload-request.json
@@ -0,0 +1,24 @@
+[
+ {
+ "commonEventHeader": {
+ "version": "sample-version",
+ "domain": "perf3gpp",
+ "sequence": 1,
+ "priority": 1,
+ "eventId": "sample-event-id",
+ "eventName": "sample-event-name",
+ "eventType": "sample-event-type",
+ "startEpochMicrosec": 120034455,
+ "lastEpochMicrosec": 120034455,
+ "nfNamingCode": "sample-nf-naming-code",
+ "nfcNamingCode": "sample-nfc-naming-code",
+ "reportingEntityId": "sample-reporting-entity-id",
+ "reportingEntityName": "sample-reporting-entity-name",
+ "sourceId": "sample-source-id",
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "7.2.0"
+ },
+ "messageType": "VALID",
+ "messagesAmount": 25000
+ }
+]
diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/A20181002.0000-1000-0015-1000_5G.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/A20181002.0000-1000-0015-1000_5G.xml
new file mode 100644
index 00000000..4d20d4b4
--- /dev/null
+++ b/tests/dcaegen2-pmmapper/pmmapper/assets/A20181002.0000-1000-0015-1000_5G.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?>
+<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
+ <fileHeader fileFormatVersion="32.435 V7.0" vendorName="Company NN" dnPrefix="DC=a1.companyNN.com,SubNetwork=1,IRPAgent=1">
+ <fileSender localDn="SubNetwork=CountryNN,MeContext=MEC-Gbg-1,ManagedElement=RNC-Gbg-1" elementType="RNC"/>
+ <measCollec beginTime="2000-03-01T14:00:00+02:00"/>
+ </fileHeader>
+ <measData>
+ <managedElement localDn="SubNetwork=CountryNN,MeContext=MEC-Gbg-1,ManagedElement=RNC-Gbg-1" userLabel="RNC Telecomville"/>
+ <measInfo>
+ <job jobId="1231"/>
+ <granPeriod duration="PT900S" endTime="2000-03-01T14:14:30+02:00"/>
+ <repPeriod duration="PT1800S"/>
+ <measType p="1">attTCHSeizures</measType>
+ <measType p="2">succTCHSeizures</measType>
+ <measType p="3">attImmediateAssignProcs</measType>
+ <measType p="4">succImmediateAssignProcs</measType>
+ <measValue measObjLdn="RncFunction=RF-1,UtranCell=Gbg-997">
+ <r p="1">234</r>
+ <r p="2">345</r>
+ <r p="3">567</r>
+ <r p="4">789</r>
+ </measValue>
+ <measValue measObjLdn="RncFunction=RF-1,UtranCell=Gbg-998">
+ <r p="1">890</r>
+ <r p="2">901</r>
+ <r p="3">123</r>
+ <r p="4">234</r>
+ </measValue>
+ <measValue measObjLdn="RncFunction=RF-1,UtranCell=Gbg-999">
+ <r p="1">456</r>
+ <r p="2">567</r>
+ <r p="3">678</r>
+ <r p="4">789</r>
+ <suspect>true</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="ENodeBFunction">
+ <job jobId="1232"/>
+ <granPeriod duration="PT900S" endTime="2000-03-01T14:14:30+02:00"/>
+ <repPeriod duration="PT1800S"/>
+ <measType p="1">attTCHSeizures1</measType>
+ <measType p="2">succTCHSeizures2</measType>
+ <measType p="3">attImmediateAssignProcs3</measType>
+ <measType p="4">succImmediateAssignProcs4</measType>
+ <measValue measObjLdn="ManagedElement=RNC-Gbg-1,ENodeBFunction=1">
+ <r p="1">4</r>
+ <r p="12">86,87,2,6,77,96,75,33,24</r>
+ <r p="13">40</r>
+ <r p="14">90</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo>
+ <job jobId="1233"/>
+ <granPeriod duration="PT900S" endTime="2000-03-01T14:14:30+02:00"/>
+ <repPeriod duration="PT1800S"/>
+ <measType p="1">attTCHSeizures5</measType>
+ <measType p="2">succTCHSeizures6</measType>
+ <measType p="3">attImmediateAssignProcs7</measType>
+ <measType p="4">succImmediateAssignProcs8</measType>
+ <measValue measObjLdn="RncFunction=RF-1,UtranCell=Gbg-997">
+ <r p="1">238</r>
+ <r p="2">344</r>
+ <r p="3">563</r>
+ <r p="4">787</r>
+ </measValue>
+ <measValue measObjLdn="RncFunction=RF-1,UtranCell=Gbg-998">
+ <r p="1">898</r>
+ <r p="2">905</r>
+ <r p="3">127</r>
+ <r p="4">238</r>
+ </measValue>
+ <measValue measObjLdn="RncFunction=RF-1,UtranCell=Gbg-999">
+ <r p="1">454</r>
+ <r p="2">569</r>
+ <r p="3">672</r>
+ <r p="4">785</r>
+ <suspect>true</suspect>
+ </measValue>
+ </measInfo>
+ </measData>
+ <fileFooter>
+ <measCollec endTime="2000-03-01T14:15:00+02:00"/>
+ </fileFooter>
+</measCollecFile>
diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/diff_vendor_metadata.json b/tests/dcaegen2-pmmapper/pmmapper/assets/diff_vendor_metadata.json
new file mode 100644
index 00000000..0abf8e3e
--- /dev/null
+++ b/tests/dcaegen2-pmmapper/pmmapper/assets/diff_vendor_metadata.json
@@ -0,0 +1,12 @@
+{
+ "productName": "gnb",
+ "vendorName": "Anon",
+ "lastEpochMicrosec": "1538478000000",
+ "sourceName": "oteNB5309",
+ "startEpochMicrosec": "1538478900000",
+ "timeZoneOffset": "UTC+05.00",
+ "location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
+ "compression": "gzip",
+ "fileFormatType": "org.3GPP.32.435#measCollec",
+ "fileFormatVersion": "V9"
+ } \ No newline at end of file
diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml
new file mode 100644
index 00000000..269fdf1d
--- /dev/null
+++ b/tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
+ <fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
+ fileFormatVersion="32.435 V10.0">
+ <fileSender localDn="Dublin"/>
+ <measCollec beginTime="2018-10-02T12:00:00+01:00"/>
+ </fileHeader>
+ <measData>
+ <managedElement swVersion="r0.1" localDn="Dublin"/>
+ <measInfo measInfoId="some measInfoId">
+ <job jobId="jobId"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measTypes>a b c</measTypes>
+ <measValue measObjLdn="objLdn">
+ <measResults>76 27 98</measResults>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ </measData>
+ <fileFooter>
+ <measCollec endTime="2018-10-02T12:15:00+01:00"/>
+ </fileFooter>
+</measCollecFile>
diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml
new file mode 100644
index 00000000..23e5c215
--- /dev/null
+++ b/tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
+ <fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
+ fileFormatVersion="32.435 V10.0">
+ <fileSender localDn="Dublin"/>
+ <measCollec beginTime="2018-10-02T12:00:00+01:00"/>
+ </fileHeader>
+ <measData>
+ <measInfo measInfoId="some measInfoId">
+ <job jobId="some job Id"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="some duration"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">a</measType>
+ <measType p="2">b</measType>
+ <measType p="3">c</measType>
+ <measValue measObjLdn="some measObjLdn">
+ <r p="1">86</r>
+ <r p="2">67</r>
+ <r p="3">14</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ </measData>
+ <fileFooter>
+ <measCollec endTime="2018-10-02T12:15:00+01:00"/>
+ </fileFooter>
+</measCollecFile> \ No newline at end of file
diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml
new file mode 100644
index 00000000..855b2e91
--- /dev/null
+++ b/tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
+ <fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
+ fileFormatVersion="32.435 V10.0">
+ <fileSender localDn="Dublin"/>
+ <measCollec beginTime="2018-10-02T12:00:00+01:00"/>
+ </fileHeader>
+ <fileFooter>
+ <measCollec endTime="2018-10-02T12:15:00+01:00"/>
+ </fileFooter>
+</measCollecFile>
diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json b/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json
new file mode 100644
index 00000000..da809d7b
--- /dev/null
+++ b/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json
@@ -0,0 +1,12 @@
+{
+ "productName": "gnb",
+ "vendorName": "Ericsson",
+ "lastEpochMicrosec": "1538478000000",
+ "sourceName": "oteNB5309",
+ "startEpochMicrosec": "1538478900000",
+ "timeZoneOffset": "UTC+05.00",
+ "location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
+ "compression": "gzip",
+ "fileFormatType": "org.3GPP.32.435#measCollec",
+ "fileFormatVersion": "V9"
+ } \ No newline at end of file
diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/valid_pm.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/valid_pm.xml
new file mode 100644
index 00000000..989b241f
--- /dev/null
+++ b/tests/dcaegen2-pmmapper/pmmapper/assets/valid_pm.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?>
+<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
+ <fileHeader dnPrefix="SubNetwork=NETSimW,MeContext=LTE73dg2ERBS00019" vendorName="Ericsson AB" fileFormatVersion="32.435 V10.0">
+ <fileSender localDn="Dublin"/>
+ <measCollec beginTime="2018-10-02T12:00:00Z"/>
+ </fileHeader>
+ <measData>
+ <managedElement swVersion="r0.1" localDn="Dublin"/>
+ <measInfo measInfoId="ENodeBFunction">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">pmLicConnectedUsersLevSamp</measType>
+ <measType p="2">pmPagS1Discarded</measType>
+ <measType p="3">pmRrcConnBrEnbMax</measType>
+ <measType p="4">pmLic5MHzSectorCarrierActual</measType>
+ <measType p="5">pmLic5Plus5MHzScTddActual</measType>
+ <measType p="6">pmZtemporary34</measType>
+ <measType p="7">pmLicDlCapLicense</measType>
+ <measType p="8">pmPagS1EdrxReceived</measType>
+ <measType p="9">pmZtemporary35</measType>
+ <measType p="10">pmLicConnectedUsersLevSum</measType>
+ <measType p="11">pmLicDlPrbCapLicense</measType>
+ <measType p="12">pmPagS1RecDistr</measType>
+ <measType p="13">pmRrcConnBrEnbLevSamp</measType>
+ <measType p="14">pmLicUlPrbCapLicense</measType>
+ <measType p="15">pmPagS1EdrxDiscarded</measType>
+ <measType p="16">pmRimAssocMax</measType>
+ <measType p="17">pmLicUlCapLicense</measType>
+ <measType p="18">pmLicConnectedUsersDistr</measType>
+ <measType p="19">pmMoFootprintMax</measType>
+ <measType p="20">pmLic5Plus5MHzScFddActual</measType>
+ <measType p="21">pmLicConnectedUsersTimeCong</measType>
+ <measType p="22">pmPagS1Received</measType>
+ <measType p="23">pmPagS1DiscDistr</measType>
+ <measType p="24">pmRimReportErr</measType>
+ <measType p="25">pmLicConnectedUsersMax</measType>
+ <measType p="26">pmRrcConnBrEnbLevSum</measType>
+ <measType p="27">pmLicConnectedUsersActual</measType>
+ <measType p="28">pmLicConnectedUsersLicense</measType>
+ <measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,ENodeBFunction=1">
+ <r p="1">4</r>
+ <r p="2">6</r>
+ <r p="3">68</r>
+ <r p="4">2759</r>
+ <r p="5">2738</r>
+ <r p="6">50</r>
+ <r p="7">20</r>
+ <r p="8">8</r>
+ <r p="9">45</r>
+ <r p="10">9</r>
+ <r p="11">87</r>
+ <r p="12">86,87,2,6,77,96,75,33,24</r>
+ <r p="13">40</r>
+ <r p="14">90</r>
+ <r p="15">2</r>
+ <r p="16">98</r>
+ <r p="17">75</r>
+ <r p="18">36,30,45,68,74,44,64,83,17,52,36,99,46,59,71,24,49,33,83,75,43,30,74,28</r>
+ <r p="19">83</r>
+ <r p="20">2634</r>
+ <r p="21">10</r>
+ <r p="22">69</r>
+ <r p="23">58,2,40,80,81,47,73,100,91</r>
+ <r p="24">32</r>
+ <r p="25">37</r>
+ <r p="26">16</r>
+ <r p="27">38</r>
+ <r p="28">92</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="EUtranCellRelation">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">pmHoExeSuccLteInterFRedirectCsg</measType>
+ <measType p="2">pmHoPrepSuccNonMob</measType>
+ <measType p="3">pmZtemporary73</measType>
+ <measType p="4">pmHoOscInterF</measType>
+ <measType p="5">pmLbQualifiedUe</measType>
+ <measType p="6">pmHoPrepAttLteInterFRedirectCsg</measType>
+ <measType p="7">pmZtemporary74</measType>
+ <measType p="8">pmLbTpAcceptedUe</measType>
+ <measType p="9">pmHoExeSuccLteInterF</measType>
+ <measType p="10">pmHoExeAttLteIntraFTuneOut</measType>
+ <measType p="11">pmHoPrepSuccLteIntraF</measType>
+ <measType p="12">pmLbTpEvalUe</measType>
+ <measType p="13">pmHoPrepAttLteInterFMbms</measType>
+ <measType p="14">pmHoExeAttLteSpifho</measType>
+ <measType p="15">pmCaRedirectQualifiedUe</measType>
+ <measType p="16">pmHoWrongCellReestIntraF</measType>
+ <measType p="17">pmAtoQualifiedUe</measType>
+ <measType p="18">pmHoWrongCellInterF</measType>
+ <measType p="19">pmHoExeAttLteInterFMbms</measType>
+ <measType p="20">pmHoExeAttLteIntraF</measType>
+ <measType p="21">pmZtemporary76</measType>
+ <measType p="22">pmHoExeAttNonMob</measType>
+ <measType p="23">pmHoExeSuccNonMob</measType>
+ <measType p="24">pmHoTooEarlyHoIntraF</measType>
+ <measType p="25">pmCaRedirectMeasRepUe</measType>
+ <measType p="26">pmHoPrepSuccLteInterFUl</measType>
+ <measType p="27">pmHoExeSuccLteInterFLb</measType>
+ <measType p="28">pmHoExeSuccLteIntraF</measType>
+ <measType p="29">pmHoExeSuccLteInterFMbms</measType>
+ <measType p="30">pmHoWrongCellReestInterF</measType>
+ <measType p="31">pmHoPrepSuccLteInterFRedirectCsg</measType>
+ <measType p="32">pmHoExeAttLteInterFRedirectCsg</measType>
+ <measType p="33">pmSpifhoReportedUe</measType>
+ <measType p="34">pmZtemporary75</measType>
+ <measType p="35">pmZtemporary79</measType>
+ <measType p="36">pmHoPrepAttLteSpifho</measType>
+ <measType p="37">pmAtoMeasRepUe</measType>
+ <measType p="38">pmHoTooEarlyHoInterF</measType>
+ <measType p="39">pmZtemporary78</measType>
+ <measType p="40">pmHoPrepAttLteInterFUl</measType>
+ <measType p="41">pmHoExeOutAttLteInterFQci1</measType>
+ <measType p="42">pmHoExeAttLteInterF</measType>
+ <measType p="43">pmZtemporary36</measType>
+ <measType p="44">pmZtemporary77</measType>
+ <measType p="45">pmHoPrepAttLteInterF</measType>
+ <measType p="46">pmHoPrepSuccLteInterFCaRedirect</measType>
+ <measType p="47">pmHoPrepSuccLteInterFLb</measType>
+ <measType p="48">pmZtemporary72</measType>
+ <measType p="49">pmHoExeSuccLteIntraFTuneOut</measType>
+ <measType p="50">pmHoExecSuccLteInterFCaRedirect</measType>
+ <measType p="51">pmHoExecAttLteInterFCaRedirect</measType>
+ <measType p="52">pmHoPrepAttLteInterFLb</measType>
+ <measType p="53">pmHoOscIntraF</measType>
+ <measType p="54">pmHoPrepAttLteIntraF</measType>
+ <measType p="55">pmHoPrepSuccLteInterF</measType>
+ <measType p="56">pmHoTooLateHoInterF</measType>
+ <measType p="57">pmHoPrepAttLteInterFCaRedirect</measType>
+ <measType p="58">pmHoExeAttLteInterFLb</measType>
+ <measType p="59">pmHoTooLateHoIntraF</measType>
+ <measType p="60">pmHoPrepSuccLteInterFMbms</measType>
+ <measType p="61">pmHoPrepAttNonMob</measType>
+ <measType p="62">pmLbTpUlAcceptedUe</measType>
+ <measType p="63">pmHoExeSuccLteSpifho</measType>
+ <measType p="64">pmHoExeOutSuccLteInterFQci1</measType>
+ <measType p="65">pmLbMeasRepUe</measType>
+ <measType p="66">pmHoPrepSuccLteSpifho</measType>
+ <measType p="67">pmHoWrongCellIntraF</measType>
+<measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,ENodeBFunction=1,EUtranCellFDD=LTE73dg2ERBS00019-1,EUtranFreqRelation=1,EUtranCellRelation=3">
+ <r p="1">2</r>
+ <r p="2">5</r>
+ <r p="3">91</r>
+ <r p="4">4</r>
+ <r p="5">37</r>
+ <r p="6">57</r>
+ <r p="7">23</r>
+ <r p="8">57</r>
+ <r p="9">94</r>
+ <r p="10">1</r>
+ <r p="11">88</r>
+ <r p="12">88</r>
+ <r p="13">92</r>
+ <r p="14">54</r>
+ <r p="15">43</r>
+ <r p="16">15</r>
+ <r p="17">97</r>
+ <r p="18">58</r>
+ <r p="19">40</r>
+ <r p="20">57</r>
+ <r p="21">24</r>
+ <r p="22">94</r>
+ <r p="23">92</r>
+ <r p="24">40</r>
+ <r p="25">2</r>
+ <r p="26">52</r>
+ <r p="27">17</r>
+ <r p="28">70</r>
+ <r p="29">40</r>
+ <r p="30">24</r>
+ <r p="31">64</r>
+ <r p="32">49</r>
+ <r p="33">11</r>
+ <r p="34">52</r>
+ <r p="35">74</r>
+ <r p="36">73</r>
+ <r p="37">45</r>
+ <r p="38">26</r>
+ <r p="39">74</r>
+ <r p="40">16</r>
+ <r p="41">80</r>
+ <r p="42">41</r>
+ <r p="43">99</r>
+ <r p="44">36</r>
+ <r p="45">73</r>
+ <r p="46">86</r>
+ <r p="47">92</r>
+ <r p="48">49</r>
+ <r p="49">22</r>
+ <r p="50">36</r>
+ <r p="51">43</r>
+ <r p="52">98</r>
+ <r p="53">74</r>
+ <r p="54">23</r>
+ <r p="55">76</r>
+ <r p="56">78</r>
+ <r p="57">22</r>
+ <r p="58">57</r>
+ <r p="59">37</r>
+ <r p="60">78</r>
+ <r p="61">56</r>
+ <r p="62">21</r>
+ <r p="63">44</r>
+ <r p="64">70</r>
+ <r p="65">6</r>
+ <r p="66">29</r>
+ <r p="67">75</r>
+ <suspect>false</suspect>
+ </measValue>
+<measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,ENodeBFunction=1,EUtranCellFDD=LTE73dg2ERBS00019-1,EUtranFreqRelation=1,EUtranCellRelation=4">
+ <r p="1">22</r>
+ <r p="2">59</r>
+ <r p="3">10</r>
+ <r p="4">79</r>
+ <r p="5">17</r>
+ <r p="6">20</r>
+ <r p="7">47</r>
+ <r p="8">92</r>
+ <r p="9">41</r>
+ <r p="10">11</r>
+ <r p="11">6</r>
+ <r p="12">9</r>
+ <r p="13">54</r>
+ <r p="14">37</r>
+ <r p="15">8</r>
+ <r p="16">66</r>
+ <r p="17">96</r>
+ <r p="18">65</r>
+ <r p="19">66</r>
+ <r p="20">91</r>
+ <r p="21">44</r>
+ <r p="22">73</r>
+ <r p="23">86</r>
+ <r p="24">7</r>
+ <r p="25">33</r>
+ <r p="26">54</r>
+ <r p="27">97</r>
+ <r p="28">54</r>
+ <r p="29">39</r>
+ <r p="30">3</r>
+ <r p="31">28</r>
+ <r p="32">20</r>
+ <r p="33">65</r>
+ <r p="34">85</r>
+ <r p="35">59</r>
+ <r p="36">53</r>
+ <r p="37">41</r>
+ <r p="38">9</r>
+ <r p="39">60</r>
+ <r p="40">65</r>
+ <r p="41">55</r>
+ <r p="42">12</r>
+ <r p="43">83</r>
+ <r p="44">44</r>
+ <r p="45">96</r>
+ <r p="46">30</r>
+ <r p="47">16</r>
+ <r p="48">64</r>
+ <r p="49">58</r>
+ <r p="50">53</r>
+ <r p="51">80</r>
+ <r p="52">58</r>
+ <r p="53">66</r>
+ <r p="54">13</r>
+ <r p="55">51</r>
+ <r p="56">44</r>
+ <r p="57">93</r>
+ <r p="58">82</r>
+ <r p="59">38</r>
+ <r p="60">38</r>
+ <r p="61">17</r>
+ <r p="62">26</r>
+ <r p="63">64</r>
+ <r p="64">49</r>
+ <r p="65">63</r>
+ <r p="66">43</r>
+ <r p="67">46</r>
+ <suspect>false</suspect>
+ </measValue>
+<measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,ENodeBFunction=1,EUtranCellFDD=LTE73dg2ERBS00019-1,EUtranFreqRelation=1,EUtranCellRelation=5">
+ <r p="1">78</r>
+ <r p="2">37</r>
+ <r p="3">1</r>
+ <r p="4">11</r>
+ <r p="5">85</r>
+ <r p="6">26</r>
+ <r p="7">13</r>
+ <r p="8">1</r>
+ <r p="9">75</r>
+ <r p="10">3</r>
+ <r p="11">92</r>
+ <r p="12">4</r>
+ <r p="13">33</r>
+ <r p="14">93</r>
+ <r p="15">41</r>
+ <r p="16">70</r>
+ <r p="17">14</r>
+ <r p="18">52</r>
+ <r p="19">81</r>
+ <r p="20">82</r>
+ <r p="21">72</r>
+ <r p="22">38</r>
+ <r p="23">26</r>
+ <r p="24">52</r>
+ <r p="25">65</r>
+ <r p="26">93</r>
+ <r p="27">59</r>
+ <r p="28">59</r>
+ <r p="29">70</r>
+ <r p="30">3</r>
+ <r p="31">22</r>
+ <r p="32">40</r>
+ <r p="33">94</r>
+ <r p="34">19</r>
+ <r p="35">92</r>
+ <r p="36">11</r>
+ <r p="37">73</r>
+ <r p="38">51</r>
+ <r p="39">6</r>
+ <r p="40">71</r>
+ <r p="41">43</r>
+ <r p="42">64</r>
+ <r p="43">49</r>
+ <r p="44">88</r>
+ <r p="45">74</r>
+ <r p="46">15</r>
+ <r p="47">67</r>
+ <r p="48">42</r>
+ <r p="49">94</r>
+ <r p="50">16</r>
+ <r p="51">10</r>
+ <r p="52">38</r>
+ <r p="53">18</r>
+ <r p="54">7</r>
+ <r p="55">20</r>
+ <r p="56">99</r>
+ <r p="57">51</r>
+ <r p="58">87</r>
+ <r p="59">69</r>
+ <r p="60">74</r>
+ <r p="61">34</r>
+ <r p="62">74</r>
+ <r p="63">8</r>
+ <r p="64">15</r>
+ <r p="65">66</r>
+ <r p="66">84</r>
+ <r p="67">71</r>
+ <suspect>false</suspect>
+ </measValue>
+<measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,ENodeBFunction=1,EUtranCellFDD=LTE73dg2ERBS00019-1,EUtranFreqRelation=1,EUtranCellRelation=6">
+ <r p="1">70</r>
+ <r p="2">3</r>
+ <r p="3">65</r>
+ <r p="4">56</r>
+ <r p="5">36</r>
+ <r p="6">62</r>
+ <r p="7">97</r>
+ <r p="8">82</r>
+ <r p="9">18</r>
+ <r p="10">82</r>
+ <r p="11">41</r>
+ <r p="12">80</r>
+ <r p="13">31</r>
+ <r p="14">84</r>
+ <r p="15">44</r>
+ <r p="16">34</r>
+ <r p="17">78</r>
+ <r p="18">35</r>
+ <r p="19">3</r>
+ <r p="20">76</r>
+ <r p="21">41</r>
+ <r p="22">64</r>
+ <r p="23">51</r>
+ <r p="24">30</r>
+ <r p="25">49</r>
+ <r p="26">56</r>
+ <r p="27">72</r>
+ <r p="28">25</r>
+ <r p="29">43</r>
+ <r p="30">51</r>
+ <r p="31">84</r>
+ <r p="32">99</r>
+ <r p="33">71</r>
+ <r p="34">74</r>
+ <r p="35">28</r>
+ <r p="36">44</r>
+ <r p="37">28</r>
+ <r p="38">47</r>
+ <r p="39">43</r>
+ <r p="40">78</r>
+ <r p="41">56</r>
+ <r p="42">7</r>
+ <r p="43">66</r>
+ <r p="44">65</r>
+ <r p="45">29</r>
+ <r p="46">19</r>
+ <r p="47">47</r>
+ <r p="48">48</r>
+ <r p="49">21</r>
+ <r p="50">25</r>
+ <r p="51">32</r>
+ <r p="52">58</r>
+ <r p="53">64</r>
+ <r p="54">88</r>
+ <r p="55">23</r>
+ <r p="56">22</r>
+ <r p="57">98</r>
+ <r p="58">37</r>
+ <r p="59">80</r>
+ <r p="60">52</r>
+ <r p="61">30</r>
+ <r p="62">27</r>
+ <r p="63">26</r>
+ <r p="64">65</r>
+ <r p="65">71</r>
+ <r p="66">91</r>
+ <r p="67">64</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="EUtranFreqRelation">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">pmCaRedirectMeasuredUe</measType>
+ <measType p="2">pmMbmsInterestIndicationNonServ</measType>
+ <measType p="3">pmMbmsInterestIndication</measType>
+ <measType p="4">pmLbMeasuredUe</measType>
+ <measType p="5">pmMbmsInterestIndicationPCell</measType>
+ <measType p="6">pmMbmsInterestIndicationSCell</measType>
+ <measType p="7">pmSpifhoMeasuredUe</measType>
+ <measType p="8">pmAtoMeasuredUe</measType>
+<measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,ENodeBFunction=1,EUtranCellFDD=LTE73dg2ERBS00019-1,EUtranFreqRelation=1">
+ <r p="1">14</r>
+ <r p="2">25</r>
+ <r p="3">60</r>
+ <r p="4">63</r>
+ <r p="5">10</r>
+ <r p="6">71</r>
+ <r p="7">16</r>
+ <r p="8">43</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="EnergyMeter">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">pmPowerConsumption</measType>
+ <measType p="2">pmVoltage</measType>
+ <measType p="3">pmConsumedEnergy</measType>
+ <measType p="4">pmConsumedEnergyAccumulated</measType>
+ <measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,Equipment=1,FieldReplaceableUnit=1,EFuse=1,EnergyMeter=1">
+ <r p="1">44,88,3,61,33,74,92,10,14,83,96,34,13,7,6,92,77,1,69,5,85,19,11,11,12,56,93,94,0,48,96,50,83,20,66,31,90,9,97,11,30,40,89,20,64,84,7,24,76,61,5,39,55,39,31,70,96,58,38,38,39,48,20,55,9,71,49,56,39,59,91,45,2,81,5,31,35,34,8,91,20,65,8,57,89,45,5,83,12,55,84,3,20,54,73,96,45,35,99,52,42,17,92,47,86,87,29,93,34,59,66,50,46,40,84,76,72,90,75,28,98,87,36,44,24,0,57,35,77,34,29,69,90,86,47,61,76,39,22,59,15,4,80,7,99,83,54,25,25,53</r>
+ <r p="2">19,69,83,75,92,1,65,86,80,24,2,89,61,38,47,76,4,80,19,57,76,28,74,20,19,49,10,99,50,98,7,57,2,1,28,97,92,56,39,48,33,72,58,86,77,91,15,14,78,50,10,78,67,5,76,98,50,4,80,38,13,16,63,27,68,72,95,33,98,60,50,26,91,52,61,57,89,23,81,10,54,85,30,25,69,54,86,28,33,67,1,92,61,38,78,24,78,49,65,15,39,71,49,70,2,20,33,39,9,23,94,25,95,40,66,13,59,91,27,27,16,63,81,84,68,84,87,21,86,70,69,55,97,66,35,49,7,70,37,69,51,42,13,5,84,1,63,47,77,71</r>
+ <r p="3">39</r>
+ <r p="4">2460</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="EthernetPort">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">ifHCOutBroadcastPkts</measType>
+ <measType p="2">ifHCOutUcastPkts</measType>
+ <measType p="3">ifOutErrors</measType>
+ <measType p="4">ifHCInUcastPkts</measType>
+ <measType p="5">ifInErrors</measType>
+ <measType p="6">ifHCInBroadcastPkts</measType>
+ <measType p="7">ifOutDiscards</measType>
+ <measType p="8">ifInUnknownTags</measType>
+ <measType p="9">ifInOctetRatePercentiles</measType>
+ <measType p="10">ifHCInMulticastPkts</measType>
+ <measType p="11">ifHCOutOctets</measType>
+ <measType p="12">ifHCInOctets</measType>
+ <measType p="13">ifInUnknownProtos</measType>
+ <measType p="14">ifTotalLossOfSignalDuration</measType>
+ <measType p="15">ifInDiscards</measType>
+ <measType p="16">ifHCOutMulticastPkts</measType>
+ <measType p="17">ifMaxLossOfSignalDuration</measType>
+ <measType p="18">ifHCLossOfSignal</measType>
+ <measType p="19">ifOutOctetRatePercentiles</measType>
+ <measType p="20">ifMinLossOfSignalDuration</measType>
+ <measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,Transport=1,EthernetPort=1">
+ <r p="1">86</r>
+ <r p="2">67</r>
+ <r p="3">14</r>
+ <r p="4">17</r>
+ <r p="5">5</r>
+ <r p="6">6</r>
+ <r p="7">82</r>
+ <r p="8">51</r>
+ <r p="9">72,28,74,73,54,70,74</r>
+ <r p="10">98</r>
+ <r p="11">35</r>
+ <r p="12">96</r>
+ <r p="13">90</r>
+ <r p="14">43</r>
+ <r p="15">24</r>
+ <r p="16">36</r>
+ <r p="17">93</r>
+ <r p="18">21</r>
+ <r p="19">67,33,63,55,85,18,76</r>
+ <r p="20">63</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="ExternalENodeBFunction">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">pmZtemporary222</measType>
+ <measType p="2">pmEranCaPartnerBlock</measType>
+ <measType p="3">pmEenbPktLateDlCa</measType>
+ <measType p="4">pmCaCrntiUnavail</measType>
+ <measType p="5">pmEenbPktLostDlCa</measType>
+ <measType p="6">pmEenbPktDiscDlCa</measType>
+ <measType p="7">pmZtemporary223</measType>
+ <measType p="8">pmEenbPktTransDlCa</measType>
+ <measType p="9">pmEenbPktRecDlCa</measType>
+ <measType p="10">pmZtemporary206</measType>
+ <measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,ENodeBFunction=1,EUtraNetwork=1,ExternalENodeBFunction=1">
+ <r p="1">30</r>
+ <r p="2">66</r>
+ <r p="3">51</r>
+ <r p="4">20</r>
+ <r p="5">95</r>
+ <r p="6">69</r>
+ <r p="7">83</r>
+ <r p="8">0</r>
+ <r p="9">100</r>
+ <r p="10">44</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="ExternalGeranCell">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">pmRimAssocAtt</measType>
+ <measType p="2">pmRimAssocAttRetry</measType>
+ <measType p="3">pmRimUpdateReceived</measType>
+ <measType p="4">pmRimAssocRemoved</measType>
+ <measType p="5">pmZtemporary99</measType>
+ <measType p="6">pmZtemporary98</measType>
+ <measType p="7">pmRimAssocTO</measType>
+ <measType p="8">pmRimAssocSucc</measType>
+ <measType p="9">pmRimUpdateAckSent</measType>
+ <measType p="10">pmRimReportErr</measType>
+ <measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,ENodeBFunction=1,GeraNetwork=1,ExternalGeranCell=1">
+ <r p="1">89</r>
+ <r p="2">4</r>
+ <r p="3">70</r>
+ <r p="4">48</r>
+ <r p="5">89</r>
+ <r p="6">72</r>
+ <r p="7">38</r>
+ <r p="8">1</r>
+ <r p="9">2</r>
+ <r p="10">10</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="ExternalUtranCellFDD">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">pmRimAssocSucc</measType>
+ <measType p="2">pmRimAssocRemoved</measType>
+ <measType p="3">pmZtemporary100</measType>
+ <measType p="4">pmRimUpdateReceived</measType>
+ <measType p="5">pmRimAssocTO</measType>
+ <measType p="6">pmRimUpdateAckSent</measType>
+ <measType p="7">pmZtemporary101</measType>
+ <measType p="8">pmRimAssocAttRetry</measType>
+ <measType p="9">pmRimReportErr</measType>
+ <measType p="10">pmRimAssocAtt</measType>
+ <measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,ENodeBFunction=1,UtraNetwork=1,UtranFrequency=1,ExternalUtranCellFDD=1">
+ <r p="1">62</r>
+ <r p="2">46</r>
+ <r p="3">45</r>
+ <r p="4">68</r>
+ <r p="5">39</r>
+ <r p="6">37</r>
+ <r p="7">81</r>
+ <r p="8">19</r>
+ <r p="9">73</r>
+ <r p="10">49</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="NodeBFunction">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">pmCapacityOfNodeBUlCeExt</measType>
+ <measType p="2">pmCapacityOfNodeBDlCe</measType>
+ <measType p="3">pmCapacityNodeBLimitUlCe</measType>
+ <measType p="4">pmCapacityNodeBLimitDlCe</measType>
+ <measType p="5">pmCapacityOfNodeBUlCe</measType>
+ <measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,NodeBFunction=1">
+ <r p="1">51,27,56,76,61,76,24,1,24,52,61,6,85,94,53,97,14,80,60,79,58,88,69,81,98,94,78,70,26,10,61,9,94,46,33,55,51,3,31,67,11,39,33,22,3,9,94</r>
+ <r p="2">14,46,49,30,86,1,55,50,52,41</r>
+ <r p="3">2620</r>
+ <r p="4">2849</r>
+ <r p="5">87,4,90,14,22,9,36,94,60,72</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ <measInfo measInfoId="NodeBLocalCellGroup">
+ <job jobId="1_USERDEF.ALL_COUNTERS.Profile_1.Continuous_Y.MEASJOB"/>
+ <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
+ <repPeriod duration="PT900S"/>
+ <measType p="1">pmSumCapacityUlCe</measType>
+ <measType p="2">pmSetupRejSwLoad</measType>
+ <measType p="3">pmCapacityOfDlCe</measType>
+ <measType p="4">pmCapacityOfUlCeExt</measType>
+ <measType p="5">pmCapacityAllocAttDlCe</measType>
+ <measType p="6">pmNoUlHwLimitEul</measType>
+ <measType p="7">pmCapacityLimitDlCe</measType>
+ <measType p="8">pmCapacityAllocRejDlCe</measType>
+ <measType p="9">pmSetupAttempts</measType>
+ <measType p="10">pmCpcUlActivityFactor</measType>
+ <measType p="11">pmSumCapacityUlCeEulFach</measType>
+ <measType p="12">pmCapacityOfUlCe</measType>
+ <measType p="13">pmCapacityAllocAttUlCe</measType>
+ <measType p="14">pmSamplesCapacityUlCe</measType>
+ <measType p="15">pmCapacityAllocRejUlCe</measType>
+ <measType p="16">pmIsUsersRatio</measType>
+ <measType p="17">pmSamplesCapacityDlCe</measType>
+ <measType p="18">pmSumCapacityUlCeStatic</measType>
+ <measType p="19">pmCapacityUlCeEulFach</measType>
+ <measType p="20">pmHwCePoolEul</measType>
+ <measType p="21">pmSetupFailures</measType>
+ <measType p="22">pmCapacityLimitUlCe</measType>
+ <measType p="23">pmStaticHwCePoolEul</measType>
+ <measType p="24">pmSumCapacityDlCe</measType>
+ <measType p="25">pmSamplesCapacityUlCeStatic</measType>
+ <measValue measObjLdn="ManagedElement=LTE73dg2ERBS00019,NodeBFunction=1,NodeBLocalCellGroup=1">
+ <r p="1">91</r>
+ <r p="2">5</r>
+ <r p="3">61,11,27,47,65,88,67,59,78,51</r>
+ <r p="4">97,81,23,87,89,44,11,68,77,0,72,5,45,11,11,56,11,1,87,86,83,5,36,37,82,25,99,77,5,72,90,23,74,99,53,72,48,13,52,24,90,74,2,15,63,96,27</r>
+ <r p="5">2</r>
+ <r p="6">72</r>
+ <r p="7">2503</r>
+ <r p="8">70</r>
+ <r p="9">24</r>
+ <r p="10">33,38,12,21,91,0,52,84,99,32,40,8,15,39,92,27,41,43,63,41</r>
+ <r p="11">93</r>
+ <r p="12">10,100,48,71,68,59,69,36,64,66</r>
+ <r p="13">14</r>
+ <r p="14">88</r>
+ <r p="15">75</r>
+ <r p="16">18</r>
+ <r p="17">84</r>
+ <r p="18">17</r>
+ <r p="19">90,24,50,62,83,25,7,36,85,70,63</r>
+ <r p="20">6,63,96,1,94,85,82,17,30,46,39,59,11,14,7,60,61,36,1,39,20,82,77,95,50,26,43,81,2,95,84,32,1,70,31,48,11,24,2,43,74,94,46,99,63,47,68,28,62,22,54,91,84,81,46,50,45,32,25,100,14,67,86,62,85,22,80,18,19,21,45,59,41,81,70,65,43,28,93,91,36,20,17,56,9,78,31,98,44,97,45,2,72,85,61,65,21,23,95,36,90,10,19,60,41,96,84,25,96,91,33,73,48,46,92,82,8,80,8,88,21,95,61,86,58,89,48,86,63</r>
+ <r p="21">83</r>
+ <r p="22">2824</r>
+ <r p="23">7,66,20,8,41,18,98,71,57,28,13,53,53,77,70,31,99,62,50,19,63,3,75,43,17,91,30,34,21,62,77,67,90,11,66,11,77,51,27,55,95,66,98,45,67,60,76,42,55,94,17,87,61,8,52,24,71,7,36,5,73,63,59</r>
+ <r p="24">38</r>
+ <r p="25">65</r>
+ <suspect>false</suspect>
+ </measValue>
+ </measInfo>
+ </measData>
+ <fileFooter>
+ <measCollec endTime="2018-10-02T12:15:00Z"/>
+ </fileFooter>
+</measCollecFile> \ No newline at end of file
diff --git a/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot b/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot
index a05defb5..a9474672 100644
--- a/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot
+++ b/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot
@@ -14,42 +14,119 @@ ${CLI_EXEC_CLI_CONFIG} { head -n 5 | tail -1;} < /tmp/pmmapper
${CLI_EXEC_CLI_SUBS} curl -k https://${DR_PROV_IP}:8443/internal/prov
${PMMAPPER_BASE_URL} http://${PMMAPPER_IP}:8081
${DELIVERY_ENDPOINT} /delivery
+${HEALTHCHECK_ENDPOINT} /healthcheck
+${NO_MANAGED_ELEMENT_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml
+${NO_MEASDATA_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml
+${MEASD_RESULT_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml
+${VALID_METADATA_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json
+${DIFF_VENDOR_METADATA} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/diff_vendor_metadata.json
+${CLI_EXEC_CLI_PM_LOG} docker exec pmmapper /bin/sh -c "tail -5 /var/log/ONAP/dcaegen2/services/pm-mapper/pm-mapper_output.log"
+${PUBLISH_NODE_URL} https://${DR_NODE_IP}:8443/publish/1/pm.xml
+${PM_DATA_FILE_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/A20181002.0000-1000-0015-1000_5G.xml
+${PUBLISH_CONTENT_TYPE} application/octet-stream
+
*** Test Cases ***
Verify PM Mapper Receive Configuraton From Config Binding Service
[Tags] PM_MAPPER_01
[Documentation] Verify 3gpp pm mapper successfully receive config data from CBS
- ${cli_cmd_output}= Run Process ${CLI_EXEC_CLI_CONFIG} shell=yes
- Log ${cli_cmd_output.stdout}
- Should Be Equal As Strings ${cli_cmd_output.rc} 0
- Should Contain ${cli_cmd_output.stdout} Received pm-mapper configuration
+ CheckLog ${CLI_EXEC_CLI_CONFIG} Received pm-mapper configuration
Verify 3GPP PM Mapper Subscribes to Data Router
[Tags] PM_MAPPER_02
[Documentation] Verify 3gpp pm mapper subscribes to data router
- ${cli_cmd_output}= Run Process ${CLI_EXEC_CLI_SUBS} shell=yes
- Log ${cli_cmd_output.stdout}
- Should Be Equal As Strings ${cli_cmd_output.rc} 0
- Should Contain ${cli_cmd_output.stdout} 3gpppmmapper
+ CheckLog ${CLI_EXEC_CLI_SUBS} 3gpppmmapper
+ CheckLog ${CLI_EXEC_CLI_SUBS} "privilegedSubscriber":true
+
+
+Verify Health Check returns 200 when a REST GET request to healthcheck url
+ [Tags] PM_MAPPER_03
+ [Documentation] Verify Health Check returns 200 when a REST GET request to healthcheck url
+ [Timeout] 1 minute
+ ${resp}= Get Request mapper_session ${HEALTHCHECK_ENDPOINT}
+ VerifyResponse ${resp.status_code} 200
Verify 3GPP PM Mapper responds appropriately when no metadata is provided
- [Tags] PM_MAPPER_10
+ [Tags] PM_MAPPER_04
[Documentation] Verify 3GPP PM Mapper responds 400 with the message "Missing Metadata." when no metadata is provided
[Timeout] 1 minute
${headers}= Create Dictionary X-ONAP-RequestID=1 Content-Type=application/xml
- ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT} data='${EMPTY}' headers=${headers}
- Should Be Equal As Strings ${resp.status_code} 400
- Should Be Equal As Strings ${resp.content} Missing Metadata.
+ ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/filename data='${EMPTY}' headers=${headers}
+ VerifyResponse ${resp.status_code} 400
+ VerifyResponse ${resp.content} Missing Metadata.
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=1
Verify 3GPP PM Mapper responds appropriately when invalid metadata is provided
- [Tags] PM_MAPPER_11
+ [Tags] PM_MAPPER_05
[Documentation] Verify 3GPP PM Mapper responds 400 with the message "Malformed Metadata." when invalid metadata is provided
[Timeout] 1 minute
- ${headers}= Create Dictionary X-ONAP-RequestID=1 X-ATT-DR-META='not metadata' Content-Type=application/xml
- ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT} data='${EMPTY}' headers=${headers}
- Should Be Equal As Strings ${resp.status_code} 400
- Should Be Equal As Strings ${resp.content} Malformed Metadata.
+ ${headers}= Create Dictionary X-ONAP-RequestID=2 X-DMAAP-DR-META='not metadata' Content-Type=application/xml
+ ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/filename data='${EMPTY}' headers=${headers}
+ VerifyResponse ${resp.status_code} 400
+ VerifyResponse ${resp.content} Malformed Metadata.
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=2
+
+Verify 3GPP PM Mapper received pushed PM data from Data Router
+ [Tags] PM_MAPPER_06
+ [Documentation] Verify 3GPP PM Mapper received pushed PM data from Data Router
+ [Timeout] 1 minute
+ ${PM_DATA}= Get File ${PM_DATA_FILE_PATH}
+ ${valid_metatdata} Get File ${VALID_METADATA_PATH}
+ ${resp}= PutCall ${PUBLISH_NODE_URL} 3 ${PM_DATA} ${PUBLISH_CONTENT_TYPE} ${valid_metatdata.replace("\n","")} pmmapper
+ VerifyResponse ${resp.status_code} 204
+ Sleep 10s
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} XML validation successful
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=3
+
+Verify that PM Mapper logs successful when a file that contains measdata is provided
+ [Tags] PM_MAPPER_07
+ [Documentation] Verify that PM Mapper logs successful when a file that contains measdata is provided
+ [Timeout] 1 minute
+ ${valid_meas_result_content}= Get File ${MEASD_RESULT_PATH}
+ ${valid_metatdata} Get File ${VALID_METADATA_PATH}
+ ${headers}= Create Dictionary X-ONAP-RequestID=4 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=4 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")}
+ ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/filename data=${valid_meas_result_content} headers=${headers}
+ VerifyResponse ${resp.status_code} 200
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} XML validation successful
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=4
+
+Verify that PM Mapper logs successful when a file that contains no measdata is provided
+ [Tags] PM_MAPPER_08
+ [Documentation] Verify that PM Mapper logs successful when a file that contains no measdata is provided
+ [Timeout] 1 minute
+ ${valid_no_measdata_content}= Get File ${NO_MEASDATA_PATH}
+ ${valid_metatdata} Get File ${VALID_METADATA_PATH}
+ ${headers}= Create Dictionary X-ONAP-RequestID=5 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=3 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")}
+ ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/filename data=${valid_no_measdata_content} headers=${headers}
+ VerifyResponse ${resp.status_code} 200
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} XML validation successful
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=5
+
+Verify that PM Mapper throws Event failed validation against schema error when no managed element content is provided
+ [Tags] PM_MAPPER_09
+ [Documentation] Verify 3gpp pm mapper responds with an error when no managed element content is provided
+ [Timeout] 1 minute
+ ${no_managed_element_content}= Get File ${NO_MANAGED_ELEMENT_PATH}
+ ${valid_metatdata} Get File ${VALID_METADATA_PATH}
+ ${headers}= Create Dictionary X-ONAP-RequestID=6 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=2 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")}
+ ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/filename data=${no_managed_element_content} headers=${headers}
+ VerifyResponse ${resp.status_code} 200
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} XML validation failed
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=6
+
+Verify that PM Mapper correctly identifies a file that should not be mapped based on metadata filtering.
+ [Tags] PM_MAPPER_10
+ [Documentation] Verify that PM Mapper correctly identifies a file that should not be mapped based on metadata filtering.
+ [Timeout] 1 minute
+ ${valid_meas_result_content}= Get File ${MEASD_RESULT_PATH}
+ ${diff_vendor_metadata}= Get File ${DIFF_VENDOR_METADATA}
+ ${headers}= Create Dictionary X-ONAP-RequestID=7 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=2 X-DMAAP-DR-META=${diff_vendor_metadata.replace("\n","")}
+ ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/filename data=${valid_meas_result_content} headers=${headers}
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} Metadata does not match any filters,
+ CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=7
+
+
*** Keywords ***
@@ -57,4 +134,22 @@ PostCall
[Arguments] ${url} ${data}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
${resp}= Evaluate requests.post('${url}',data='${data}', headers=${headers},verify=False) requests
- [Return] ${resp} \ No newline at end of file
+ [Return] ${resp}
+
+PutCall
+ [Arguments] ${url} ${request_id} ${data} ${content_type} ${meta} ${user}
+ ${headers}= Create Dictionary X-ONAP-RequestID=${request_id} X-DMAAP-DR-META=${meta} Content-Type=${content_type} X-DMAAP-DR-ON-BEHALF-OF=${user} Authorization=Basic cG1tYXBwZXI6cG1tYXBwZXI=
+ ${resp}= Evaluate requests.put('${url}', data="""${data}""", headers=${headers}, verify=False, allow_redirects=False) requests
+ [Return] ${resp}
+
+
+CheckLog
+ [Arguments] ${cli_exec_log_Path} ${string_to_check_in_log}
+ ${cli_cmd_output}= Run Process ${cli_exec_log_Path} shell=yes
+ Log ${cli_cmd_output.stdout}
+ Should Be Equal As Strings ${cli_cmd_output.rc} 0
+ Should Contain ${cli_cmd_output.stdout} ${string_to_check_in_log}
+
+VerifyResponse
+ [Arguments] ${actual_response_value} ${expected_response_value}
+ Should Be Equal As Strings ${actual_response_value} ${expected_response_value} \ No newline at end of file
diff --git a/tests/dcaegen2/prh-testcases/resources/.env b/tests/dcaegen2/prh-testcases/resources/.env
index 889f7d41..a558a2e8 100644
--- a/tests/dcaegen2/prh-testcases/resources/.env
+++ b/tests/dcaegen2/prh-testcases/resources/.env
@@ -1,2 +1,5 @@
LOG_LEVEL=INFO
PRH_LOG_LEVEL=TRACE
+HOSTNAME=dcae-prh
+CONSUL_HOST=consul
+CONFIG_BINDING_SERVICE=cbs
diff --git a/tests/dcaegen2/prh-testcases/resources/consul.d/cbs.json b/tests/dcaegen2/prh-testcases/resources/consul.d/cbs.json
new file mode 100644
index 00000000..9d1b34f9
--- /dev/null
+++ b/tests/dcaegen2/prh-testcases/resources/consul.d/cbs.json
@@ -0,0 +1,10 @@
+{
+ "service": {
+ "name": "cbs",
+ "tags": [
+ "cbs"
+ ],
+ "port": 10000,
+ "address": "cbs"
+ }
+}
diff --git a/tests/dcaegen2/prh-testcases/resources/docker-compose.yml b/tests/dcaegen2/prh-testcases/resources/docker-compose.yml
index 92d62526..8b6ea128 100644
--- a/tests/dcaegen2/prh-testcases/resources/docker-compose.yml
+++ b/tests/dcaegen2/prh-testcases/resources/docker-compose.yml
@@ -1,4 +1,4 @@
-version: '3'
+version: "3"
services:
prh:
image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server:latest
@@ -13,8 +13,12 @@ services:
ports:
- "8100:8100"
- "8433:8433"
+ environment:
+ - LOG_LEVEL
+ - PRH_LOG_LEVEL
container_name: prh
depends_on:
+ - cbs
- dmaap-bc
- aai
@@ -41,8 +45,15 @@ services:
- "8533:8433"
volumes:
- ./simulator/certs:/tmp/certs
+ environment:
+ - LOG_LEVEL
+ - PRH_LOG_LEVEL
+ - HOSTNAME
+ - CONSUL_HOST
+ - CONFIG_BINDING_SERVICE
container_name: ssl_prh
depends_on:
+ - cbs
- dmaap-bc
- aai
@@ -65,3 +76,44 @@ services:
- "3334:3334"
- "3335:3335"
container_name: aai_simulator
+
+ consul:
+ image: docker.io/consul:1.0.6
+ ports:
+ - "8500:8500"
+ command: ["agent", "-bootstrap", "-client=0.0.0.0", "-server", "-config-dir=/consul/consul.d"]
+ volumes:
+ - ./consul.d/:/consul/consul.d
+
+ consul-cfg:
+ image: docker.io/consul:1.0.6
+ restart: on-failure
+ command: ["kv", "put", "-http-addr=http://consul-server:8500", "dcae-prh", '{
+ "dmaap.dmaapConsumerConfiguration.dmaapHostName":"dmaap-bc",
+ "dmaap.dmaapConsumerConfiguration.dmaapPortNumber":2223,
+ "dmaap.dmaapConsumerConfiguration.dmaapProtocol":"https",
+ "dmaap.dmaapProducerConfiguration.dmaapHostName":"dmaap-bc",
+ "dmaap.dmaapProducerConfiguration.dmaapPortNumber":2223,
+ "dmaap.dmaapProducerConfiguration.dmaapProtocol":"https",
+ "aai.aaiClientConfiguration.aaiHostPortNumber":3334,
+ "aai.aaiClientConfiguration.aaiHost":"aai",
+ "aai.aaiClientConfiguration.aaiProtocol":"https",
+ "security.enableAaiCertAuth":"true",
+ "security.enableDmaapCertAuth":"true",
+ "security.keyStorePath":"/tmp/certs/org.onap.dcae.jks",
+ "security.keyStorePasswordPath":"/tmp/certs/keystore.password",
+ "security.trustStorePath":"/tmp/certs/org.onap.dcae.trust.jks",
+ "security.trustStorePasswordPath":"/tmp/certs/truststore.password"
+ }'
+ ]
+ depends_on:
+ - consul
+
+ cbs:
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:2.2.4
+ ports:
+ - "10000:10000"
+ environment:
+ - CONSUL_HOST
+ depends_on:
+ - consul-cfg
diff --git a/tests/multicloud-fcaps/provision/sanity_test_multicloud.robot b/tests/multicloud-fcaps/provision/sanity_test_multicloud.robot
new file mode 100644
index 00000000..d4013dee
--- /dev/null
+++ b/tests/multicloud-fcaps/provision/sanity_test_multicloud.robot
@@ -0,0 +1,20 @@
+*** settings ***
+Library Collections
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+
+*** Variables ***
+@{return_ok_list}= 200 201 202
+${querysample_fcaps_url} /samples
+
+*** Test Cases ***
+FcapsSampleTest
+ [Documentation] query sample info rest test
+ ${headers} Create Dictionary Content-Type=application/json Accept=application/json
+ Create Session web_session http://${SERVICE_IP}:${SERVICE_PORT} headers=${headers}
+ ${resp}= Get Request web_session ${querysample_fcaps_url}
+ ${responese_code}= Convert To String ${resp.status_code}
+ List Should Contain Value ${return_ok_list} ${responese_code}
+ ${response_json} json.loads ${resp.content}
+ Should Be Equal ${response_json['status']} active
diff --git a/tests/multicloud-k8s/data/create_rbdefinition.json b/tests/multicloud-k8s/data/create_rbdefinition.json
new file mode 100644
index 00000000..370c3c79
--- /dev/null
+++ b/tests/multicloud-k8s/data/create_rbdefinition.json
@@ -0,0 +1,7 @@
+{
+ "uuid": "7eb09e38-4363-9942-1234-3beb2e95fd85",
+ "name": "test-rbdef",
+ "chart-name": "testchart",
+ "description": "testing resource bundle definition api",
+ "service-type": "firewall"
+} \ No newline at end of file
diff --git a/tests/multicloud-k8s/multicloud-k8s-test.robot b/tests/multicloud-k8s/multicloud-k8s-test.robot
new file mode 100644
index 00000000..36d4e668
--- /dev/null
+++ b/tests/multicloud-k8s/multicloud-k8s-test.robot
@@ -0,0 +1,66 @@
+*** Settings ***
+Suite Setup Run keywords Check k8splugin API Docker Container Created header Created session
+Library OperatingSystem
+Library RequestsLibrary
+
+*** Variables ***
+
+*** Test Cases ***
+Create Definition
+ [Template] Post template
+ /v1/rb/definition create_rbdefinition.json
+
+Get Definition
+ [Template] Get template
+ /v1/rb/definition
+ /v1/rb/definition/7eb09e38-4363-9942-1234-3beb2e95fd85
+
+Delete Definition
+ [Template] Delete template
+ /v1/rb/definition/7eb09e38-4363-9942-1234-3beb2e95fd85
+
+*** Keywords ***
+Created session
+ Create Session multicloud_k8s_session http://${SERVICE_IP}:${SERVICE_PORT}
+ Set Suite Variable ${suite_multicloud_k8s_session} multicloud_k8s_session
+
+Created header
+ ${headers}= Create Dictionary Content-Type=application/json Accept=application/json
+ Set Suite Variable ${suite_headers} ${headers}
+
+Delete template
+ [Documentation] Deletes from Definition
+ [Arguments] ${topic}
+ ${resp}= Delete Request ${suite_multicloud_k8s_session} ${topic} headers=${suite_headers}
+ Log To Console *********************
+ Log To Console response = ${resp}
+ Log To Console body = ${resp.text}
+ Should Be Equal As Integers ${resp.status_code} 204
+
+Post template
+ [Documentation] Create A Definition
+ [Arguments] ${topic} ${file}
+ ${data} Get Binary File ${CURDIR}${/}data${/}${file}
+ ${resp}= Post Request ${suite_multicloud_k8s_session} ${topic} data=${data} headers=${suite_headers}
+ Log To Console *********************
+ Log To Console response = ${resp}
+ Log To Console body = ${resp.text}
+ Should Be Equal As Integers ${resp.status_code} 201
+
+Get template
+ [Documentation] Gets from Definition
+ [Arguments] ${topic}
+ ${resp}= Get Request ${suite_multicloud_k8s_session} ${topic} headers=${suite_headers}
+ Log To Console *********************
+ Log To Console response = ${resp}
+ Log To Console body = ${resp.text}
+ Should Be Equal As Integers ${resp.status_code} 200
+
+Check k8splugin API Docker Container
+ [Documentation] Checks if k8splugin docker container is running
+ ${rc} ${output}= Run and Return RC and Output docker ps
+ Log To Console *********************
+ Log To Console retrurn_code = ${rc}
+ Log To Console output = ${output}
+ Should Be Equal As Integers ${rc} 0
+ Should Contain ${output} nexus3.onap.org:10001/onap/multicloud/k8s
diff --git a/tests/multicloud-lenovo/provision/sanity_test_multicloud.robot b/tests/multicloud-lenovo/provision/sanity_test_multicloud.robot
new file mode 100644
index 00000000..ed799edf
--- /dev/null
+++ b/tests/multicloud-lenovo/provision/sanity_test_multicloud.robot
@@ -0,0 +1,22 @@
+*** settings ***
+Library Collections
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+
+*** Variables ***
+@{return_ok_list}= 200 201 202
+${queryswagger_lenovo_url} /api/multicloud-thinkcloud/v0/swagger.json
+
+
+*** Test Cases ***
+ThinkCloudSwaggerTest
+ [Documentation] query swagger info rest test
+ ${headers} Create Dictionary Content-Type=application/json Accept=application/json
+ Create Session web_session http://${SERVICE_IP}:${SERVICE_PORT} headers=${headers}
+ ${resp}= Get Request web_session ${queryswagger_lenovo_url}
+ ${responese_code}= Convert To String ${resp.status_code}
+ List Should Contain Value ${return_ok_list} ${responese_code}
+ ${response_json} json.loads ${resp.content}
+ ${swagger_version}= Convert To String ${response_json['swagger']}
+ Should Be Equal ${swagger_version} 2.0
diff --git a/tests/policy/api/api-test.robot b/tests/policy/api/api-test.robot
index 7ea24738..bf2c12b7 100644
--- a/tests/policy/api/api-test.robot
+++ b/tests/policy/api/api-test.robot
@@ -11,7 +11,7 @@ Healthcheck
Log Creating session https://${POLICY_API_IP}:6969
${session}= Create Session policy https://${POLICY_API_IP}:6969 auth=${auth}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= Get Request policy /healthcheck headers=${headers}
+ ${resp}= Get Request policy /policy/api/v1/healthcheck headers=${headers}
Log Received response from policy ${resp.text}
Should Be Equal As Strings ${resp.status_code} 200
Should Be Equal As Strings ${resp.json()['code']} 200
@@ -22,7 +22,7 @@ Statistics
Log Creating session https://${POLICY_API_IP}:6969
${session}= Create Session policy https://${POLICY_API_IP}:6969 auth=${auth}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= Get Request policy /statistics headers=${headers}
+ ${resp}= Get Request policy /policy/api/v1/statistics headers=${headers}
Log Received response from policy ${resp.text}
Should Be Equal As Strings ${resp.status_code} 200
Should Be Equal As Strings ${resp.json()['code']} 200
diff --git a/tests/policy/distribution/distribution-test.robot b/tests/policy/distribution/distribution-test.robot
index 2ee11806..34dd169c 100644
--- a/tests/policy/distribution/distribution-test.robot
+++ b/tests/policy/distribution/distribution-test.robot
@@ -15,3 +15,13 @@ Healthcheck
Log Received response from policy ${resp.text}
Should Be Equal As Strings ${resp.status_code} 200
Should Be Equal As Strings ${resp.json()['code']} 200
+Statistics
+ [Documentation] Runs Policy Distribution Statistics
+ ${auth}= Create List healthcheck zb!XztG34
+ Log Creating session https://${POLICY_DISTRIBUTION_IP}:6969
+ ${session}= Create Session policy https://${POLICY_DISTRIBUTION_IP}:6969 auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= Get Request policy /statistics headers=${headers}
+ Log Received response from policy ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Be Equal As Strings ${resp.json()['code']} 200
diff --git a/tests/policy/xacml-pdp/xacml-pdp-test.robot b/tests/policy/xacml-pdp/xacml-pdp-test.robot
new file mode 100644
index 00000000..1a626c03
--- /dev/null
+++ b/tests/policy/xacml-pdp/xacml-pdp-test.robot
@@ -0,0 +1,28 @@
+*** Settings ***
+Library Collections
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+
+*** Test Cases ***
+Healthcheck
+ [Documentation] Runs Policy Xacml PDP Health check
+ ${auth}= Create List healthcheck zb!XztG34
+ Log Creating session https://${POLICY_PDPX_IP}:6969
+ ${session}= Create Session policy https://${POLICY_PDPX_IP}:6969 auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= Get Request policy /policy/pdpx/v1/healthcheck headers=${headers}
+ Log Received response from policy ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Be Equal As Strings ${resp.json()['code']} 200
+
+Statistics
+ [Documentation] Runs Policy Xacml PDP Statistics
+ ${auth}= Create List healthcheck zb!XztG34
+ Log Creating session https://${POLICY_PDPX_IP}:6969
+ ${session}= Create Session policy https://${POLICY_PDPX_IP}:6969 auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= Get Request policy /policy/pdpx/v1/statistics headers=${headers}
+ Log Received response from policy ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Be Equal As Strings ${resp.json()['code']} 200
diff --git a/tests/usecases/5G-bulkpm/BulkpmE2E.robot b/tests/usecases/5G-bulkpm/BulkpmE2E.robot
index ad1ac310..2541501f 100644
--- a/tests/usecases/5G-bulkpm/BulkpmE2E.robot
+++ b/tests/usecases/5G-bulkpm/BulkpmE2E.robot
@@ -18,7 +18,7 @@ ${TARGETURL_TOPICS} http://${DMAAP_MR_IP}:3904/topics
${TARGETURL_SUBSCR} http://${DMAAP_MR_IP}:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12?timeout=1000
${CLI_EXEC_CLI} curl -k https://${DR_PROV_IP}:8443/internal/prov
${CLI_EXEC_CLI_FILECONSUMER} docker exec fileconsumer-node /bin/sh -c "ls /opt/app/subscriber/delivery | grep .gz"
-${CLI_EXEC_CLI_DFC_LOG} docker exec dfc /bin/sh -c "cat /opt/log/application.log" > /tmp/dfc_docker.log.robot
+${CLI_EXEC_CLI_DFC_LOG} docker exec dfc /bin/sh -c "cat /var/log/ONAP/application.log" > /tmp/dfc_docker.log.robot
${CLI_EXEC_CLI_DFC_LOG_GREP} grep "Publish to DR successful!" /tmp/dfc_docker.log.robot
${CLI_EXEC_CLI_FILECONSUMER_CP} docker cp fileconsumer-node:/opt/app/subscriber/delivery/xNF.pm.xml.gz.M %{WORKSPACE}