aboutsummaryrefslogtreecommitdiffstats
path: root/plans/dcaegen2-services-pmsh/testsuite/setup.sh
blob: a970c361fe27b9a9b1dba73d7ac2a1fb01bed73c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash

export DB_USER=pmsh
export DB_PASSWORD=pmsh

TEST_PLANS_DIR=$WORKSPACE/plans/dcaegen2-services-pmsh/testsuite

docker-compose -f ${TEST_PLANS_DIR}/docker-compose.yml up -d db aai cbs-sim mr-sim

# Slow machine running CSITs can affect db coming up in time for PMSH
echo "Waiting for postgres db to come up..."
for i in {1..30}; do
    docker exec -i db bash -c "PGPASSWORD=$DB_PASSWORD;psql -U $DB_USER  -c '\q'"
    db_response=$?
    if [[ "$db_response" == "0" ]]
    then
      break
    else
      sleep 2
    fi
done
[[ "$db_response" != "0" ]] && echo "Error: postgres db not accessible" && exit 1

docker-compose -f ${TEST_PLANS_DIR}/docker-compose.yml up -d pmsh

PMSH_IP=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" pmsh)

# Slow machine running CSITs can affect PMSH coming up before CSITs are run
echo "Waiting for PMSH to come up..."
for i in {1..30}; do
    pmsh_response=$(curl -k -s -o /dev/null -w "%{http_code}" https://${PMSH_IP}:8443/healthcheck)
    if [[ "$pmsh_response" == "200" ]]
    then
      break
    else
      sleep 2
    fi
done
[[ "$pmsh_response" != "200" ]] && echo "Error: PMSH container state not healthy" && exit 1

# Set log level to DEBUG
docker exec pmsh /bin/sh -c "cat > log_config.yaml <<EOF
version: 1

disable_existing_loggers: true

loggers:
  onap_logger:
    level: DEBUG
    handlers: [onap_log_handler, stdout_handler]
    propagate: false
handlers:
  onap_log_handler:
    class: logging.handlers.RotatingFileHandler
    filename: /var/log/ONAP/dcaegen2/services/pmsh/application.log
    mode: a
    maxBytes: 10000000
    backupCount: 10
    formatter: mdcFormatter
  stdout_handler:
    class: logging.StreamHandler
    formatter: mdcFormatter
formatters:
  mdcFormatter:
    format: '%(asctime)s | %(threadName)s | %(thread)d | %(levelname)s | %(module)s
      | %(funcName)s | %(mdc)s | %(message)s'
    mdcfmt: '{ServiceName} | {RequestID} | {InvocationID}'
    datefmt: '%Y-%m-%dT%H:%M:%S%z'
    (): onaplogging.mdcformatter.MDCFormatter
EOF"

# Wait for initialization of Docker containers
containers_ok="false"
for i in {0..5}; do
    if [[ "$containers_ok" == "true" ]]
    then
        echo "All required docker containers are up."
        break
    else
        sleep ${i}
    fi
    if [[ $(docker inspect --format '{{ .State.Running }}' cbs-sim) ]] && \
       [[ $(docker inspect --format '{{ .State.Running }}' aai-sim) ]] && \
       [[ $(docker inspect --format '{{ .State.Running }}' mr-sim) ]] && \
       [[ $(docker inspect --format '{{ .State.Running }}' db) ]] && \
       [[ $(docker inspect --format '{{ .State.Running }}' pmsh) ]]
    then
        containers_ok="true"
    fi
done
[[ "$containers_ok" == "false" ]] && echo "Error: required container not running." && exit 1

DB_IP_ADDRESS=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" db)
CBS_SIM_IP_ADDRESS=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" cbs-sim)
MR_SIM_IP_ADDRESS=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mr-sim)

#Pass any variables required by Robot test suites in ROBOT_VARIABLES
ROBOT_VARIABLES="-v PMSH_IP:${PMSH_IP} -v MR_SIM_IP_ADDRESS:${MR_SIM_IP_ADDRESS} -v DB_IP_ADDRESS:${DB_IP_ADDRESS} -v CBS_SIM_IP_ADDRESS:${CBS_SIM_IP_ADDRESS}"