Filippo Giunchedi has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/244647

Change subject: restbase: move to systemd unit file
......................................................................

restbase: move to systemd unit file

Change-Id: I96ab266bd7f5d857eaf61940e6107a0fd651e8d8
---
M modules/restbase/manifests/init.pp
A modules/restbase/templates/initscripts/restbase.systemd.erb
D modules/restbase/templates/restbase.default.erb
D modules/restbase/templates/restbase.init
4 files changed, 19 insertions(+), 197 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/47/244647/1

diff --git a/modules/restbase/manifests/init.pp 
b/modules/restbase/manifests/init.pp
index a0761cc..9ca948b 100644
--- a/modules/restbase/manifests/init.pp
+++ b/modules/restbase/manifests/init.pp
@@ -95,18 +95,11 @@
     }
 
     file { '/etc/default/restbase':
-        content => template('restbase/restbase.default.erb'),
-        owner   => 'root',
-        group   => 'root',
-        mode    => '0444',
+        ensure  => absent
     }
 
     file { '/etc/init.d/restbase':
-        content => template('restbase/restbase.init'),
-        owner   => 'root',
-        group   => 'root',
-        mode    => '0755',
-        require => File['/etc/default/restbase'],
+        ensure  => absent
     }
 
     file { '/etc/restbase':
@@ -140,14 +133,13 @@
         before  => Service['restbase'],
     }
 
-    service { 'restbase':
-        ensure     => running,
-        hasstatus  => true,
-        hasrestart => true,
-        provider   => 'init',
-        require    => File[
-            '/etc/restbase/config.yaml',
-            '/etc/init.d/restbase'
-        ],
+    base::service_unit { 'restbase':
+        ensure        => present,
+        template_name => 'restbase',
+        systemd       => true,
+        refresh       => false,
+        require       => [File['/etc/restbase/config.yaml'],
+                          Package['restbase/deploy'],
+                         ],
     }
 }
diff --git a/modules/restbase/templates/initscripts/restbase.systemd.erb 
b/modules/restbase/templates/initscripts/restbase.systemd.erb
new file mode 100644
index 0000000..9cdf08d
--- /dev/null
+++ b/modules/restbase/templates/initscripts/restbase.systemd.erb
@@ -0,0 +1,9 @@
+[Unit]
+Description=REST storage API and backend orchestration layer
+After=network.target
+
+[Service]
+User=restbase
+Group=restbase
+LimitNOFILE=200000
+ExecStart=/usr/bin/nodejs /usr/lib/restbase/deploy/restbase/server.js -c 
/etc/restbase/config.yaml
diff --git a/modules/restbase/templates/restbase.default.erb 
b/modules/restbase/templates/restbase.default.erb
deleted file mode 100644
index 8dbc652..0000000
--- a/modules/restbase/templates/restbase.default.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-# Defaults for restbase initscript
-
-SETTINGS_FILE=/etc/restbase/config.yaml
-
-DAEMON_ARGS="-c $SETTINGS_FILE"
diff --git a/modules/restbase/templates/restbase.init 
b/modules/restbase/templates/restbase.init
deleted file mode 100644
index 1099af0..0000000
--- a/modules/restbase/templates/restbase.init
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:          restbase
-# Required-Start:    $local_fs $network $remote_fs $syslog
-# Required-Stop:     $local_fs $network $remote_fs $syslog
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: REST storage API and backend orchestration layer
-# Description:       Distributed storage service with REST API & backend
-#                    service orchestration layer.
-### END INIT INFO
-
-# Author: Gabriel Wicke <gwi...@wikimedia.org>
-
-# Do NOT "set -e"
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="RESTBase HTTP service"
-NAME=restbase
-SCRIPT_PATH=/usr/lib/restbase/deploy/restbase/server.js
-DAEMON="/usr/bin/nodejs $SCRIPT_PATH"
-DAEMON_ARGS=""
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Exit if the package is not installed
-[ -e "$SCRIPT_PATH" ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-# export the port and host env vars, if set
-export PORT
-export INTERFACE
-
-# Load the VERBOSE setting and other rcS variables
-. /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
-# and status_of_proc is working.
-. /lib/lsb/init-functions
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
-       # up the number of fds [sockets] from 1024
-       ulimit -n 200000
-
-       # Return
-       #   0 if daemon has been started
-       #   1 if daemon was already running
-       #   2 if daemon could not be started
-
-       start-stop-daemon --start --quiet --pidfile $PIDFILE -bm \
-               -c restbase:restbase --test \
-                --exec /bin/sh -- \
-                -c "$DAEMON $DAEMON_ARGS 2>&1 | logger -i -t restbase" \
-               || return 1
-       start-stop-daemon --start --quiet --pidfile $PIDFILE -bm \
-               -c restbase:restbase \
-                --exec /bin/sh -- \
-                -c "$DAEMON $DAEMON_ARGS 2>&1 | logger -i -t restbase" \
-               || return 2
-       echo "Started RESTBase server, by default listening on port 7231"
-
-
-       # Add code here, if necessary, that waits for the process to be ready
-       # to handle requests from services started subsequently which depend
-       # on this one.  As a last resort, sleep for some time.
-       sleep 5
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
-       # Return
-       #   0 if daemon has been stopped
-       #   1 if daemon was already stopped
-       #   2 if daemon could not be stopped
-       #   other if a failure occurred
-       start-stop-daemon --stop --quiet --retry=TERM/60/KILL/5 --pidfile 
$PIDFILE --name $NAME
-       RETVAL="$?"
-       [ "$RETVAL" = 2 ] && return 2
-       # Wait for children to finish too if this is a daemon that forks
-       # and if the daemon is only ever run from this initscript.
-       # If the above conditions are not satisfied then add some other code
-       # that waits for the process to drop all resources that could be
-       # needed by services started subsequently.  A last resort is to
-       # sleep for some time.
-       start-stop-daemon --stop --quiet --oknodo --retry=0/5/KILL/5 --exec 
$DAEMON
-       [ "$?" = 2 ] && return 2
-       # Many daemons don't delete their pidfiles when they exit.
-       rm -f $PIDFILE
-       return "$RETVAL"
-}
-
-#
-# Function that sends a SIGHUP to the daemon/service
-#
-do_reload() {
-       #
-       # If the daemon can reload its configuration without
-       # restarting (for example, when it is sent a SIGHUP),
-       # then implement that here.
-       #
-       start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name 
$NAME
-       return 0
-}
-
-case "$1" in
-  start)
-       [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
-       do_start
-       case "$?" in
-               0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-               2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-       esac
-       ;;
-  stop)
-       [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
-       do_stop
-       case "$?" in
-               0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-               2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-       esac
-       ;;
-  status)
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  #reload|force-reload)
-       #
-       # If do_reload() is not implemented then leave this commented out
-       # and leave 'force-reload' as an alias for 'restart'.
-       #
-       #log_daemon_msg "Reloading $DESC" "$NAME"
-       #do_reload
-       #log_end_msg $?
-       #;;
-  restart|force-reload)
-       #
-       # If the "reload" option is implemented then remove the
-       # 'force-reload' alias
-       #
-       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|restart|reload|force-reload}" >&2
-       echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-       exit 3
-       ;;
-esac
-
-:

-- 
To view, visit https://gerrit.wikimedia.org/r/244647
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I96ab266bd7f5d857eaf61940e6107a0fd651e8d8
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Filippo Giunchedi <fgiunch...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to