#!/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 %}{{ openbook_branch }}{% endraw %} {% raw %}{% endif %}{% endraw %} {% raw %}{% if "True" == openbook_install_admin_web_ui|string() %}{% endraw %} docker stop {{ pillar["admin_web_ui"]["container_name"] }}_{% raw %}{{ openbook_branch }}{% endraw %} {% raw %}{% endif %}{% endraw %} {% raw %}{% if "True" == openbook_install_customer_api_server|string() %}{% endraw %} docker stop {{ pillar["customer_api_server"]["container_name"] }}_{% raw %}{{ openbook_branch }}{% endraw %} {% raw %}{% endif %}{% endraw %} {% raw %}{% if "True" == openbook_install_admin_api_server|string() %}{% endraw %} docker stop {{ pillar["admin_api_server"]["container_name"] }}_{% raw %}{{ openbook_branch }}{% endraw %} {% raw %}{% endif %}{% endraw %} {% raw %}{% if "True" == openbook_install_workflow_server|string() %}{% endraw %} docker stop {{ pillar["workflow_server"]["container_name"] }}_{% raw %}{{ openbook_branch }}{% endraw %} {% raw %}{% endif %}{% endraw %} {% raw %}{% if "True" == openbook_install_job_scheduler_server|string() %}{% endraw %} docker stop {{ pillar["job_scheduler_server"]["container_name"] }}_{% raw %}{{ openbook_branch }}{% endraw %} {% 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