Alexandros Kosiaris has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/347518 )

Change subject: ircecho: Convert to base::service class to maintain the script
......................................................................


ircecho: Convert to base::service class to maintain the script

Also migrate to systemd at the same time.

Change-Id: I5a1e899bec6e0cea34256917d9818ca35017a9f2
---
D modules/ircecho/files/ircecho.init
M modules/ircecho/manifests/init.pp
A modules/ircecho/templates/initscripts/ircecho.systemd.erb
3 files changed, 24 insertions(+), 152 deletions(-)

Approvals:
  Alexandros Kosiaris: Verified; Looks good to me, approved



diff --git a/modules/ircecho/files/ircecho.init 
b/modules/ircecho/files/ircecho.init
deleted file mode 100644
index 228834f..0000000
--- a/modules/ircecho/files/ircecho.init
+++ /dev/null
@@ -1,142 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides:          irc-echoer
-# Required-Start:    $remote_fs $syslog
-# Required-Stop:     $remote_fs $syslog
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Input to IRC echoer
-# Description:       Input to IRC echoer
-### END INIT INFO
-
-# Author: Ryan Lane <[email protected]>
-#
-# Do NOT "set -e"
-
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="Input to IRC echoer"
-DAEMON="/usr/local/bin/ircecho"
-USER="nobody"
-SCRIPTNAME="/etc/init.d/ircecho"
-NAME="ircecho"
-
-# Exit if the package is not installed
-[ -x "$DAEMON" ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-# Load the VERBOSE setting and other rcS variables
-. /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
-. /lib/lsb/init-functions
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
-       # Return
-       #   0 if daemon has been started
-       #   1 if daemon was already running
-       #   2 if daemon could not be started
-       start-stop-daemon --start -m --pidfile=/var/run/ircecho.pid -b --quiet 
-c $USER --exec $DAEMON --test -- --infile=$INFILE $CHANS $NICK $SERVER > 
/dev/null \
-               || return 1
-       start-stop-daemon --start -m --pidfile=/var/run/ircecho.pid -b --quiet 
-c $USER --exec $DAEMON -- --infile=$INFILE $CHANS $NICK $SERVER \
-               || return 2
-       # 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.
-}
-
-#
-# 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 --pidfile=/var/run/ircecho.pid --signal 9 
--quiet
-       RETVAL="$?"
-       [ "$RETVAL" = 2 ] && return 2
-       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.
-       #
-       do_stop
-       do_start
-       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
-
-:
diff --git a/modules/ircecho/manifests/init.pp 
b/modules/ircecho/manifests/init.pp
index f301439..b0e894d 100644
--- a/modules/ircecho/manifests/init.pp
+++ b/modules/ircecho/manifests/init.pp
@@ -25,8 +25,7 @@
     }
 
     file { '/etc/init.d/ircecho':
-        ensure => present,
-        source => 'puppet:///modules/ircecho/ircecho.init',
+        ensure => absent,
         owner  => 'root',
         group  => 'root',
         mode   => '0544',
@@ -38,14 +37,14 @@
         mode    => '0755',
     }
 
-    service { 'ircecho':
-        ensure    => running,
-        subscribe => File[
-            '/usr/local/bin/ircecho',
-            '/etc/init.d/ircecho',
-            '/etc/default/ircecho'
-        ],
+    base::service_unit { 'ircecho':
+        ensure         => 'present',
+        systemd        => true,
+        upstart        => false,
+        sysvinit       => false,
+        service_params => {
+            hasrestart => true,
+        },
     }
-
 }
 
diff --git a/modules/ircecho/templates/initscripts/ircecho.systemd.erb 
b/modules/ircecho/templates/initscripts/ircecho.systemd.erb
new file mode 100644
index 0000000..3717cdb
--- /dev/null
+++ b/modules/ircecho/templates/initscripts/ircecho.systemd.erb
@@ -0,0 +1,15 @@
+[Unit]
+Description=ircecho
+After=network.target
+
+[Service]
+User=nobody
+Group=nogroup
+Type=simple
+EnvironmentFile=-/etc/default/ircecho
+ExecStart=/usr/local/bin/ircecho --infile=${INFILE} $CHANS $NICK $SERVER
+Restart=always
+RestartSec=10s
+
+[Install]
+WantedBy=multi-user.target

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I5a1e899bec6e0cea34256917d9818ca35017a9f2
Gerrit-PatchSet: 11
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Paladox <[email protected]>
Gerrit-Reviewer: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: Dzahn <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: Paladox <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to