summaryrefslogtreecommitdiff
path: root/templates/ci/openbookctl
blob: dda8ee4bd7a5246d6b51c136277f70a3b0e49262 (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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/bin/bash

echo 'mysql root password: {{ openbook_database_password }}'
echo 'wsrep_node_address: {{ ansible_default_ipv4.address }}'
echo 'wsrep_cluster_address: gcomm://{{ openbook_gcomm_addresses }}'

{% if "True" == openbook_install_database|string() %}
wait_for_database() {
    echo "Waiting for database to start..."
    started=1
    for i in {120..0}; do
        if echo 'SELECT 1' | mysql -h 127.0.0.1 -u root --password='{{ openbook_database_password }}' &>/dev/null; then
            started=0
            break
        fi
        sleep 1
    done
    if [ $started -eq 1 ]; then
        echo "Error: database did not start."
        exit 1
    fi
}

ensure_openbook_databases_created() {
    if ! echo "SHOW DATABASES;" | mysql -h 127.0.0.1 -u root --password='{{ openbook_database_password }}' 2>/dev/null | fgrep 'openbook'; then
        echo "Creating Openbook schema..."
        mysql -h 127.0.0.1 -u root --password='{{ openbook_database_password }}' &>/dev/null < /etc/openbook/database/create_openbook_schemas.sql
    fi
}
{% endif %}

do_start() {
{% if "True" == openbook_install_database|string() %}
    chmod 777 /var/lib/mysql
    chmod 777 /var/log/mysql
    /opt/openbook/database/run.sh
    wait_for_database
    ensure_openbook_databases_created
{% endif %}
{% if "True" == openbook_install_job_scheduler_server|string() %}
    /opt/openbook/job_scheduler_server/run.sh
{% endif %}
{% if "True" == openbook_install_workflow_server|string() %}
    /opt/openbook/workflow_server/run.sh
{% endif %}
{% if "True" == openbook_install_admin_api_server|string() %}
    /opt/openbook/admin_api_server/run.sh
{% endif %}
{% if "True" == openbook_install_customer_api_server|string() %}
    /opt/openbook/customer_api_server/run.sh
{% endif %}
{% if "True" == openbook_install_admin_web_ui|string() %}
    /opt/openbook/admin_web_ui/run.sh
{% endif %}
{% if "True" == openbook_install_customer_web_ui|string() %}
    /opt/openbook/customer_web_ui/run.sh
{% endif %}
    echo
    echo "Openbook started. All components may not be fully initialized and available."
}

do_stop() {
{% if "True" == openbook_install_customer_web_ui|string() %}
    docker stop customer_web_ui_develop
{% endif %}
{% if "True" == openbook_install_admin_web_ui|string() %}
    docker stop admin_web_ui_develop
{% endif %}
{% if "True" == openbook_install_customer_api_server|string() %}
    docker stop customer_api_server_develop
{% endif %}
{% if "True" == openbook_install_admin_api_server|string() %}
    docker stop admin_api_server_develop
{% endif %}
{% if "True" == openbook_install_workflow_server|string() %}
    docker stop workflow_server_develop
{% endif %}
{% if "True" == openbook_install_job_scheduler_server|string() %}
    docker stop job_scheduler_server_develop
{% endif %}
{% if "True" == openbook_install_database|string() %}
    docker stop database
{% endif %}
    docker container prune -f
}

do_help() {
    echo "Usage:"
    echo "    $0 start"
    echo "    $0 stop"
{% if "True" == openbook_install_database|string() %}
    echo "    $0 test_database"
{% endif %}
}

case $1 in
    start*)
        do_start
        ;;
    stop*)
        do_stop
        ;;
{% if "True" == openbook_install_database|string() %}
    test_database*)
        wait_for_database
        echo "Database is up."
        ;;
{% endif %}
    *)
        do_help
        ;;
esac

exit 0