diff options
| author | Amy Fong <amy.fong@windriver.com> | 2014-03-17 14:14:48 -0400 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@windriver.com> | 2014-03-17 15:27:41 -0400 |
| commit | 9a74961bafabc404f015fc5d8a9da969d263dad3 (patch) | |
| tree | edc0caa250166b128c89f606d17373c75e233d26 /meta-openstack/recipes-support | |
| parent | 71ef5b7acb5815c678cda0c115e98e6b1d06e1aa (diff) | |
| download | meta-cloud-services-9a74961bafabc404f015fc5d8a9da969d263dad3.tar.gz | |
OpenStack: Add to missing functionality in sysvinit scripts
Add status/reload to sysvinit scripts
Modify tgtd to make start/stop work better (borrowed from Debian's
implementation)
Signed-off-by: Amy Fong <amy.fong@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'meta-openstack/recipes-support')
| -rw-r--r-- | meta-openstack/recipes-support/tgt/files/tgtd.init | 86 |
1 files changed, 61 insertions, 25 deletions
diff --git a/meta-openstack/recipes-support/tgt/files/tgtd.init b/meta-openstack/recipes-support/tgt/files/tgtd.init index 3408645..ab91190 100644 --- a/meta-openstack/recipes-support/tgt/files/tgtd.init +++ b/meta-openstack/recipes-support/tgt/files/tgtd.init | |||
| @@ -12,43 +12,73 @@ | |||
| 12 | 12 | ||
| 13 | DESC="tgtd" | 13 | DESC="tgtd" |
| 14 | DAEMON="/usr/sbin/tgtd" | 14 | DAEMON="/usr/sbin/tgtd" |
| 15 | PIDFILE="/var/run/tgtd.pid" | 15 | TGTD_CONFIG=/etc/tgt/targets.conf |
| 16 | 16 | ||
| 17 | start () | 17 | start () |
| 18 | { | 18 | { |
| 19 | if [ -e $PIDFILE ]; then | ||
| 20 | PIDDIR=/proc/$(cat $PIDFILE) | ||
| 21 | if [ -d ${PIDDIR} ]; then | ||
| 22 | echo "$DESC already running." | ||
| 23 | exit 1 | ||
| 24 | else | ||
| 25 | echo "Removing stale PID file $PIDFILE" | ||
| 26 | rm -f $PIDFILE | ||
| 27 | fi | ||
| 28 | fi | ||
| 29 | |||
| 30 | echo -n "Starting $DESC..." | 19 | echo -n "Starting $DESC..." |
| 31 | 20 | # Start tgtd first | |
| 32 | start-stop-daemon --start --quiet --pidfile ${PIDFILE} \ | 21 | $DAEMON &>/dev/null |
| 33 | --make-pidfile --exec ${DAEMON} | 22 | RETVAL=$? |
| 34 | 23 | if [ "$RETVAL" -ne 0 ]; then | |
| 35 | if [ $? -eq 0 ]; then | ||
| 36 | echo "done." | ||
| 37 | else | ||
| 38 | echo "failed." | 24 | echo "failed." |
| 25 | exit 1 | ||
| 39 | fi | 26 | fi |
| 27 | |||
| 28 | # Put tgtd into "offline" state until all the targets are configured. | ||
| 29 | # We don't want initiators to (re)connect and fail the connection | ||
| 30 | # if it's not ready. | ||
| 31 | tgtadm --op update --mode sys --name State -v offline | ||
| 32 | # Configure the targets. | ||
| 33 | tgt-admin -e -c $TGTD_CONFIG | ||
| 34 | # Put tgtd into "ready" state. | ||
| 35 | tgtadm --op update --mode sys --name State -v ready | ||
| 36 | |||
| 37 | echo "done." | ||
| 40 | } | 38 | } |
| 41 | 39 | ||
| 42 | stop () | 40 | stop () |
| 43 | { | 41 | { |
| 44 | echo -n "Stopping $DESC..." | 42 | echo -n "Stopping $DESC..." |
| 45 | start-stop-daemon --stop --quiet --pidfile $PIDFILE | 43 | |
| 46 | if [ $? -eq 0 ]; then | 44 | # Remove all targets. It only removes targets which are not in use. |
| 47 | echo "done." | 45 | tgt-admin --update ALL -c /dev/null &>/dev/null |
| 48 | else | 46 | # tgtd will exit if all targets were removed |
| 49 | echo "failed." | 47 | tgtadm --op delete --mode system &>/dev/null |
| 48 | RETVAL=$? | ||
| 49 | if [ "$RETVAL" -eq 107 ] ; then | ||
| 50 | if [ "$TASK" != "restart" ] ; then | ||
| 51 | exit 1 | ||
| 52 | fi | ||
| 53 | elif [ "$RETVAL" -ne 0 ] ; then | ||
| 54 | echo "Some initiators are still connected - could not stop tgtd" | ||
| 55 | exit 2 | ||
| 50 | fi | 56 | fi |
| 51 | rm -f $PIDFILE | 57 | echo -n |
| 58 | } | ||
| 59 | |||
| 60 | reload() | ||
| 61 | { | ||
| 62 | echo "Reloading configuration of $DESC" "$NAME" | ||
| 63 | # Update configuration for targets. Only targets which | ||
| 64 | # are not in use will be updated. | ||
| 65 | tgt-admin --update ALL -c $TGTD_CONFIG &>/dev/null | ||
| 66 | RETVAL=$? | ||
| 67 | if [ "$RETVAL" -eq 107 ] ; then | ||
| 68 | echo "tgtd is not running" | ||
| 69 | exit 1 | ||
| 70 | fi | ||
| 71 | } | ||
| 72 | |||
| 73 | status() | ||
| 74 | { | ||
| 75 | tgt-admin -s >/dev/null 2>&1 | ||
| 76 | RETVAL=$? | ||
| 77 | if [ "$RETVAL" -eq 107 ] ; then | ||
| 78 | echo "tgtd is not running" | ||
| 79 | else | ||
| 80 | echo "tgtd is running" | ||
| 81 | fi | ||
| 52 | } | 82 | } |
| 53 | 83 | ||
| 54 | case "$1" in | 84 | case "$1" in |
| @@ -62,6 +92,12 @@ case "$1" in | |||
| 62 | stop | 92 | stop |
| 63 | start | 93 | start |
| 64 | ;; | 94 | ;; |
| 95 | reload) | ||
| 96 | reload | ||
| 97 | ;; | ||
| 98 | status) | ||
| 99 | status | ||
| 100 | ;; | ||
| 65 | *) | 101 | *) |
| 66 | echo "Usage: $0 {start|stop|force-reload|restart}" | 102 | echo "Usage: $0 {start|stop|force-reload|restart}" |
| 67 | exit 1 | 103 | exit 1 |
