| Sean Dague | e263c82 | 2014-12-05 14:25:28 -0500 | [diff] [blame] | 1 | #!/bin/bash | 
|  | 2 | # | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 3 | # lib/template | 
|  | 4 | # Functions to control the configuration and operation of the XXXX service | 
|  | 5 | # <do not include this template file in ``stack.sh``!> | 
|  | 6 |  | 
|  | 7 | # Dependencies: | 
| Adam Spiers | 6a5aa7c | 2013-10-24 11:27:02 +0100 | [diff] [blame] | 8 | # | 
|  | 9 | # - ``functions`` file | 
|  | 10 | # - ``SERVICE_{TENANT_NAME|PASSWORD}`` must be defined | 
|  | 11 | # - <list other global vars that are assumed to be defined> | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 12 |  | 
|  | 13 | # ``stack.sh`` calls the entry points in this order: | 
|  | 14 | # | 
| Dean Troyer | e4fa721 | 2014-01-15 15:04:49 -0600 | [diff] [blame] | 15 | # - is_XXXX_enabled | 
| Adam Spiers | 6a5aa7c | 2013-10-24 11:27:02 +0100 | [diff] [blame] | 16 | # - install_XXXX | 
|  | 17 | # - configure_XXXX | 
|  | 18 | # - init_XXXX | 
|  | 19 | # - start_XXXX | 
|  | 20 | # - stop_XXXX | 
|  | 21 | # - cleanup_XXXX | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 22 |  | 
| Dean Troyer | 7903b79 | 2012-09-13 17:16:12 -0500 | [diff] [blame] | 23 | # Save trace setting | 
| Ian Wienand | 523f488 | 2015-10-13 11:03:03 +1100 | [diff] [blame] | 24 | _XTRACE_TEMPLATE=$(set +o | grep xtrace) | 
| Dean Troyer | 7903b79 | 2012-09-13 17:16:12 -0500 | [diff] [blame] | 25 | set +o xtrace | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 26 |  | 
|  | 27 |  | 
|  | 28 | # Defaults | 
|  | 29 | # -------- | 
|  | 30 |  | 
|  | 31 | # <define global variables here that belong to this project> | 
|  | 32 |  | 
|  | 33 | # Set up default directories | 
|  | 34 | XXXX_DIR=$DEST/XXXX | 
|  | 35 | XXX_CONF_DIR=/etc/XXXX | 
|  | 36 |  | 
|  | 37 |  | 
|  | 38 | # Entry Points | 
|  | 39 | # ------------ | 
|  | 40 |  | 
| Dean Troyer | e4fa721 | 2014-01-15 15:04:49 -0600 | [diff] [blame] | 41 | # Test if any XXXX services are enabled | 
|  | 42 | # is_XXXX_enabled | 
|  | 43 | function is_XXXX_enabled { | 
|  | 44 | [[ ,${ENABLED_SERVICES} =~ ,"XX-" ]] && return 0 | 
|  | 45 | return 1 | 
|  | 46 | } | 
|  | 47 |  | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 48 | # cleanup_XXXX() - Remove residual data files, anything left over from previous | 
|  | 49 | # runs that a clean run would need to clean up | 
| Ian Wienand | aee18c7 | 2014-02-21 15:35:08 +1100 | [diff] [blame] | 50 | function cleanup_XXXX { | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 51 | # kill instances (nova) | 
|  | 52 | # delete image files (glance) | 
|  | 53 | # This function intentionally left blank | 
|  | 54 | : | 
|  | 55 | } | 
|  | 56 |  | 
|  | 57 | # configure_XXXX() - Set config files, create data dirs, etc | 
| Ian Wienand | aee18c7 | 2014-02-21 15:35:08 +1100 | [diff] [blame] | 58 | function configure_XXXX { | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 59 | # sudo python setup.py deploy | 
|  | 60 | # iniset $XXXX_CONF ... | 
|  | 61 | # This function intentionally left blank | 
|  | 62 | : | 
|  | 63 | } | 
|  | 64 |  | 
|  | 65 | # init_XXXX() - Initialize databases, etc. | 
| Ian Wienand | aee18c7 | 2014-02-21 15:35:08 +1100 | [diff] [blame] | 66 | function init_XXXX { | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 67 | # clean up from previous (possibly aborted) runs | 
|  | 68 | # create required data files | 
|  | 69 | : | 
|  | 70 | } | 
|  | 71 |  | 
|  | 72 | # install_XXXX() - Collect source and prepare | 
| Ian Wienand | aee18c7 | 2014-02-21 15:35:08 +1100 | [diff] [blame] | 73 | function install_XXXX { | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 74 | # git clone xxx | 
|  | 75 | : | 
|  | 76 | } | 
|  | 77 |  | 
|  | 78 | # start_XXXX() - Start running processes, including screen | 
| Ian Wienand | aee18c7 | 2014-02-21 15:35:08 +1100 | [diff] [blame] | 79 | function start_XXXX { | 
| Chris Dent | 2f27a0e | 2014-09-09 13:46:02 +0100 | [diff] [blame] | 80 | # The quoted command must be a single command and not include an | 
|  | 81 | # shell metacharacters, redirections or shell builtins. | 
|  | 82 | # run_process XXXX "$XXXX_DIR/bin/XXXX-bin" | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 83 | : | 
|  | 84 | } | 
|  | 85 |  | 
|  | 86 | # stop_XXXX() - Stop running processes (non-screen) | 
| Ian Wienand | aee18c7 | 2014-02-21 15:35:08 +1100 | [diff] [blame] | 87 | function stop_XXXX { | 
| Chris Dent | 2f27a0e | 2014-09-09 13:46:02 +0100 | [diff] [blame] | 88 | # for serv in serv-a serv-b; do | 
|  | 89 | #     stop_process $serv | 
|  | 90 | # done | 
| Dean Troyer | 05f2365 | 2012-08-29 15:20:21 -0500 | [diff] [blame] | 91 | : | 
|  | 92 | } | 
| Dean Troyer | 7903b79 | 2012-09-13 17:16:12 -0500 | [diff] [blame] | 93 |  | 
|  | 94 | # Restore xtrace | 
| Ian Wienand | 523f488 | 2015-10-13 11:03:03 +1100 | [diff] [blame] | 95 | $_XTRACE_TEMPLATE | 
| Sean Dague | 584d90e | 2013-03-29 14:34:53 -0400 | [diff] [blame] | 96 |  | 
| Adam Spiers | 6a5aa7c | 2013-10-24 11:27:02 +0100 | [diff] [blame] | 97 | # Tell emacs to use shell-script-mode | 
|  | 98 | ## Local variables: | 
|  | 99 | ## mode: shell-script | 
|  | 100 | ## End: |