From 0f649577ad82bc894265ad07a111f4c8b0f9cd94 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 17 Feb 2012 12:10:42 +0100 Subject: [PATCH] update __process to new style, warn if not present/absent Signed-off-by: Nico Schottelius --- conf/type/__process/gencode-remote | 51 ++++++++++++++++++------------ conf/type/__process/man.text | 18 ++++++----- 2 files changed, 41 insertions(+), 28 deletions(-) diff --git a/conf/type/__process/gencode-remote b/conf/type/__process/gencode-remote index be0e0cae..3411734e 100755 --- a/conf/type/__process/gencode-remote +++ b/conf/type/__process/gencode-remote @@ -1,6 +1,6 @@ #!/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. # @@ -25,33 +25,44 @@ else name="$__object_id" fi -runs="$(cat "$__object/explorer/runs")" 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 - running|present) - # Does not run, start it! - if [ -z "$runs" ]; then - if [ -f "$__object/parameter/start" ]; then + present) + if [ -f "$__object/parameter/start" ]; then cat "$__object/parameter/start" - else + else echo "$name" - fi - fi - ;; - stopped|absent) - # Runs, kill it! - if [ "$runs" ]; then + fi + ;; + absent) if [ -f "$__object/parameter/stop" ]; then cat "$__object/parameter/stop" else echo kill "${runs}" fi - fi - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; - + ;; + *) + echo "Unknown state: $state_should" >&2 + exit 1 + ;; esac diff --git a/conf/type/__process/man.text b/conf/type/__process/man.text index fbd54847..961a7f9a 100644 --- a/conf/type/__process/man.text +++ b/conf/type/__process/man.text @@ -16,7 +16,9 @@ This cdist type allows you to define the state of a process. REQUIRED PARAMETERS ------------------- 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 @@ -40,23 +42,23 @@ EXAMPLES -------------------------------------------------------------------------------- # 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 -__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 -__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 -__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 ...: -__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" # 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.*" -------------------------------------------------------------------------------- @@ -68,5 +70,5 @@ SEE ALSO 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).