From 4ebb7d463ed6e85a715f0a311378bf673a907042 Mon Sep 17 00:00:00 2001 From: Gabriel Filion Date: Mon, 25 Oct 2010 12:17:50 -0400 Subject: Fix apt::preferences::absent Currently, setting the $custom_preferences variable to false fails because of the /etc/apt/preferences concatenated_file being re-defined. Fix this by setting dependencies on the resource only when we expect to create the /etc/apt/preferences file. Also, since there is no "ensure" parameter to concatenated_file, use a simple file resource to ensure that it is removed. Signed-off-by: Gabriel Filion --- manifests/init.pp | 6 +++++- manifests/preferences/absent.pp | 5 +---- manifests/preferences_snippet.pp | 4 ++++ manifests/unattended_upgrades.pp | 8 ++++++-- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 8588932..dde9c29 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -96,7 +96,11 @@ class apt { alias => "custom_keys", subscribe => File["${apt_base_dir}/keys.d"], refreshonly => true, - before => Concatenated_file[apt_config]; + } + if $custom_preferences != false { + Exec["custom_keys"] { + before => Concatenated_file[apt_config], + } } } diff --git a/manifests/preferences/absent.pp b/manifests/preferences/absent.pp index 3131aff..d8b2e10 100644 --- a/manifests/preferences/absent.pp +++ b/manifests/preferences/absent.pp @@ -1,8 +1,5 @@ class apt::preferences::absent { - include common::moduledir - $apt_preferences_dir = "${common::moduledir::module_dir_path}/apt/preferences" - concatenated_file{'/etc/apt/preferences': - dir => $apt_preferences_dir, + file {'/etc/apt/preferences': ensure => absent, } } diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index a723206..9da7a8e 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -4,6 +4,10 @@ define apt::preferences_snippet( $release, $priority ){ + if $custom_preferences == false { + fail("Trying to define a preferences_snippet with \$custom_preferences set to false.") + } + include apt::preferences file { "${apt::preferences::apt_preferences_dir}/${name}": diff --git a/manifests/unattended_upgrades.pp b/manifests/unattended_upgrades.pp index fb04193..f52448d 100644 --- a/manifests/unattended_upgrades.pp +++ b/manifests/unattended_upgrades.pp @@ -7,8 +7,12 @@ class apt::unattended_upgrades { apt_conf { "50unattended-upgrades": source => ["puppet:///modules/site-apt/50unattended-upgrades", "puppet:///modules/apt/50unattended-upgrades" ], - - before => Concatenated_file[apt_config], require => Package['unattended-upgrades'], } + + if $custom_preferences != false { + Apt_conf["50unattended-upgrades"] { + before => Concatenated_file[apt_config], + } + } } -- cgit v1.2.3