blob: a316bb5b1bd031e69ff7f76eec7f08ba1247b79d (
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
115
116
117
118
119
120
|
#!/bin/bash
echo 'mysql root password: {% raw %}{{ openbook_database_password }}{% endraw %}'
echo 'wsrep_node_address: {% raw %}{{ openbook_wsrep_node_address }}{% endraw %}'
echo 'wsrep_cluster_address: gcomm://{% raw %}{{ openbook_gcomm_addresses }}{% endraw %}'
{% raw %}{% if "True" == openbook_install_database|string() %}{% endraw %}
wait_for_database() {
started=1
echo "Waiting up to 600 seconds for database to start..."
for i in {600..0}; do
if echo 'SELECT 1' | mysql -h {% raw %}{{ ansible_default_ipv4.address }}{% endraw %} -u root --password='{% raw %}{{ openbook_database_password }}{% endraw %}' &>/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 {% raw %}{{ ansible_default_ipv4.address }}{% endraw %} -u root --password='{% raw %}{{ openbook_database_password }}{% endraw %}' 2>/dev/null | fgrep 'openbook'; then
echo "Creating Openbook schema..."
mysql -h {% raw %}{{ ansible_default_ipv4.address }}{% endraw %} -u root --password='{% raw %}{{ openbook_database_password }}{% endraw %}' &>/dev/null < {{ pillar["database"]["files"]["create_openbook_schemas"]["path"] }}/{{ pillar["database"]["files"]["create_openbook_schemas"]["name"] }}
fi
}
{% raw %}{% endif %}{% endraw %}
do_start() {
{% raw %}{% if "True" == openbook_install_database|string() %}{% endraw %}
chmod 777 {{ pillar["database"]["dirs"]["var_lib_mysql"]["name"] }}
chmod 777 {{ pillar["database"]["dirs"]["var_log_mysql"]["name"] }}
{{ pillar["ansible"]["dirs"]["output"]["name"] }}/database/run.sh
wait_for_database
ensure_openbook_databases_created
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_job_scheduler_server|string() %}{% endraw %}
{{ pillar["ansible"]["dirs"]["output"]["name"] }}/job_scheduler_server/run.sh ${@}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_workflow_server|string() %}{% endraw %}
{{ pillar["ansible"]["dirs"]["output"]["name"] }}/workflow_server/run.sh ${@}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_admin_api_server|string() %}{% endraw %}
{{ pillar["ansible"]["dirs"]["output"]["name"] }}/admin_api_server/run.sh ${@}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_customer_api_server|string() %}{% endraw %}
{{ pillar["ansible"]["dirs"]["output"]["name"] }}/customer_api_server/run.sh ${@}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_admin_web_ui|string() %}{% endraw %}
{{ pillar["ansible"]["dirs"]["output"]["name"] }}/admin_web_ui/run.sh ${@}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_customer_web_ui|string() %}{% endraw %}
{{ pillar["ansible"]["dirs"]["output"]["name"] }}/customer_web_ui/run.sh ${@}
{% raw %}{% endif %}{% endraw %}
echo
echo "Openbook started."
}
do_stop() {
{% raw %}{% if "True" == openbook_install_customer_web_ui|string() %}{% endraw %}
docker stop {{ pillar["customer_web_ui"]["container_name"] }}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_admin_web_ui|string() %}{% endraw %}
docker stop {{ pillar["admin_web_ui"]["container_name"] }}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_customer_api_server|string() %}{% endraw %}
docker stop {{ pillar["customer_api_server"]["container_name"] }}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_admin_api_server|string() %}{% endraw %}
docker stop {{ pillar["admin_api_server"]["container_name"] }}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_workflow_server|string() %}{% endraw %}
docker stop {{ pillar["workflow_server"]["container_name"] }}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_job_scheduler_server|string() %}{% endraw %}
docker stop {{ pillar["job_scheduler_server"]["container_name"] }}
{% raw %}{% endif %}{% endraw %}
{% raw %}{% if "True" == openbook_install_database|string() %}{% endraw %}
docker stop {{ pillar["database"]["container_name"] }}
{% raw %}{% endif %}{% endraw %}
docker container prune -f
echo
echo "Openbook stopped."
}
do_help() {
echo "Usage:"
echo " $0 start"
echo " $0 debug"
echo " $0 stop"
{% raw %}{% if "True" == openbook_install_database|string() %}{% endraw %}
echo " $0 test_database"
{% raw %}{% endif %}{% endraw %}
}
case $1 in
start*)
do_start
;;
debug*)
do_start debug
;;
stop*)
do_stop
;;
{% raw %}{% if "True" == openbook_install_database|string() %}{% endraw %}
test_database*)
wait_for_database
echo "Database is up."
;;
{% raw %}{% endif %}{% endraw %}
*)
do_help
;;
esac
exit 0
|