]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Added systemd support and log file configuration for each daemon.
authorThomas Goirand <thomas@goirand.fr>
Thu, 2 Oct 2014 12:02:51 +0000 (20:02 +0800)
committerThomas Goirand <thomas@goirand.fr>
Thu, 2 Oct 2014 12:02:51 +0000 (20:02 +0800)
Rewritten-From: c4167eed37eca2952a18a5141993bcca5e9fbfd8

trusty/debian/changelog
trusty/debian/control
trusty/debian/heat-api-cfn.init
trusty/debian/heat-api-cfn.service [new file with mode: 0644]
trusty/debian/heat-api-cloudwatch.init
trusty/debian/heat-api-cloudwatch.service [new file with mode: 0644]
trusty/debian/heat-api.init
trusty/debian/heat-api.service [new file with mode: 0644]
trusty/debian/heat-engine.init
trusty/debian/heat-engine.service [new file with mode: 0644]

index 5739fa081e5c407d667510dc43360060f5bbed3d..98a3090269b8a11a8e6064e2f662c5b99e621a66 100644 (file)
@@ -2,6 +2,8 @@ heat (2014.2~rc1-1) experimental; urgency=medium
 
   * New upstream release.
   * Updated (build-)depends for this release.
+  * Added log facilities for all daemons.
+  * Added systemd support.
 
  -- Thomas Goirand <zigo@debian.org>  Thu, 02 Oct 2014 19:01:13 +0800
 
index c1d0f62da5abf30bea477a7beb99a4792becbda7..240df7a9bdc5540ffbdeb5999046195fd1ca9410 100644 (file)
@@ -6,6 +6,7 @@ Uploaders: Julien Danjou <acid@debian.org>,
            Thomas Goirand <zigo@debian.org>,
            Mehdi Abaakouk <sileht@sileht.net>
 Build-Depends: debhelper (>= 9),
+               dh-systemd,
                openstack-pkg-tools (>= 12~),
                po-debconf,
                python-all (>= 2.6.6-3~),
index 112c78ee553cc9ea52f5a1383387a0f7ff4e56c2..6a23ec98da45491d33c0b095dbb3bffc480b92f7 100644 (file)
 # PATH should only include /usr/* if it runs after the mountnfs.sh script
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
 DESC="Heat API"
-NAME=heat-api-cfn
-DAEMON=/usr/bin/heat-api-cfn
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-SYSTEM_USER=heat
+PROJECT_NAME=heat
+NAME=${PROJECT_NAME}-api-cfn
+DAEMON=/usr/bin/${NAME}
+DAEMON_ARGS="--config-file=/etc/${PROJECT_NAME}/${PROJECT_NAME}.conf"
+PIDFILE=/var/run/${NAME}.pid
+SCRIPTNAME=/etc/init.d/${NAME}
+SYSTEM_USER=${PROJECT_NAME}
+SYSTEM_GROUP=${PROJECT_NAME}
+LOCK_DIR=/var/lock/${PROJECT_NAME}/
 
 # Exit if the package is not installed
 [ -x $DAEMON ] || exit 0
 
+mkdir -p ${LOCK_DIR} /var/run/${PROJECT_NAME} /var/log/${PROJECT_NAME}
+chown ${SYSTEM_USER} ${LOCK_DIR} /var/run/${PROJECT_NAME} /var/log/${PROJECT_NAME}
+
 . /lib/lsb/init-functions
 
-if [ ! -e /var/log/heat ] ; then
-       mkdir -p /var/log/heat
-       chown ${SYSTEM_USER} /var/log/heat
-fi
+[ -r /etc/default/openstack ] && . /etc/default/openstack
+[ -r /etc/default/${NAME} ] && . /etc/default/${NAME}
+
+[ "x$USE_SYSLOG" = "xyes" ] && DAEMON_ARGS="$DAEMON_ARGS --use-syslog"
+[ "x$USE_LOGFILE" != "xno" ] && DAEMON_ARGS="$DAEMON_ARGS --log-file=/var/log/${PROJECT_NAME}/${NAME}.log"
 
 do_start () {
-       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null || return 1
-       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON || return 2
+       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_GROUP} --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null || return 1
+       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_GROUP} --make-pidfile --pidfile $PIDFILE --startas $DAEMON -- ${DAEMON_ARGS} || return 2
 }
 
 do_stop () {
@@ -43,45 +51,53 @@ do_stop () {
 }
 
 case "$1" in
-  start)
-    log_daemon_msg "Starting $DESC" "$NAME"
-    do_start
-    case "$?" in
-                0|1) log_end_msg 0 ;;
-                2) log_end_msg 1 ;;
-        esac
-  ;;
-  stop)
-        log_daemon_msg "Stopping $DESC" "$NAME"
-        do_stop
-        case "$?" in
-                0|1) log_end_msg 0 ;;
-                2) log_end_msg 1 ;;
-        esac
-        ;;
-  status)   
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  restart|force-reload)
-        log_daemon_msg "Restarting $DESC" "$NAME"
-        do_stop
-        case "$?" in
-          0|1)
-                do_start
-                case "$?" in
-                        0) log_end_msg 0 ;;
-                        1) log_end_msg 1 ;; # Old process is still running
-                        *) log_end_msg 1 ;; # Failed to start
-                esac
-                ;;
-          *)
-                # Failed to stop
-                log_end_msg 1
-                ;;
-        esac   
-        ;;
-  *)
-        echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-        exit 3
-        ;;
+start)
+       log_daemon_msg "Starting $DESC" "$NAME"
+       do_start
+       case "$?" in
+               0|1) log_end_msg 0 ;;
+               2) log_end_msg 1 ;;
+       esac
+;;
+stop)
+       log_daemon_msg "Stopping $DESC" "$NAME"
+       do_stop
+       case "$?" in
+               0|1) log_end_msg 0 ;;
+               2) log_end_msg 1 ;;
+       esac
+;;
+status)
+       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+;;
+systemd-start)
+       do_start
+;;
+systemd-stop)
+       do_stop
+;;
+restart|force-reload)
+       log_daemon_msg "Restarting $DESC" "$NAME"
+       do_stop
+       case "$?" in
+       0|1)
+               do_start
+               case "$?" in
+                       0) log_end_msg 0 ;;
+                       1) log_end_msg 1 ;; # Old process is still running
+                       *) log_end_msg 1 ;; # Failed to start
+               esac
+       ;;
+       *)
+               # Failed to stop
+               log_end_msg 1
+       ;;
+       esac
+;;
+*)
+       echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+       exit 3
+;;
 esac
+
+exit 0
diff --git a/trusty/debian/heat-api-cfn.service b/trusty/debian/heat-api-cfn.service
new file mode 100644 (file)
index 0000000..b62dd24
--- /dev/null
@@ -0,0 +1,16 @@
+[Unit]
+Description=OpenStack Heat API CFN
+Documentation=http://docs.openstack.org/
+After=postgresql.service mysql.service keystone.service rabbitmq-server.service ntp.service network.service
+
+[Service]
+User=heat
+Group=heat
+ExecStart=/etc/init.d/heat-api-cfn systemd-start
+ExecStop=/etc/init.d/heat-api-cfn systemd-stop
+PIDFile=/var/run/heat/heat-api-cfn.pid
+Restart=on-failure
+Type=forking
+
+[Install]
+WantedBy=multi-user.target
index f4f4f3e8993a195f7646036e68c19906bef52a51..05f741bc050f51756a628c6fa919c887946c6017 100644 (file)
 # PATH should only include /usr/* if it runs after the mountnfs.sh script
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
 DESC="Heat API"
-NAME=heat-api-cloudwatch
-DAEMON=/usr/bin/heat-api-cloudwatch
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-SYSTEM_USER=heat
+PROJECT_NAME=heat
+NAME=${PROJECT_NAME}-api-cloudwatch
+DAEMON=/usr/bin/${NAME}
+DAEMON_ARGS="--config-file=/etc/${PROJECT_NAME}/${PROJECT_NAME}.conf"
+PIDFILE=/var/run/${PROJECT_NAME}/${NAME}.pid
+SCRIPTNAME=/etc/init.d/${NAME}
+SYSTEM_USER=${PROJECT_NAME}
+SYSTEM_GROUP=${PROJECT_NAME}
+LOCK_DIR=/var/lock/${PROJECT_NAME}/
 
 # Exit if the package is not installed
 [ -x $DAEMON ] || exit 0
 
 . /lib/lsb/init-functions
 
-if [ ! -e /var/log/heat ] ; then
-       mkdir -p /var/log/heat
-       chown ${SYSTEM_USER} /var/log/heat
-fi
+mkdir -p ${LOCK_DIR} /var/run/${PROJECT_NAME} /var/log/${PROJECT_NAME}
+chown ${SYSTEM_USER} ${LOCK_DIR} /var/run/${PROJECT_NAME} /var/log/${PROJECT_NAME}
+
+[ -r /etc/default/openstack ] && . /etc/default/openstack
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+[ "x$USE_SYSLOG" = "xyes" ] && DAEMON_ARGS="$DAEMON_ARGS --use-syslog"
+[ "x$USE_LOGFILE" != "xno" ] && DAEMON_ARGS="$DAEMON_ARGS --log-file=/var/log/${PROJECT_NAME}/${NAME}.log"
 
 do_start () {
        start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null || return 1
-       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON || return 2
+       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON -- ${DAEMON_ARGS} || return 2
 }
 
 do_stop () {
@@ -43,45 +51,51 @@ do_stop () {
 }
 
 case "$1" in
-  start)
-    log_daemon_msg "Starting $DESC" "$NAME"
-    do_start
-    case "$?" in
-                0|1) log_end_msg 0 ;;
-                2) log_end_msg 1 ;;
-        esac
-  ;;
-  stop)
-        log_daemon_msg "Stopping $DESC" "$NAME"
-        do_stop
-        case "$?" in
-                0|1) log_end_msg 0 ;;
-                2) log_end_msg 1 ;;
-        esac
-        ;;
-  status)   
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  restart|force-reload)
+start)
+       log_daemon_msg "Starting $DESC" "$NAME"
+       do_start
+       case "$?" in
+               0|1) log_end_msg 0 ;;
+               2) log_end_msg 1 ;;
+       esac
+;;
+stop)
+       log_daemon_msg "Stopping $DESC" "$NAME"
+       do_stop
+       case "$?" in
+               0|1) log_end_msg 0 ;;
+               2) log_end_msg 1 ;;
+       esac
+;;
+status)
+       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+;;
+systemd-start)
+       do_start
+;;
+systemd-stop)
+       do_stop
+;;
+restart|force-reload)
         log_daemon_msg "Restarting $DESC" "$NAME"
         do_stop
         case "$?" in
-          0|1)
-                do_start
-                case "$?" in
-                        0) log_end_msg 0 ;;
-                        1) log_end_msg 1 ;; # Old process is still running
-                        *) log_end_msg 1 ;; # Failed to start
-                esac
-                ;;
-          *)
-                # Failed to stop
-                log_end_msg 1
-                ;;
-        esac   
-        ;;
-  *)
-        echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-        exit 3
-        ;;
+       0|1)
+               do_start
+               case "$?" in
+                       0) log_end_msg 0 ;;
+                       1) log_end_msg 1 ;; # Old process is still running
+                       *) log_end_msg 1 ;; # Failed to start
+               esac
+       ;;
+       *)
+               # Failed to stop
+               log_end_msg 1
+               ;;
+       esac
+;;
+*)
+       echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+       exit 3
+;;
 esac
diff --git a/trusty/debian/heat-api-cloudwatch.service b/trusty/debian/heat-api-cloudwatch.service
new file mode 100644 (file)
index 0000000..3386235
--- /dev/null
@@ -0,0 +1,16 @@
+[Unit]
+Description=OpenStack API CloudWatch
+Documentation=http://docs.openstack.org/
+After=postgresql.service mysql.service keystone.service rabbitmq-server.service ntp.service network.service
+
+[Service]
+User=heat
+Group=heat
+ExecStart=/etc/init.d/heat-api-cloudwatch systemd-start
+ExecStop=/etc/init.d/heat-api-cloudwatch systemd-stop
+PIDFile=/var/run/heat/heat-api-cloudwatch.pid
+Restart=on-failure
+Type=forking
+
+[Install]
+WantedBy=multi-user.target
index 57d647ec94858cea04c4b7a1b5ef961bcc00a90c..1af6bb8628a01b4047868bb56091211ebbdb046e 100644 (file)
 # PATH should only include /usr/* if it runs after the mountnfs.sh script
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
 DESC="Heat API"
-NAME=heat-api
-DAEMON=/usr/bin/heat-api
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-SYSTEM_USER=heat
+PROJECT_NAME=heat
+NAME=${PROJECT_NAME}-api
+DAEMON=/usr/bin/${NAME}
+DAEMON_ARGS="--config-file=/etc/${PROJECT_NAME}/${PROJECT_NAME}.conf"
+PIDFILE=/var/run/${PROJECT_NAME}/${NAME}.pid
+SCRIPTNAME=/etc/init.d/${NAME}
+SYSTEM_USER=${PROJECT_NAME}
+SYSTEM_GROUP=${PROJECT_NAME}
+LOCK_DIR=/var/lock/${PROJECT_NAME}/
 
 # Exit if the package is not installed
 [ -x $DAEMON ] || exit 0
 
+mkdir -p ${LOCK_DIR} /var/run/${PROJECT_NAME} /var/log/${PROJECT_NAME}
+chown ${SYSTEM_USER} ${LOCK_DIR} /var/run/${PROJECT_NAME} /var/log/${PROJECT_NAME}
+
 . /lib/lsb/init-functions
 
-if [ ! -e /var/log/heat ] ; then
-       mkdir -p /var/log/heat
-       chown ${SYSTEM_USER} /var/log/heat
-fi
+# Manage log options
+[ -r /etc/default/openstack ] && . /etc/default/openstack
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+[ "x$USE_SYSLOG" = "xyes" ] && DAEMON_ARGS="$DAEMON_ARGS --use-syslog"
+[ "x$USE_LOGFILE" != "xno" ] && DAEMON_ARGS="$DAEMON_ARGS --log-file=/var/log/${PROJECT_NAME}/${NAME}.log"
 
 do_start () {
        start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null || return 1
-       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON || return 2
+       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON -- ${DAEMON_ARGS} || return 2
 }
 
 do_stop () {
@@ -43,45 +51,53 @@ do_stop () {
 }
 
 case "$1" in
-  start)
-    log_daemon_msg "Starting $DESC" "$NAME"
-    do_start
-    case "$?" in
-                0|1) log_end_msg 0 ;;
-                2) log_end_msg 1 ;;
-        esac
-  ;;
-  stop)
-        log_daemon_msg "Stopping $DESC" "$NAME"
-        do_stop
-        case "$?" in
-                0|1) log_end_msg 0 ;;
-                2) log_end_msg 1 ;;
-        esac
-        ;;
-  status)   
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  restart|force-reload)
-        log_daemon_msg "Restarting $DESC" "$NAME"
-        do_stop
-        case "$?" in
-          0|1)
-                do_start
-                case "$?" in
-                        0) log_end_msg 0 ;;
-                        1) log_end_msg 1 ;; # Old process is still running
-                        *) log_end_msg 1 ;; # Failed to start
-                esac
-                ;;
-          *)
-                # Failed to stop
-                log_end_msg 1
-                ;;
-        esac   
-        ;;
-  *)
-        echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-        exit 3
-        ;;
+start)
+       log_daemon_msg "Starting $DESC" "$NAME"
+       do_start
+       case "$?" in
+               0|1) log_end_msg 0 ;;
+               2) log_end_msg 1 ;;
+       esac
+;;
+stop)
+       log_daemon_msg "Stopping $DESC" "$NAME"
+       do_stop
+       case "$?" in
+               0|1) log_end_msg 0 ;;
+               2) log_end_msg 1 ;;
+       esac
+;;
+status)
+       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+;;
+systemd-start)
+       do_start
+;;
+systemd-stop)
+       do_stop
+;;
+restart|force-reload)
+       log_daemon_msg "Restarting $DESC" "$NAME"
+       do_stop
+       case "$?" in
+       0|1)
+               do_start
+               case "$?" in
+                       0) log_end_msg 0 ;;
+                       1) log_end_msg 1 ;; # Old process is still running
+                       *) log_end_msg 1 ;; # Failed to start
+               esac
+       ;;
+       *)
+               # Failed to stop
+               log_end_msg 1
+       ;;
+       esac
+;;
+*)
+       echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+       exit 3
+;;
 esac
+
+exit 0
diff --git a/trusty/debian/heat-api.service b/trusty/debian/heat-api.service
new file mode 100644 (file)
index 0000000..9c14adc
--- /dev/null
@@ -0,0 +1,16 @@
+[Unit]
+Description=OpenStack Heat API
+Documentation=http://docs.openstack.org/
+After=postgresql.service mysql.service keystone.service rabbitmq-server.service ntp.service network.service
+
+[Service]
+User=heat
+Group=heat
+ExecStart=/etc/init.d/heat-api systemd-start
+ExecStop=/etc/init.d/heat-api systemd-stop
+PIDFile=/var/run/heat/heat-api.pid
+Restart=on-failure
+Type=forking
+
+[Install]
+WantedBy=multi-user.target
index ba201d7e2cf6061fc8dffd193f15cc8564b18ee2..45de659a7dc6f2cd54da441e53c9034b08cb378f 100644 (file)
 # PATH should only include /usr/* if it runs after the mountnfs.sh script
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
 DESC="Heat Engine"
-NAME=heat-engine
-DAEMON=/usr/bin/heat-engine
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-SYSTEM_USER=heat
+PROJECT_NAME=heat
+NAME=${PROJECT_NAME}-engine
+DAEMON=/usr/bin/${NAME}
+DAEMON_ARGS="--config-file=/etc/${PROJECT_NAME}/${PROJECT_NAME}.conf"
+PIDFILE=/var/run/${PROJECT_NAME}/${NAME}.pid
+SCRIPTNAME=/etc/init.d/${NAME}
+SYSTEM_USER=${PROJECT_NAME}
+SYSTEM_GROUP=${PROJECT_NAME}
+LOCK_DIR=/var/lock/${PROJECT_NAME}/
 
 # Exit if the package is not installed
 [ -x $DAEMON ] || exit 0
 
+mkdir -p ${LOCK_DIR} /var/run/${PROJECT_NAME} /var/log/${PROJECT_NAME}
+chown ${SYSTEM_USER} ${LOCK_DIR} /var/run/${PROJECT_NAME} /var/log/${PROJECT_NAME}
+
 . /lib/lsb/init-functions
 
-if [ ! -e /var/log/heat ] ; then
-       mkdir -p /var/log/heat
-       chown ${SYSTEM_USER} /var/log/heat
-fi
+# Manage log options
+[ -r /etc/default/openstack ] && . /etc/default/openstack
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+[ "x$USE_SYSLOG" = "xyes" ] && DAEMON_ARGS="$DAEMON_ARGS --use-syslog"
+[ "x$USE_LOGFILE" != "xno" ] && DAEMON_ARGS="$DAEMON_ARGS --log-file=/var/log/${PROJECT_NAME}/${NAME}.log"
 
 do_start () {
        start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null || return 1
-       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON || return 2
+       start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON -- ${DAEMON_ARGS} || return 2
 }
 
 do_stop () {
@@ -43,45 +51,51 @@ do_stop () {
 }
 
 case "$1" in
-  start)
-    log_daemon_msg "Starting $DESC" "$NAME"
-    do_start
-    case "$?" in
-                0|1) log_end_msg 0 ;;
-                2) log_end_msg 1 ;;
-        esac
-  ;;
-  stop)
-        log_daemon_msg "Stopping $DESC" "$NAME"
-        do_stop
-        case "$?" in
-                0|1) log_end_msg 0 ;;
-                2) log_end_msg 1 ;;
-        esac
-        ;;
-  status)   
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  restart|force-reload)
-        log_daemon_msg "Restarting $DESC" "$NAME"
+start)
+       log_daemon_msg "Starting $DESC" "$NAME"
+       do_start
+       case "$?" in
+               0|1) log_end_msg 0 ;;
+               2) log_end_msg 1 ;;
+       esac
+;;
+stop)
+       log_daemon_msg "Stopping $DESC" "$NAME"
+       do_stop
+       case "$?" in
+               0|1) log_end_msg 0 ;;
+               2) log_end_msg 1 ;;
+       esac
+;;
+status)
+       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+;;
+systemd-start)
+        do_start
+;;
+systemd-stop)
         do_stop
-        case "$?" in
-          0|1)
-                do_start
-                case "$?" in
-                        0) log_end_msg 0 ;;
-                        1) log_end_msg 1 ;; # Old process is still running
-                        *) log_end_msg 1 ;; # Failed to start
-                esac
-                ;;
-          *)
-                # Failed to stop
-                log_end_msg 1
-                ;;
-        esac   
-        ;;
-  *)
-        echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-        exit 3
-        ;;
+;;
+restart|force-reload)
+       log_daemon_msg "Restarting $DESC" "$NAME"
+       do_stop
+       case "$?" in
+       0|1)
+               do_start
+               case "$?" in
+                       0) log_end_msg 0 ;;
+                       1) log_end_msg 1 ;; # Old process is still running
+                       *) log_end_msg 1 ;; # Failed to start
+               esac
+       ;;
+       *)
+               # Failed to stop
+               log_end_msg 1
+       ;;
+       esac
+;;
+*)
+       echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+       exit 3
+;;
 esac
diff --git a/trusty/debian/heat-engine.service b/trusty/debian/heat-engine.service
new file mode 100644 (file)
index 0000000..8af82ac
--- /dev/null
@@ -0,0 +1,16 @@
+[Unit]
+Description=OpenStack Heat Engine
+Documentation=http://docs.openstack.org/
+After=postgresql.service mysql.service keystone.service rabbitmq-server.service ntp.service network.service
+
+[Service]
+User=heat
+Group=heat
+ExecStart=/etc/init.d/heat-engine systemd-start
+ExecStop=/etc/init.d/heat-engine systemd-stop
+PIDFile=/var/run/heat/heat-engine.pid
+Restart=on-failure
+Type=forking
+
+[Install]
+WantedBy=multi-user.target