#!/bin/bash # # lib/template # Functions to control the configuration and operation of the XXXX service # # Dependencies: # # - ``functions`` file # - ``SERVICE_{TENANT_NAME|PASSWORD}`` must be defined # - # ``stack.sh`` calls the entry points in this order: # # - is_XXXX_enabled # - install_XXXX # - configure_XXXX # - init_XXXX # - start_XXXX # - stop_XXXX # - cleanup_XXXX # Save trace setting _XTRACE_TEMPLATE=$(set +o | grep xtrace) set +o xtrace # Defaults # -------- # # Set up default directories XXXX_DIR=$DEST/XXXX XXX_CONF_DIR=/etc/XXXX # Functions # --------- # Test if any XXXX services are enabled # is_XXXX_enabled function is_XXXX_enabled { [[ ,${ENABLED_SERVICES} =~ ,"XX-" ]] && return 0 return 1 } # cleanup_XXXX() - Remove residual data files, anything left over from previous # runs that a clean run would need to clean up function cleanup_XXXX { # kill instances (nova) # delete image files (glance) # This function intentionally left blank : } # configure_XXXX() - Set config files, create data dirs, etc function configure_XXXX { # sudo python setup.py deploy # iniset $XXXX_CONF ... # This function intentionally left blank : } # create_XXXX_accounts() - Create required service accounts function create_XXXX_accounts { : } # init_XXXX() - Initialize databases, etc. function init_XXXX { # clean up from previous (possibly aborted) runs # create required data files : } # install_XXXX() - Collect source and prepare function install_XXXX { # git clone xxx : } # start_XXXX() - Start running processes, including screen function start_XXXX { # The quoted command must be a single command and not include an # shell metacharacters, redirections or shell builtins. # run_process XXXX "$XXXX_DIR/bin/XXXX-bin" : } # stop_XXXX() - Stop running processes (non-screen) function stop_XXXX { # for serv in serv-a serv-b; do # stop_process $serv # done : } # Restore xtrace $_XTRACE_TEMPLATE # Tell emacs to use shell-script-mode ## Local variables: ## mode: shell-script ## End: