summaryrefslogtreecommitdiff
path: root/templates/ci/openbookctl
diff options
context:
space:
mode:
Diffstat (limited to 'templates/ci/openbookctl')
-rwxr-xr-xtemplates/ci/openbookctl114
1 files changed, 114 insertions, 0 deletions
diff --git a/templates/ci/openbookctl b/templates/ci/openbookctl
new file mode 100755
index 0000000..0563a16
--- /dev/null
+++ b/templates/ci/openbookctl
@@ -0,0 +1,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_unstable
+{% endif %}
+{% if "True" == openbook_install_admin_web_ui|string() %}
+ docker stop admin_web_ui_unstable
+{% endif %}
+{% if "True" == openbook_install_customer_api_server|string() %}
+ docker stop customer_api_server_unstable
+{% endif %}
+{% if "True" == openbook_install_admin_api_server|string() %}
+ docker stop admin_api_server_unstable
+{% endif %}
+{% if "True" == openbook_install_workflow_server|string() %}
+ docker stop workflow_server_unstable
+{% endif %}
+{% if "True" == openbook_install_job_scheduler_server|string() %}
+ docker stop job_scheduler_server_unstable
+{% 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