Add CSITs for Pm-mapper files processing performance
[integration/csit.git] / plans / dcaegen2-pmmapper / files-processing-config-pmmapper / setup.sh
1 #!/bin/bash
2 # Place the scripts in run order:
3 source ${SCRIPTS}/common_functions.sh
4
5 docker login -u docker -p docker nexus3.onap.org:10001
6
7 TEST_PLANS_DIR=$WORKSPACE/plans/dcaegen2-pmmapper/files-processing-config-pmmapper
8
9 export GATEWAY_IP=172.18.0.1
10 export DR_NODE_IP=172.18.0.2
11 export DR_PROV_IP=172.18.0.3
12 export CONSUL_IP=172.18.0.4
13 export CBS_IP=172.18.0.5
14 export MARIADB_IP=172.18.0.6
15 export NODE_IP=172.18.0.7
16 export PMMAPPER_IP=172.18.0.8
17
18 for asset in provserver.properties node.properties cbs.json mrserver.js cert.jks jks.pass trust.jks trust.pass; do
19   cp $TEST_PLANS_DIR/assets/${asset} /var/tmp/
20 done
21
22 sed -i 's/datarouter-mariadb/'$MARIADB_IP'/g' /var/tmp/provserver.properties
23 sed -i 's/ipaddress//g' /var/tmp/cbs.json
24
25 # ------------------------------------
26 #Prepare enviroment for client
27 #install docker sdk
28 echo "Uninstall docker-py and reinstall docker."
29 pip uninstall -y docker-py
30 pip uninstall -y docker
31 pip install -U docker==2.7.0
32
33 docker-compose -f $TEST_PLANS_DIR/docker-compose.yml up -d mariadb consul cbs node
34
35 echo "Waiting for MariaDB to come up healthy..."
36 for i in {1..30}; do
37     mariadb_state=$(docker inspect --format='{{json .State.Health.Status}}' mariadb)
38     if [ $mariadb_state = '"healthy"' ]
39     then
40       break
41     else
42       sleep 2
43     fi
44 done
45 [ "$mariadb_state" != '"healthy"' ] && echo "Error: MariaDB container state not healthy" && exit 1
46
47 docker-compose -f $TEST_PLANS_DIR/docker-compose.yml up -d datarouter-node datarouter-prov
48
49 unset http_proxy
50 unset https_proxy
51 curl --request PUT --data @/var/tmp/cbs.json http://$CONSUL_IP:8500/v1/agent/service/register
52 curl 'http://'$CONSUL_IP':8500/v1/kv/pmmapper?dc=dc1' -X PUT \
53       -H 'Accept: application/json' \
54       -H 'Content-Type: application/json' \
55       -H 'X-Requested-With: XMLHttpRequest' \
56       --data @$TEST_PLANS_DIR/assets/config.json
57
58 docker-compose -f $TEST_PLANS_DIR/docker-compose.yml up -d pmmapper
59 sleep 2
60
61 # Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb, Consul, CBS
62 containers_ok=false
63 for i in {1..5}; do
64     if [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \
65         [ $(docker inspect --format '{{ .State.Running }}' datarouter-prov) ] && \
66         [ $(docker inspect --format '{{ .State.Running }}' mariadb) ] && \
67         [ $(docker inspect --format '{{ .State.Running }}' mr-simulator) ] && \
68         [ $(docker inspect --format '{{ .State.Running }}' consul) ] && \
69         [ $(docker inspect --format '{{ .State.Running }}' cbs) ] && \
70         [ $(docker inspect --format '{{ .State.Running }}' pmmapper) ]
71     then
72         echo "All required docker containers are up."
73         containers_ok=true
74         break
75     else
76         sleep $i
77     fi
78 done
79 [ "$containers_ok" = "false" ] && echo "Error: required container not running." && exit 1
80
81 # Data Router Configuration.
82 docker exec -i datarouter-prov sh -c \
83     "curl -k  -X PUT https://$DR_PROV_IP:8443/internal/api/NODES?val=dmaap-dr-node\|$GATEWAY_IP"
84 docker exec -i datarouter-prov sh -c \
85     "curl -k  -X PUT https://$DR_PROV_IP:8443/internal/api/PROV_AUTH_ADDRESSES?val=dmaap-dr-prov\|$GATEWAY_IP"
86
87 # Create PM Mapper feed and create PM Mapper subscriber on data router
88 curl -v -X POST -H "Content-Type:application/vnd.dmaap-dr.feed" -H "X-DMAAP-DR-ON-BEHALF-OF:pmmapper" \
89       --data-ascii @$TEST_PLANS_DIR/assets/createFeed.json \
90       --post301 --location-trusted -k https://${DR_PROV_IP}:8443
91 curl -v -X POST -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:pmmapper" \
92       --data-ascii @$TEST_PLANS_DIR/assets/addSubscriber.json \
93       --post301 --location-trusted -k https://${DR_PROV_IP}:8443/subscribe/1
94
95 docker cp pmmapper:/var/log/ONAP/dcaegen2/services/pm-mapper/pm-mapper_output.log /tmp/pmmapper.log
96 sleep 10
97 docker exec -it datarouter-prov sh -c "curl http://dmaap-dr-node:8080/internal/fetchProv"
98 curl -k https://$DR_PROV_IP:8443/internal/prov
99
100 #Pass any variables required by Robot test suites in ROBOT_VARIABLES
101 ROBOT_VARIABLES="-v CONSUL_IP:${CONSUL_IP} -v DR_PROV_IP:${DR_PROV_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} -v NODE_IP:${NODE_IP}"