From d51e2af9d452731f63b2fe16391e9cd2ff9d640f Mon Sep 17 00:00:00 2001 From: intrigeri Date: Wed, 23 Jan 2013 23:10:40 +0100 Subject: Don't check for a package priority to be set when removing an APT preferences snippet. The problem I'm facing is that the sanity checks prevent one from using a simple: apt::preferences_snippet { "bla": ensure => absent } So, first set a default value for the `priority' parameter, so that it's not required anymore. Second, add a sanity check to error out when priority is not set, to get the safe old behaviour. Then, wrap all sanity checks about arguments within a "if $ensure == 'present'" block. --- manifests/preferences_snippet.pp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index 0bff85c..5ae748b 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -1,5 +1,5 @@ define apt::preferences_snippet ( - $priority, + $priority = undef, $package = false, $ensure = 'present', $source = '', @@ -12,15 +12,21 @@ define apt::preferences_snippet ( default => $package, } - if $custom_preferences == false { - fail('Trying to define a preferences_snippet with $custom_preferences set to false.') - } + if $ensure == 'present' { + if $custom_preferences == false { + fail('Trying to define a preferences_snippet with $custom_preferences set to false.') + } - if !$pin and !$release { - fail('apt::preferences_snippet requires one of the \'pin\' or \'release\' argument to be set') - } - if $pin and $release { - fail('apt::preferences_snippet requires either a \'pin\' or \'release\' argument, not both') + if $priority == undef { + fail('apt::preferences_snippet requires the \'priority\' argument to be set') + } + + if !$pin and !$release { + fail('apt::preferences_snippet requires one of the \'pin\' or \'release\' argument to be set') + } + if $pin and $release { + fail('apt::preferences_snippet requires either a \'pin\' or \'release\' argument, not both') + } } file { "/etc/apt/preferences.d/${name}": -- cgit v1.2.3