d7b988e4b1ddb5817d5406eea555682c96b9e555
[integration/csit.git] / plans / dcaegen2-services-pmsh / testsuite / setup.sh
1 #!/bin/bash
2 # Place the scripts in run order:
3
4 source ${WORKSPACE}/scripts/dmaap-message-router/dmaap-mr-launch.sh
5 dmaap_mr_launch
6 DMAAP_MR_IP=${IP}
7
8 export DB_USER=pmsh
9 export DB_PASSWORD=pmsh
10
11 TEST_PLANS_DIR=$WORKSPACE/plans/dcaegen2-services-pmsh/testsuite
12
13 docker-compose -f ${TEST_PLANS_DIR}/docker-compose.yml up -d db aai cbs-sim
14
15 # Slow machine running CSITs can affect db coming up in time for PMSH
16 echo "Waiting for postgres db to come up..."
17 for i in {1..30}; do
18     docker exec -i db bash -c "PGPASSWORD=$DB_PASSWORD;psql -U $DB_USER  -c '\q'"
19     db_response=$?
20     if [[ "$db_response" == "0" ]]
21     then
22       break
23     else
24       sleep 2
25     fi
26 done
27 [[ "$db_response" != "0" ]] && echo "Error: postgres db not accessible" && exit 1
28
29 docker-compose -f ${TEST_PLANS_DIR}/docker-compose.yml up -d pmsh
30
31 PMSH_IP=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" pmsh)
32
33 # Slow machine running CSITs can affect PMSH coming up before CSITs are run
34 echo "Waiting for PMSH to come up..."
35 for i in {1..30}; do
36     pmsh_response=$(curl -k -s -o /dev/null -w "%{http_code}" https://${PMSH_IP}:8443/healthcheck)
37     if [[ "$pmsh_response" == "200" ]]
38     then
39       break
40     else
41       sleep 2
42     fi
43 done
44 [[ "$pmsh_response" != "200" ]] && echo "Error: PMSH container state not healthy" && exit 1
45
46 # Set log level to DEBUG
47 docker exec pmsh /bin/sh -c "cat > log_config.yaml <<EOF
48 version: 1
49
50 disable_existing_loggers: true
51
52 loggers:
53   onap_logger:
54     level: DEBUG
55     handlers: [onap_log_handler, stdout_handler]
56     propagate: false
57 handlers:
58   onap_log_handler:
59     class: logging.handlers.RotatingFileHandler
60     filename: /var/log/ONAP/dcaegen2/services/pmsh/application.log
61     mode: a
62     maxBytes: 10000000
63     backupCount: 10
64     formatter: mdcFormatter
65   stdout_handler:
66     class: logging.StreamHandler
67     formatter: mdcFormatter
68 formatters:
69   mdcFormatter:
70     format: '%(asctime)s | %(threadName)s | %(thread)d | %(levelname)s | %(module)s
71       | %(funcName)s | %(mdc)s | %(message)s'
72     mdcfmt: '{ServiceName} | {RequestID} | {InvocationID}'
73     datefmt: '%Y-%m-%dT%H:%M:%S%z'
74     (): onaplogging.mdcformatter.MDCFormatter
75 EOF"
76
77 # Wait for initialization of Docker containers
78 containers_ok="false"
79 for i in {0..5}; do
80     if [[ "$containers_ok" == "true" ]]
81     then
82         echo "All required docker containers are up."
83         break
84     else
85         sleep ${i}
86     fi
87     if [[ $(docker inspect --format '{{ .State.Running }}' cbs-sim) ]] && \
88        [[ $(docker inspect --format '{{ .State.Running }}' aai-sim) ]] && \
89        [[ $(docker inspect --format '{{ .State.Running }}' db) ]] && \
90        [[ $(docker inspect --format '{{ .State.Running }}' pmsh) ]]
91     then
92         containers_ok="true"
93     fi
94 done
95 [[ "$containers_ok" == "false" ]] && echo "Error: required container not running." && exit 1
96
97 # Create topics on MR
98 curl -X POST http://${DMAAP_MR_IP}:3904/events/AAI_EVENT --header 'Content-Type: application/json' --data-raw '{"message": "dummy message"}'
99 sleep 2
100 curl -X POST http://${DMAAP_MR_IP}:3904/events/unauthenticated.PMSH_CL_INPUT --header 'Content-Type: application/json' --data-raw '{"message": "dummy message"}'
101
102
103 DB_IP_ADDRESS=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" db)
104 CBS_SIM_IP_ADDRESS=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" cbs-sim)
105
106 #Pass any variables required by Robot test suites in ROBOT_VARIABLES
107 ROBOT_VARIABLES="-v PMSH_IP:${PMSH_IP} -v MR_IP_ADDRESS:${DMAAP_MR_IP} -v DB_IP_ADDRESS:${DB_IP_ADDRESS} -v CBS_SIM_IP_ADDRESS:${CBS_SIM_IP_ADDRESS}"