From 242ce6dfd2d9874ef1f8c092d6d209d2069bba24 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 8 Feb 2012 22:16:09 +0100 Subject: [PATCH 01/16] first round of absent/present changes Signed-off-by: Nico Schottelius --- conf/type/__package/man.text | 29 ++++++++++++------------ conf/type/__package_apt/man.text | 9 ++++---- conf/type/__package_luarocks/man.text | 7 +++--- conf/type/__package_pacman/man.text | 7 +++--- conf/type/__package_pip/man.text | 4 ++-- conf/type/__package_pkg_openbsd/man.text | 7 +++--- conf/type/__package_rubygem/man.text | 5 ++-- conf/type/__package_yum/man.text | 5 ++-- 8 files changed, 40 insertions(+), 33 deletions(-) diff --git a/conf/type/__package/man.text b/conf/type/__package/man.text index d0460a31..071a8bfb 100644 --- a/conf/type/__package/man.text +++ b/conf/type/__package/man.text @@ -1,5 +1,5 @@ -cdist-type__user(7) -=================== +cdist-type__package(7) +====================== Steven Armstrong @@ -17,22 +17,23 @@ It dispatches the actual work to the package system dependant types. REQUIRED PARAMETERS ------------------- state:: - The state the package should be in, either "installed" or "removed" + The state the package should be in, either "present" or "absent" + (the old values "installed" or "removed" will be removed in cdist 2.1). OPTIONAL PARAMETERS ------------------- name:: - The name of the package to install. Default is to use the object_id as the - package name. + The name of the package to install. Default is to use the object_id as the + package name. version:: - The version of the package to install. Default is to install the version - choosen by the local package manager. + The version of the package to install. Default is to install the version + choosen by the local package manager. type:: - The package type to use. Default is determined based on the $os explorer - variable. - e.g. __package_apt for Debian - __package_emerge for Gentoo + The package type to use. Default is determined based on the $os explorer + variable. + e.g. __package_apt for Debian + __package_emerge for Gentoo EXAMPLES @@ -40,13 +41,13 @@ EXAMPLES -------------------------------------------------------------------------------- # Install the package vim on the target -__package vim --state installed +__package vim --state present # Same but install specific version -__package vim --state installed --version 7.3.50 +__package vim --state present --version 7.3.50 # Force use of a specific package type -__package vim --state installed --type __package_apt +__package vim --state present --type __package_apt -------------------------------------------------------------------------------- diff --git a/conf/type/__package_apt/man.text b/conf/type/__package_apt/man.text index 905bfb5f..fd9c1a9c 100644 --- a/conf/type/__package_apt/man.text +++ b/conf/type/__package_apt/man.text @@ -17,7 +17,8 @@ manage packages. REQUIRED PARAMETERS ------------------- state:: - Either "installed" or "removed". + The state the package should be in, either "present" or "absent" + (the old values "installed" or "removed" will be removed in cdist 2.1). OPTIONAL PARAMETERS @@ -31,13 +32,13 @@ EXAMPLES -------------------------------------------------------------------------------- # Ensure zsh in installed -__package_apt zsh --state installed +__package_apt zsh --state present # In case you only want *a* webserver, but don't care which one -__package_apt webserver --state installed --name nginx +__package_apt webserver --state present --name nginx # Remove obsolete package -__package_apt puppet --state removed +__package_apt puppet --state absent -------------------------------------------------------------------------------- diff --git a/conf/type/__package_luarocks/man.text b/conf/type/__package_luarocks/man.text index 6c1e6734..4f68875a 100644 --- a/conf/type/__package_luarocks/man.text +++ b/conf/type/__package_luarocks/man.text @@ -1,5 +1,5 @@ cdist-type__package_luarocks(7) -============================== +=============================== Christian G. Warden @@ -16,13 +16,14 @@ LuaRocks is a deployment and management system for Lua modules. REQUIRED PARAMETERS ------------------- state:: - Either "installed" or "removed". + The state the package should be in, either "present" or "absent" + (the old values "installed" or "removed" will be removed in cdist 2.1). OPTIONAL PARAMETERS ------------------- name:: - If supplied, use the name and not the object id as the package name. + If supplied, use the name and not the object id as the package name. EXAMPLES diff --git a/conf/type/__package_pacman/man.text b/conf/type/__package_pacman/man.text index 28766581..52fa05c4 100644 --- a/conf/type/__package_pacman/man.text +++ b/conf/type/__package_pacman/man.text @@ -17,13 +17,14 @@ packages. REQUIRED PARAMETERS ------------------- state:: - Either "installed" or "removed". + The state the package should be in, either "present" or "absent" + (the old values "installed" or "removed" will be removed in cdist 2.1). OPTIONAL PARAMETERS ------------------- name:: - If supplied, use the name and not the object id as the package name. + If supplied, use the name and not the object id as the package name. EXAMPLES @@ -49,5 +50,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). diff --git a/conf/type/__package_pip/man.text b/conf/type/__package_pip/man.text index 1822ffca..bc773763 100644 --- a/conf/type/__package_pip/man.text +++ b/conf/type/__package_pip/man.text @@ -23,10 +23,10 @@ state:: OPTIONAL PARAMETERS ------------------- name:: - If supplied, use the name and not the object id as the package name. + If supplied, use the name and not the object id as the package name. pip:: - Instead of using pip from PATH, use the specific pip path. + Instead of using pip from PATH, use the specific pip path. EXAMPLES diff --git a/conf/type/__package_pkg_openbsd/man.text b/conf/type/__package_pkg_openbsd/man.text index 555bb0ac..0f594b96 100644 --- a/conf/type/__package_pkg_openbsd/man.text +++ b/conf/type/__package_pkg_openbsd/man.text @@ -16,16 +16,17 @@ This type is usually used on OpenBSD to manage packages. REQUIRED PARAMETERS ------------------- state:: - Either "installed" or "removed". + The state the package should be in, either "present" or "absent" + (the old values "installed" or "removed" will be removed in cdist 2.1). OPTIONAL PARAMETERS ------------------- name:: - If supplied, use the name and not the object id as the package name. + If supplied, use the name and not the object id as the package name. flavor:: - If supplied, use to avoid ambiguity. + If supplied, use to avoid ambiguity. EXAMPLES diff --git a/conf/type/__package_rubygem/man.text b/conf/type/__package_rubygem/man.text index c6248ee3..6db8f42b 100644 --- a/conf/type/__package_rubygem/man.text +++ b/conf/type/__package_rubygem/man.text @@ -16,13 +16,14 @@ Rubygems is the default package management system for the Ruby programming langu REQUIRED PARAMETERS ------------------- state:: - Either "installed" or "removed". + The state the package should be in, either "present" or "absent" + (the old values "installed" or "removed" will be removed in cdist 2.1). OPTIONAL PARAMETERS ------------------- name:: - If supplied, use the name and not the object id as the package name. + If supplied, use the name and not the object id as the package name. EXAMPLES diff --git a/conf/type/__package_yum/man.text b/conf/type/__package_yum/man.text index c9cad340..d90a2af7 100644 --- a/conf/type/__package_yum/man.text +++ b/conf/type/__package_yum/man.text @@ -18,13 +18,14 @@ slightly confusing error message "Error: Nothing to do". REQUIRED PARAMETERS ------------------- state:: - Either "installed" or "removed". + The state the package should be in, either "present" or "absent" + (the old values "installed" or "removed" will be removed in cdist 2.1). OPTIONAL PARAMETERS ------------------- name:: - If supplied, use the name and not the object id as the package name. + If supplied, use the name and not the object id as the package name. EXAMPLES From 2aed047f7565cc22512dbc61ab3d42c8ad15eb57 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 8 Feb 2012 22:23:31 +0100 Subject: [PATCH 02/16] 2nd correction round for manpages Signed-off-by: Nico Schottelius --- conf/type/__package_luarocks/man.text | 4 ++-- conf/type/__package_pacman/man.text | 6 +++--- conf/type/__package_pkg_openbsd/man.text | 8 ++++---- conf/type/__package_rubygem/man.text | 4 ++-- conf/type/__package_yum/man.text | 6 +++--- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/conf/type/__package_luarocks/man.text b/conf/type/__package_luarocks/man.text index 4f68875a..8b041b7c 100644 --- a/conf/type/__package_luarocks/man.text +++ b/conf/type/__package_luarocks/man.text @@ -31,10 +31,10 @@ EXAMPLES -------------------------------------------------------------------------------- # Ensure luasocket is installed -__package_luarocks luasocket --state installed +__package_luarocks luasocket --state present # Remove package -__package_luarocks luasocket --state removed +__package_luarocks luasocket --state absent -------------------------------------------------------------------------------- diff --git a/conf/type/__package_pacman/man.text b/conf/type/__package_pacman/man.text index 52fa05c4..fe2abac8 100644 --- a/conf/type/__package_pacman/man.text +++ b/conf/type/__package_pacman/man.text @@ -32,13 +32,13 @@ EXAMPLES -------------------------------------------------------------------------------- # Ensure zsh in installed -__package_pacman zsh --state installed +__package_pacman zsh --state present # If you don't want to follow pythonX packages, but always use python -__package_pacman python --state installed --name python2 +__package_pacman python --state present --name python2 # Remove obsolete package -__package_pacman puppet --state removed +__package_pacman puppet --state absent -------------------------------------------------------------------------------- diff --git a/conf/type/__package_pkg_openbsd/man.text b/conf/type/__package_pkg_openbsd/man.text index 0f594b96..71cf9d4e 100644 --- a/conf/type/__package_pkg_openbsd/man.text +++ b/conf/type/__package_pkg_openbsd/man.text @@ -34,16 +34,16 @@ EXAMPLES -------------------------------------------------------------------------------- # Ensure zsh is installed -__package_pkg_openbsd zsh --state installed +__package_pkg_openbsd zsh --state present # Ensure vim is installed, use flavor no_x11 -__package_pkg_openbsd vim --state installed --flavor no_x11 +__package_pkg_openbsd vim --state present --flavor no_x11 # If you don't want to follow pythonX packages, but always use python -__package_pkg_openbsd python --state installed --name python2 +__package_pkg_openbsd python --state present --name python2 # Remove obsolete package -__package_pkg_openbsd puppet --state removed +__package_pkg_openbsd puppet --state absent -------------------------------------------------------------------------------- diff --git a/conf/type/__package_rubygem/man.text b/conf/type/__package_rubygem/man.text index 6db8f42b..79bb8b52 100644 --- a/conf/type/__package_rubygem/man.text +++ b/conf/type/__package_rubygem/man.text @@ -31,10 +31,10 @@ EXAMPLES -------------------------------------------------------------------------------- # Ensure sinatra is installed -__package_rubygem sinatra --state installed +__package_rubygem sinatra --state present # Remove package -__package_rubygem rails --state removed +__package_rubygem rails --state absent -------------------------------------------------------------------------------- diff --git a/conf/type/__package_yum/man.text b/conf/type/__package_yum/man.text index d90a2af7..9dfb394e 100644 --- a/conf/type/__package_yum/man.text +++ b/conf/type/__package_yum/man.text @@ -33,13 +33,13 @@ EXAMPLES -------------------------------------------------------------------------------- # Ensure zsh in installed -__package_yum zsh --state installed +__package_yum zsh --state present # If you don't want to follow pythonX packages, but always use python -__package_yum python --state installed --name python2 +__package_yum python --state present --name python2 # Remove obsolete package -__package_yum puppet --state removed +__package_yum puppet --state absent -------------------------------------------------------------------------------- From 602e57455db6f09d48bc2f578d89fb13b7cb0d6b Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 8 Feb 2012 22:23:49 +0100 Subject: [PATCH 03/16] support absent/present in __package_apt Signed-off-by: Nico Schottelius --- conf/type/__package_apt/explorer/pkg_status | 8 ++++---- conf/type/__package_apt/gencode-remote | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/conf/type/__package_apt/explorer/pkg_status b/conf/type/__package_apt/explorer/pkg_status index dbb3af3e..04926b60 100755 --- a/conf/type/__package_apt/explorer/pkg_status +++ b/conf/type/__package_apt/explorer/pkg_status @@ -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. # @@ -28,11 +28,11 @@ else fi # Except dpkg failing, if package is not known / installed -packages="$(apt-cache showpkg "$name" | sed -e "1,/Reverse Provides:/d" | cut -d ' ' -f 1) $name" +packages="$(apt-cache showpkg "$name" | sed -e "1,/Reverse Provides:/d" | cut -d ' ' -f 1) $name" for p in $packages; do if [ -n "$(dpkg -s "$p" 2>/dev/null | grep "^Status: install ok installed$")" ]; then - echo "installed $p" + echo "present $p" exit 0 fi done -echo "removed" +echo absent diff --git a/conf/type/__package_apt/gencode-remote b/conf/type/__package_apt/gencode-remote index 594ab8cb..da58ca1b 100755 --- a/conf/type/__package_apt/gencode-remote +++ b/conf/type/__package_apt/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. # @@ -28,11 +28,18 @@ else fi state_should="$(cat "$__object/parameter/state")" + +# Correct pre 2.1 naming - FIXME in 2.1 +case "$state_should" in + installed) state_should="present" ;; + removed) state_should="absent" ;; +esac + state_is="$(cat "$__object/explorer/pkg_status")" case "$state_is" in - installed*) + present*) name="$(echo "$state_is" | cut -d ' ' -f 2)" - state_is="installed" + state_is="present" ;; esac @@ -40,10 +47,10 @@ aptget="DEBIAN_FRONTEND=noninteractive apt-get --quiet --yes" if [ "$state_is" != "$state_should" ]; then case "$state_should" in - installed) + present) echo $aptget install \"$name\" ;; - removed) + absent) echo $aptget remove \"$name\" ;; *) @@ -52,4 +59,3 @@ if [ "$state_is" != "$state_should" ]; then ;; esac fi - From 8e5a0f83c5c7b5f42539fe44c0f02f503a409171 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 9 Feb 2012 10:10:13 +0100 Subject: [PATCH 04/16] rename explorer to state, being more consistent internally Signed-off-by: Nico Schottelius --- conf/type/__package_apt/explorer/{pkg_status => state} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename conf/type/__package_apt/explorer/{pkg_status => state} (100%) diff --git a/conf/type/__package_apt/explorer/pkg_status b/conf/type/__package_apt/explorer/state similarity index 100% rename from conf/type/__package_apt/explorer/pkg_status rename to conf/type/__package_apt/explorer/state From 52849b91c581ede9f57e9549fbda4bcfbe5fcea2 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 9 Feb 2012 10:25:05 +0100 Subject: [PATCH 05/16] warn about deprecated usage Signed-off-by: Nico Schottelius --- conf/type/__package_apt/gencode-remote | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/conf/type/__package_apt/gencode-remote b/conf/type/__package_apt/gencode-remote index da58ca1b..32049a27 100755 --- a/conf/type/__package_apt/gencode-remote +++ b/conf/type/__package_apt/gencode-remote @@ -31,11 +31,19 @@ state_should="$(cat "$__object/parameter/state")" # Correct pre 2.1 naming - FIXME in 2.1 case "$state_should" in - installed) state_should="present" ;; - removed) state_should="absent" ;; + # FIXME: print warning to stderr! + installed) + echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + state_should="present" + ;; + removed) + echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + state_should="absent" + ;; esac -state_is="$(cat "$__object/explorer/pkg_status")" +# FIXME: use grep directly, state is a list, not a line! +state_is="$(cat "$__object/explorer/state")" case "$state_is" in present*) name="$(echo "$state_is" | cut -d ' ' -f 2)" From 3c19e7ab4c937bd6452d1f8a777288ab31163a47 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 9 Feb 2012 11:54:13 +0100 Subject: [PATCH 06/16] update __package_pacman for absent/present Signed-off-by: Nico Schottelius --- .../__package_pacman/explorer/pkg_version | 4 +-- conf/type/__package_pacman/gencode-remote | 33 +++++++++++++------ 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/conf/type/__package_pacman/explorer/pkg_version b/conf/type/__package_pacman/explorer/pkg_version index 4f612423..c33820f8 100755 --- a/conf/type/__package_pacman/explorer/pkg_version +++ b/conf/type/__package_pacman/explorer/pkg_version @@ -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. # @@ -18,7 +18,7 @@ # along with cdist. If not, see . # # -# Retrieve the status of a package - parsed dpkg output +# Retrieve the status of a package - parsed pacman output # if [ -f "$__object/parameter/name" ]; then diff --git a/conf/type/__package_pacman/gencode-remote b/conf/type/__package_pacman/gencode-remote index 3c4fdda7..1516370c 100755 --- a/conf/type/__package_pacman/gencode-remote +++ b/conf/type/__package_pacman/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. # @@ -33,21 +33,34 @@ else name="$__object_id" fi -state="$(cat "$__object/parameter/state")" +state_should="$(cat "$__object/parameter/state")" +case "$state_should" in + installed) + echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + state_should="present" + ;; + removed) + echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + state_should="absent" + ;; +esac + pkg_version="$(cat "$__object/explorer/pkg_version")" +if [ -z "$pkg_version" ]; then + state_is="absent" +else + state_is="present" +fi -case "$state" in - installed) +# Exit if nothing is needed to be done +[ "$state_is" = "$state_should ] && exit 0 - # Empty? Not installed. - if [ -z "$pkg_version" ]; then +case "$state_should" in + present) echo pacman "$pacopts" -S \"$name\" - fi ;; - removed) - if [ "$pkg_version" ]; then + absent) echo pacman "$pacopts" -R \"$name\" - fi ;; *) echo "Unknown state: $state" >&2 From 1713a70428427b8d33a7c223cfed8943f8332e78 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 9 Feb 2012 19:06:13 +0100 Subject: [PATCH 07/16] begin changes to __package_luarocks and __package_pkg_openbsd Signed-off-by: Nico Schottelius --- conf/type/__package_apt/gencode-remote | 1 - conf/type/__package_luarocks/gencode-remote | 2 +- .../type/__package_pkg_openbsd/gencode-remote | 73 ++++++++++++------- 3 files changed, 46 insertions(+), 30 deletions(-) diff --git a/conf/type/__package_apt/gencode-remote b/conf/type/__package_apt/gencode-remote index 32049a27..47e76ec8 100755 --- a/conf/type/__package_apt/gencode-remote +++ b/conf/type/__package_apt/gencode-remote @@ -31,7 +31,6 @@ state_should="$(cat "$__object/parameter/state")" # Correct pre 2.1 naming - FIXME in 2.1 case "$state_should" in - # FIXME: print warning to stderr! installed) echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 state_should="present" diff --git a/conf/type/__package_luarocks/gencode-remote b/conf/type/__package_luarocks/gencode-remote index 179022b1..29fd7e38 100755 --- a/conf/type/__package_luarocks/gencode-remote +++ b/conf/type/__package_luarocks/gencode-remote @@ -29,7 +29,7 @@ else name="$__object_id" fi -state="$(cat "$__object/parameter/state")" +state_should="$(cat "$__object/parameter/state")" is_installed="$(grep "(installed)" "$__object/explorer/pkg_status" || true)" case "$state" in diff --git a/conf/type/__package_pkg_openbsd/gencode-remote b/conf/type/__package_pkg_openbsd/gencode-remote index eee2a3d9..e8309f20 100755 --- a/conf/type/__package_pkg_openbsd/gencode-remote +++ b/conf/type/__package_pkg_openbsd/gencode-remote @@ -1,6 +1,7 @@ #!/bin/sh # # 2011 Andi Brönnimann (andi-cdist at v-net.ch) +# 2012 Nico Schottelius (nico-cdist at schottelius.org) # # This file is part of cdist. # @@ -42,44 +43,60 @@ else name="$__object_id" fi -state="$(cat "$__object/parameter/state")" +state_should="$(cat "$__object/parameter/state")" +# Correct pre 2.1 naming - FIXME in 2.1 +case "$state_should" in + installed) + echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + state_should="present" + ;; + removed) + echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + state_should="absent" + ;; +esac + pkg_version="$(cat "$__object/explorer/pkg_version")" # TODO: Shouldn't be hardcoded echo export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/$os_version/packages/$machine/ -case "$state" in - installed) - # Empty? Not installed. - if [ -z "$pkg_version" ]; then - # use this because pkg_add doesn't properly handle errors - cat << eof - status=\$(pkg_add "$pkgopts" "$name--$flavor") +if [ "$pkg_version" ]; then + state_is="present" +else + state_is="absent" +fi - # no error - if [ -n "\$status" ]; then - echo "Error: \$status" - exit 1 - fi -eof - fi - ;; - removed) - if [ "$pkg_version" ]; then - # use this because pkg_add doesn't properly handle errors - cat << eof - status=\$(pkg_delete "$pkgopts" "$name--$flavor") +[ "$state_is" = "$state_should" ] && exit 0 - # no error - if [ -n "\$status" ]; then - echo "Error: \$status" - exit 1 - fi +case "$state_should" in + present) + # use this because pkg_add doesn't properly handle errors + cat << eof +status=\$(pkg_add "$pkgopts" "$name--$flavor") + +# no error +if [ -n "\$status" ]; then + echo "Error: \$status" + exit 1 +fi +eof + ;; + + absent) + # use this because pkg_add doesn't properly handle errors + cat << eof +status=\$(pkg_delete "$pkgopts" "$name--$flavor") + +# no error +if [ -n "\$status" ]; then + echo "Error: \$status" + exit 1 +fi eof - fi ;; *) - echo "Unknown state: $state" >&2 + echo "Unknown state: $state_should" >&2 exit 1 ;; esac From aa53a3f221e6a631482a7b68c7a3cb9afc385333 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 16 Feb 2012 23:12:49 +0100 Subject: [PATCH 08/16] better warning Signed-off-by: Nico Schottelius --- conf/type/__package_apt/gencode-remote | 4 ++-- conf/type/__package_pacman/gencode-remote | 4 ++-- conf/type/__package_pkg_openbsd/gencode-remote | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/conf/type/__package_apt/gencode-remote b/conf/type/__package_apt/gencode-remote index 47e76ec8..406708c2 100755 --- a/conf/type/__package_apt/gencode-remote +++ b/conf/type/__package_apt/gencode-remote @@ -32,11 +32,11 @@ state_should="$(cat "$__object/parameter/state")" # Correct pre 2.1 naming - FIXME in 2.1 case "$state_should" in installed) - echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 state_should="present" ;; removed) - echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 state_should="absent" ;; esac diff --git a/conf/type/__package_pacman/gencode-remote b/conf/type/__package_pacman/gencode-remote index 1516370c..6d445ddc 100755 --- a/conf/type/__package_pacman/gencode-remote +++ b/conf/type/__package_pacman/gencode-remote @@ -36,11 +36,11 @@ fi state_should="$(cat "$__object/parameter/state")" case "$state_should" in installed) - echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 state_should="present" ;; removed) - echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 state_should="absent" ;; esac diff --git a/conf/type/__package_pkg_openbsd/gencode-remote b/conf/type/__package_pkg_openbsd/gencode-remote index e8309f20..0cf27a93 100755 --- a/conf/type/__package_pkg_openbsd/gencode-remote +++ b/conf/type/__package_pkg_openbsd/gencode-remote @@ -47,11 +47,11 @@ state_should="$(cat "$__object/parameter/state")" # Correct pre 2.1 naming - FIXME in 2.1 case "$state_should" in installed) - echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 state_should="present" ;; removed) - echo "WARNING: $state_should is deprecated, please change to present/absent (will be removed in cdist 2.1)" >&2 + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 state_should="absent" ;; esac From 272c12e3f7c8996a8ae4f8085d1fd1417367a24a Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 16 Feb 2012 23:15:31 +0100 Subject: [PATCH 09/16] correct parameters in __package_luarocks Signed-off-by: Nico Schottelius --- conf/type/__package_luarocks/gencode-remote | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/conf/type/__package_luarocks/gencode-remote b/conf/type/__package_luarocks/gencode-remote index 29fd7e38..17599bd3 100755 --- a/conf/type/__package_luarocks/gencode-remote +++ b/conf/type/__package_luarocks/gencode-remote @@ -30,6 +30,18 @@ else fi state_should="$(cat "$__object/parameter/state")" +# Correct pre 2.1 naming - FIXME in 2.1 +case "$state_should" in + installed) + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 + state_should="present" + ;; + removed) + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 + state_should="absent" + ;; +esac + is_installed="$(grep "(installed)" "$__object/explorer/pkg_status" || true)" case "$state" in From 76a3c2066905a9b27b33b2487cab6c0997050a2a Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 16 Feb 2012 23:16:26 +0100 Subject: [PATCH 10/16] setup state_is Signed-off-by: Nico Schottelius --- conf/type/__package_luarocks/gencode-remote | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/conf/type/__package_luarocks/gencode-remote b/conf/type/__package_luarocks/gencode-remote index 17599bd3..2c1aa763 100755 --- a/conf/type/__package_luarocks/gencode-remote +++ b/conf/type/__package_luarocks/gencode-remote @@ -42,7 +42,12 @@ case "$state_should" in ;; esac -is_installed="$(grep "(installed)" "$__object/explorer/pkg_status" || true)" + +if grep -q "(installed)" "$__object/explorer/pkg_status"; then + state_is="present" +else + state_is="absent" +fi case "$state" in installed) From 9fab782a0cbb1f9dd6af6a1e348b76a95aa7897b Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 16 Feb 2012 23:18:26 +0100 Subject: [PATCH 11/16] update __package_luarocks to new style state checking Signed-off-by: Nico Schottelius --- conf/type/__package_luarocks/gencode-remote | 35 ++++++++++----------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/conf/type/__package_luarocks/gencode-remote b/conf/type/__package_luarocks/gencode-remote index 2c1aa763..bfde7792 100755 --- a/conf/type/__package_luarocks/gencode-remote +++ b/conf/type/__package_luarocks/gencode-remote @@ -24,9 +24,9 @@ if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" + name="$(cat "$__object/parameter/name")" else - name="$__object_id" + name="$__object_id" fi state_should="$(cat "$__object/parameter/state")" @@ -49,21 +49,18 @@ else state_is="absent" fi -case "$state" in - installed) - # Install only if non-existent - if [ -z "$is_installed" ]; then - echo luarocks install \"$name\" - fi - ;; - removed) - # Remove only if existent - if [ -n "$is_installed" ]; then - echo luarocks remove \"$name\" - fi - ;; - *) - echo "Unknown state: $state" >&2 - exit 1 - ;; +# Leave if nothing is to be done +[ "$state_is" = "$state_should" ] && exit 0 + +case "$state_should" in + present) + echo luarocks install \"$name\" + ;; + absent) + echo luarocks remove \"$name\" + ;; + *) + echo "Unknown state: $state" >&2 + exit 1 + ;; esac From e4aafe0af96ac6fc79faf99580defe8964a38a04 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 16 Feb 2012 23:23:19 +0100 Subject: [PATCH 12/16] support absent/present in __package_rubygem Signed-off-by: Nico Schottelius --- .../type/__package_pkg_openbsd/gencode-remote | 1 - conf/type/__package_rubygem/gencode-remote | 57 +++++++++++-------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/conf/type/__package_pkg_openbsd/gencode-remote b/conf/type/__package_pkg_openbsd/gencode-remote index 0cf27a93..97f3f101 100755 --- a/conf/type/__package_pkg_openbsd/gencode-remote +++ b/conf/type/__package_pkg_openbsd/gencode-remote @@ -29,7 +29,6 @@ os_version="$(cat "$__global/explorer/os_version")" machine="$(cat "$__global/explorer/machine")" - if [ -f "$__object/parameter/flavor" ]; then flavor="$(cat "$__object/parameter/flavor")" fi diff --git a/conf/type/__package_rubygem/gencode-remote b/conf/type/__package_rubygem/gencode-remote index daaba524..b48874c7 100755 --- a/conf/type/__package_rubygem/gencode-remote +++ b/conf/type/__package_rubygem/gencode-remote @@ -21,31 +21,42 @@ # Manage Rubygem packages # - if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" + name="$(cat "$__object/parameter/name")" else - name="$__object_id" + name="$__object_id" fi -state="$(cat "$__object/parameter/state")" -is_installed="$(grep "true" "$__object/explorer/pkg_status" || true)" - -case "$state" in - installed) - # Install only if non-existent - if [ -z "$is_installed" ]; then - echo gem install \"$name\" --no-ri --no-rdoc - fi - ;; - removed) - # Remove only if existent - if [ -n "$is_installed" ]; then - echo gem uninstall \"$name\" - fi - ;; - *) - echo "Unknown state: $state" >&2 - exit 1 - ;; +state_should="$(cat "$__object/parameter/state")" +# Correct pre 2.1 naming - FIXME in 2.1 +case "$state_should" in + installed) + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 + state_should="present" + ;; + removed) + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 + state_should="absent" + ;; +esac + +if grep -q true "$__object/explorer/pkg_status"; then + state_is="present" +else + state_is="absent" +fi + +[ "$state_is" = "$state_should ] && exit 0 + +case "$state_should" in + present) + echo gem install \"$name\" --no-ri --no-rdoc + ;; + absent) + echo gem uninstall \"$name\" + ;; + *) + echo "Unknown state: $state" >&2 + exit 1 + ;; esac From 2f01fd6ce05072faf76c4ee74c25f8b579719585 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 16 Feb 2012 23:26:23 +0100 Subject: [PATCH 13/16] support absent/present in __package_yum Signed-off-by: Nico Schottelius --- conf/type/__package_yum/gencode-remote | 46 +++++++++++++++++--------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/conf/type/__package_yum/gencode-remote b/conf/type/__package_yum/gencode-remote index b24ed220..35e8bd6b 100755 --- a/conf/type/__package_yum/gencode-remote +++ b/conf/type/__package_yum/gencode-remote @@ -27,7 +27,17 @@ else name="$__object_id" fi -state="$(cat "$__object/parameter/state")" +state_should="$(cat "$__object/parameter/state")" +case "$state_should" in + installed) + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 + state_should="present" + ;; + removed) + echo "WARNING: $state_should is deprecated and will be removed in cdist 2.1. Please change to present/absent." >&2 + state_should="absent" + ;; +esac if grep -q -E "(centos|redhat|amazon)" "$__global/explorer/os"; then opts="-y --quiet" @@ -37,19 +47,23 @@ fi not_installed="^no package provides" -case "$state" in - installed) - if grep -q "$not_installed" "$__object/explorer/pkg_version"; then - echo yum $opts install \"$name\" - fi - ;; - removed) - if ! grep -q "$not_installed" "$__object/explorer/pkg_version"; then - echo yum $opts remove \"$name\" - fi - ;; - *) - echo "Unknown state: $state" >&2 - exit 1 - ;; +if grep -q "$not_installed" "$__object/explorer/pkg_version"; then + state_is="absent" +else + state_is="present" +fi + +[ "$state_is" = "$state_should ] && exit 0 + +case "$state_should" in + present) + echo yum $opts install \"$name\" + ;; + absent) + echo yum $opts remove \"$name\" + ;; + *) + echo "Unknown state: $state_should" >&2 + exit 1 + ;; esac From 48f3252de58ec1504efc270fc338e1f72d20763c Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 16 Feb 2012 23:29:51 +0100 Subject: [PATCH 14/16] correct state error message to use new variable Signed-off-by: Nico Schottelius --- conf/type/__package_apt/gencode-remote | 2 +- conf/type/__package_luarocks/gencode-remote | 2 +- conf/type/__package_pacman/gencode-remote | 2 +- conf/type/__package_pip/gencode-remote | 4 ++++ conf/type/__package_rubygem/gencode-remote | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/conf/type/__package_apt/gencode-remote b/conf/type/__package_apt/gencode-remote index 406708c2..ed5ca5bb 100755 --- a/conf/type/__package_apt/gencode-remote +++ b/conf/type/__package_apt/gencode-remote @@ -61,7 +61,7 @@ if [ "$state_is" != "$state_should" ]; then echo $aptget remove \"$name\" ;; *) - echo "Unknown state: $state" >&2 + echo "Unknown state: $state_should" >&2 exit 1 ;; esac diff --git a/conf/type/__package_luarocks/gencode-remote b/conf/type/__package_luarocks/gencode-remote index bfde7792..b4970daa 100755 --- a/conf/type/__package_luarocks/gencode-remote +++ b/conf/type/__package_luarocks/gencode-remote @@ -60,7 +60,7 @@ case "$state_should" in echo luarocks remove \"$name\" ;; *) - echo "Unknown state: $state" >&2 + echo "Unknown state: $state_should" >&2 exit 1 ;; esac diff --git a/conf/type/__package_pacman/gencode-remote b/conf/type/__package_pacman/gencode-remote index 6d445ddc..5c45fbce 100755 --- a/conf/type/__package_pacman/gencode-remote +++ b/conf/type/__package_pacman/gencode-remote @@ -63,7 +63,7 @@ case "$state_should" in echo pacman "$pacopts" -R \"$name\" ;; *) - echo "Unknown state: $state" >&2 + echo "Unknown state: $state_should" >&2 exit 1 ;; esac diff --git a/conf/type/__package_pip/gencode-remote b/conf/type/__package_pip/gencode-remote index e60d74c5..0f15abdc 100644 --- a/conf/type/__package_pip/gencode-remote +++ b/conf/type/__package_pip/gencode-remote @@ -47,4 +47,8 @@ case "$state_should" in absent) echo $pip uninstall -q -y pyro ;; + *) + echo "Unknown state: $state_should" >&2 + exit 1 + ;; esac diff --git a/conf/type/__package_rubygem/gencode-remote b/conf/type/__package_rubygem/gencode-remote index b48874c7..cca016cf 100755 --- a/conf/type/__package_rubygem/gencode-remote +++ b/conf/type/__package_rubygem/gencode-remote @@ -56,7 +56,7 @@ case "$state_should" in echo gem uninstall \"$name\" ;; *) - echo "Unknown state: $state" >&2 + echo "Unknown state: $state_should" >&2 exit 1 ;; esac From 6afcb0e9ee32794719cb0bc0f406eebdf3e62d1f Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 16 Feb 2012 23:34:22 +0100 Subject: [PATCH 15/16] indent + simplify Signed-off-by: Nico Schottelius --- conf/type/__package_apt/gencode-remote | 28 +++++++++++------------ conf/type/__package_pacman/gencode-remote | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/conf/type/__package_apt/gencode-remote b/conf/type/__package_apt/gencode-remote index ed5ca5bb..f0c6090b 100755 --- a/conf/type/__package_apt/gencode-remote +++ b/conf/type/__package_apt/gencode-remote @@ -52,17 +52,17 @@ esac aptget="DEBIAN_FRONTEND=noninteractive apt-get --quiet --yes" -if [ "$state_is" != "$state_should" ]; then - case "$state_should" in - present) - echo $aptget install \"$name\" - ;; - absent) - echo $aptget remove \"$name\" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; - esac -fi +[ "$state_is" = "$state_should" ] && exit 0 + +case "$state_should" in + present) + echo $aptget install \"$name\" + ;; + absent) + echo $aptget remove \"$name\" + ;; + *) + echo "Unknown state: $state_should" >&2 + exit 1 + ;; +esac diff --git a/conf/type/__package_pacman/gencode-remote b/conf/type/__package_pacman/gencode-remote index 5c45fbce..73ed0997 100755 --- a/conf/type/__package_pacman/gencode-remote +++ b/conf/type/__package_pacman/gencode-remote @@ -53,7 +53,7 @@ else fi # Exit if nothing is needed to be done -[ "$state_is" = "$state_should ] && exit 0 +[ "$state_is" = "$state_should" ] && exit 0 case "$state_should" in present) From 31aa102b209e066b4abacd4b5b13fa6e5d1cd655 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 16 Feb 2012 23:37:08 +0100 Subject: [PATCH 16/16] ++changes(2.0.8) Signed-off-by: Nico Schottelius --- doc/changelog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/changelog b/doc/changelog index ab006435..0bdbeb32 100644 --- a/doc/changelog +++ b/doc/changelog @@ -9,6 +9,8 @@ Changelog * Cleanup: Do not output failing script, but path to script only * Cleanup: Remove support for __debug variable in manifests (Type != Core debugging) + * Cleanup: Change __package_* to support absent/present (default state + name now). The values removed/installed will be removed in cdist 2.1. * Feature Core: Support boolean parameters (Steven Armstrong) 2.0.7: 2012-02-13