#!/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