From 13a0b4484fc85be0821f0b72c11c9487c890b546 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Fri, 8 Jun 2012 18:18:50 +0200 Subject: Support multiple APT preferences snippets for the same package name pattern. This is implemented by adding a "package" parameter to apt::preferences_snippet, so that define names can be kept unique while the package names are not necessarily. Closes: Redmine#3468. --- manifests/preferences_snippet.pp | 1 + 1 file changed, 1 insertion(+) (limited to 'manifests/preferences_snippet.pp') diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index 91b3dde..908ca73 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -1,4 +1,5 @@ define apt::preferences_snippet( + $package = $name, $ensure = 'present', $source = '', $release, -- cgit v1.2.3 From 2e4d22ddd948b6d6f1532654e3dea53fa4b9f7d1 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Fri, 8 Jun 2012 18:30:23 +0200 Subject: Allow passing arbitrary Pin value to apt::preferences_snippet. Closes: Redmine#3467. --- README | 6 ++++++ manifests/preferences_snippet.pp | 23 ++++++++++++++++++++--- templates/preferences_snippet.erb | 2 +- templates/preferences_snippet_release.erb | 4 ++++ 4 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 templates/preferences_snippet_release.erb (limited to 'manifests/preferences_snippet.pp') diff --git a/README b/README index 82d216a..2e9d48f 100644 --- a/README +++ b/README @@ -321,6 +321,12 @@ Example: priority => 1; } + apt::preferences_snippet{ + 'ttdnsd': + pin => 'origin deb.torproject.org', + priority => 999; + } + apt::preseeded_package ---------------------- diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index 908ca73..e00c4d1 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -2,7 +2,8 @@ define apt::preferences_snippet( $package = $name, $ensure = 'present', $source = '', - $release, + $release = '', + $pin = '', $priority ) { @@ -10,6 +11,13 @@ define apt::preferences_snippet( 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") + } + include apt::preferences concat::fragment{"apt_preference_${name}": @@ -22,8 +30,17 @@ define apt::preferences_snippet( # lenny, we can't generalize without going into ugly special-casing. case $source { '': { - Concat::Fragment["apt_preference_${name}"]{ - content => template("apt/preferences_snippet.erb") + case $release { + '': { + Concat::Fragment["apt_preference_${name}"]{ + content => template("apt/preferences_snippet.erb") + } + } + default: { + Concat::Fragment["apt_preference_${name}"]{ + content => template("apt/preferences_snippet_release.erb") + } + } } } default: { diff --git a/templates/preferences_snippet.erb b/templates/preferences_snippet.erb index 0c4e136..fd15ce6 100644 --- a/templates/preferences_snippet.erb +++ b/templates/preferences_snippet.erb @@ -1,4 +1,4 @@ Package: <%= package %> -Pin: release a=<%= release %> +Pin: <%= pin %> Pin-Priority: <%= priority %> diff --git a/templates/preferences_snippet_release.erb b/templates/preferences_snippet_release.erb new file mode 100644 index 0000000..0c4e136 --- /dev/null +++ b/templates/preferences_snippet_release.erb @@ -0,0 +1,4 @@ +Package: <%= package %> +Pin: release a=<%= release %> +Pin-Priority: <%= priority %> + -- cgit v1.2.3 From 02bd3269948f1a3c5a586e581a7fec22da69a2cc Mon Sep 17 00:00:00 2001 From: intrigeri Date: Mon, 18 Jun 2012 22:57:13 +0200 Subject: Make apt::preferences_snippet support Puppet < 2.7 again, when the 'package' parameter is not set. Details: https://labs.riseup.net/code/issues/3467 https://labs.riseup.net/code/issues/3468 --- manifests/preferences_snippet.pp | 7 ++++++- templates/preferences_snippet.erb | 2 +- templates/preferences_snippet_release.erb | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) (limited to 'manifests/preferences_snippet.pp') diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index e00c4d1..6a8e6bc 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -1,5 +1,5 @@ define apt::preferences_snippet( - $package = $name, + $package = false, $ensure = 'present', $source = '', $release = '', @@ -7,6 +7,11 @@ define apt::preferences_snippet( $priority ) { + $real_package = $package ? { + false => $name, + default => $package, + } + if $custom_preferences == false { fail("Trying to define a preferences_snippet with \$custom_preferences set to false.") } diff --git a/templates/preferences_snippet.erb b/templates/preferences_snippet.erb index fd15ce6..b7acaab 100644 --- a/templates/preferences_snippet.erb +++ b/templates/preferences_snippet.erb @@ -1,4 +1,4 @@ -Package: <%= package %> +Package: <%= real_package %> Pin: <%= pin %> Pin-Priority: <%= priority %> diff --git a/templates/preferences_snippet_release.erb b/templates/preferences_snippet_release.erb index 0c4e136..845d23f 100644 --- a/templates/preferences_snippet_release.erb +++ b/templates/preferences_snippet_release.erb @@ -1,4 +1,4 @@ -Package: <%= package %> +Package: <%= real_package %> Pin: release a=<%= release %> Pin-Priority: <%= priority %> -- cgit v1.2.3