aboutsummaryrefslogtreecommitdiff
path: root/tests/test-proxysql.sh
blob: 122048f9dab3d0dd8abdc82490c38842b6c2514f (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
#!/bin/bash
set -o xtrace
set -o pipefail


function test_proxysql_connection_logged {
    mariadb -h $VIP -P$DATABASE_PORT -u$DATABASE_USER -p$DATABASE_PASSWORD -e 'SHOW TABLES'
}

function test_proxysql {
    test_proxysql_connection_logged > /tmp/logs/ansible/test-proxysql 2>&1
    result=$?
    echo $result
    if [[ $result != 0 ]]; then
        echo "Testing ProxySQL failed. See ansible/test-proxysql for details"
    else
        echo "Successfully tested ProxySQL. See ansible/test-proxysql for details"
    fi
    return $result
}
function test_proxysql_ssl_connection {
    query="SELECT SUBSTRING_INDEX(variable_value, ',', -1) AS '' FROM information_schema.session_status WHERE variable_name = 'Ssl_cipher' LIMIT 1;"
    result=$(mariadb -h $VIP -P$DATABASE_PORT -u$DATABASE_USER -p$DATABASE_PASSWORD -e "$query" --silent)
    echo $result
    if [[ "$result" =~ ^[[:space:]]*$ || -z "${result}" ]]; then
        echo "ERROR: SSL is not utilized in ProxySQL"
        return 1
    else
        echo "SSL connection is working properly in proxysql"
        return 0
    fi

}

DATABASE_PORT="${DATABASE_PORT:-3306}"
DATABASE_USER="${DATABASE_USER:-root_shard_0}"
TLS_ENABLED="${TLS_ENABLED:-false}"
if [[ -z "${VIP}"  ]]; then
    echo "VIP  not set"
    exit 1
fi

if [[ -z "${DATABASE_PASSWORD}"  ]]; then
    DATABASE_PASSWORD=$(grep ^database_password /etc/kolla/passwords.yml | cut -d" " -f2)
fi

test_proxysql
if [ "$TLS_ENABLED" = true ]; then
    test_proxysql_ssl_connection
fi