update __process to new style, warn if not present/absent

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
Nico Schottelius 2012-02-17 12:10:42 +01:00
parent e0f80f0103
commit 0f649577ad
2 changed files with 41 additions and 28 deletions

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# #
# 2011 Nico Schottelius (nico-cdist at schottelius.org) # 2011-2012 Nico Schottelius (nico-cdist at schottelius.org)
# #
# This file is part of cdist. # This file is part of cdist.
# #
@ -25,33 +25,44 @@ else
name="$__object_id" name="$__object_id"
fi fi
runs="$(cat "$__object/explorer/runs")"
state_should="$(cat "$__object/parameter/state")" state_should="$(cat "$__object/parameter/state")"
case "$state_should" in
running)
echo "WARNING: ${__object_name}: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
state_should="present"
;;
stopped)
echo "WARNING: ${__object_name}: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2
state_should="absent"
;;
esac
runs="$(cat "$__object/explorer/runs")"
if [ "$runs" ]; then
state_is="present"
else
state_is="absent"
fi
[ "$state_is" = "$state_should" ] && exit 0
case "$state_should" in case "$state_should" in
running|present) present)
# Does not run, start it!
if [ -z "$runs" ]; then
if [ -f "$__object/parameter/start" ]; then if [ -f "$__object/parameter/start" ]; then
cat "$__object/parameter/start" cat "$__object/parameter/start"
else else
echo "$name" echo "$name"
fi fi
fi
;; ;;
stopped|absent) absent)
# Runs, kill it!
if [ "$runs" ]; then
if [ -f "$__object/parameter/stop" ]; then if [ -f "$__object/parameter/stop" ]; then
cat "$__object/parameter/stop" cat "$__object/parameter/stop"
else else
echo kill "${runs}" echo kill "${runs}"
fi fi
fi
;; ;;
*) *)
echo "Unknown state: $state_should" >&2 echo "Unknown state: $state_should" >&2
exit 1 exit 1
;; ;;
esac esac

View file

@ -16,7 +16,9 @@ This cdist type allows you to define the state of a process.
REQUIRED PARAMETERS REQUIRED PARAMETERS
------------------- -------------------
state:: state::
State of the process: Either stopped or running. State of the process: Either present or absent
(old values "stopped" and "running" are deprecated and will be removed in
cdist 2.1).
OPTIONAL PARAMETERS OPTIONAL PARAMETERS
@ -40,23 +42,23 @@ EXAMPLES
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
# Start if not running # Start if not running
__process /usr/sbin/syslog-ng --state running __process /usr/sbin/syslog-ng --state present
# Start if not running with a different binary # Start if not running with a different binary
__process /usr/sbin/nginx --state running --start "/etc/rc.d/nginx start" __process /usr/sbin/nginx --state present --start "/etc/rc.d/nginx start"
# Stop the process using kill (the type default) - DO NOT USE THIS # Stop the process using kill (the type default) - DO NOT USE THIS
__process /usr/sbin/sshd --state stopped __process /usr/sbin/sshd --state absent
# Stop the process using /etc/rc.d/sshd stop - THIS ONE NOT AS WELL # Stop the process using /etc/rc.d/sshd stop - THIS ONE NOT AS WELL
__process /usr/sbin/sshd --state stopped --stop "/etc/rc.d/sshd stop" __process /usr/sbin/sshd --state absent --stop "/etc/rc.d/sshd stop"
# Ensure cups is running, which runs with -C ...: # Ensure cups is running, which runs with -C ...:
__process cups --start "/etc/rc.d/cups start" --state running \ __process cups --start "/etc/rc.d/cups start" --state present \
--name "/usr/sbin/cupsd -C /etc/cups/cupsd.conf" --name "/usr/sbin/cupsd -C /etc/cups/cupsd.conf"
# Ensure rpc.statd is running (which usually runs with -L) using a regexp # Ensure rpc.statd is running (which usually runs with -L) using a regexp
__process rpcstatd --state running --start "/etc/init.d/statd start" \ __process rpcstatd --state present --start "/etc/init.d/statd start" \
--name "rpc.statd.*" --name "rpc.statd.*"
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -68,5 +70,5 @@ SEE ALSO
COPYING COPYING
------- -------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is Copyright \(C) 2011-2012 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3). granted under the terms of the GNU General Public License version 3 (GPLv3).