refactor: simplify and remove inline content
Simplifications: make apt_conf_snippet repeat less code, make code that generates sources.list more concise. Remove all inline content in favor of templates and static files. The ability to include sources for static files was needed for the main 'preferences' file, so it was added to the preferences_snippet define. Signed-off-by: Gabriel Filion <lelutin@gmail.com>
This commit is contained in:
parent
ac76a5d52d
commit
d97a49b7b2
6 changed files with 44 additions and 43 deletions
|
@ -5,3 +5,4 @@ Pin-Priority: 1
|
|||
Package: *
|
||||
Pin: release a=testing
|
||||
Pin-Priority: 2
|
||||
|
4
files/preferences_snippet.erb
Normal file
4
files/preferences_snippet.erb
Normal file
|
@ -0,0 +1,4 @@
|
|||
Package: <%= name %>
|
||||
Pin: release a=<%= release %>
|
||||
Pin-Priority: <%= priority %>
|
||||
|
|
@ -10,20 +10,20 @@ define apt::apt_conf_snippet(
|
|||
fail("Only one of \$source or \$content must specified for apt_conf_snippet ${name}")
|
||||
}
|
||||
|
||||
if $source {
|
||||
file { "/etc/apt/apt.conf.d/${name}":
|
||||
ensure => $ensure,
|
||||
source => $source,
|
||||
notify => Exec["refresh_apt"],
|
||||
owner => root, group => 0, mode => 0600;
|
||||
}
|
||||
|
||||
if $source {
|
||||
File["/etc/apt/apt.conf.d/${name}"] {
|
||||
source => $source,
|
||||
}
|
||||
}
|
||||
else {
|
||||
file { "/etc/apt/apt.conf.d/${name}":
|
||||
ensure => $ensure,
|
||||
File["/etc/apt/apt.conf.d/${name}"] {
|
||||
content => $content,
|
||||
notify => Exec["refresh_apt"],
|
||||
owner => root, group => 0, mode => 0600;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,24 +19,17 @@ class apt {
|
|||
}
|
||||
|
||||
include lsb
|
||||
case $custom_sources_list {
|
||||
'': {
|
||||
config_file {
|
||||
# include main, security and backports
|
||||
# additional sources should be included via the custom_sources_template
|
||||
# define
|
||||
"/etc/apt/sources.list":
|
||||
content => template( "apt/$operatingsystem/sources.list.erb"),
|
||||
content => $custom_sources_list ? {
|
||||
'' => template( "apt/$operatingsystem/sources.list.erb"),
|
||||
default => $custom_sources_list
|
||||
},
|
||||
require => Package['lsb'];
|
||||
}
|
||||
}
|
||||
default: {
|
||||
config_file { "/etc/apt/sources.list":
|
||||
content => $custom_sources_list,
|
||||
require => Package['lsb'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# 01autoremove already present by default
|
||||
apt_conf_snippet{ "02show_upgraded":
|
||||
|
|
|
@ -4,18 +4,9 @@ class apt::preferences {
|
|||
$apt_preferences_dir = "${common::moduledir::module_dir_path}/apt/preferences"
|
||||
module_dir{'apt/preferences': }
|
||||
file{"${apt_preferences_dir}_header":
|
||||
content => $custom_preferences ? {
|
||||
'' => 'Package: *
|
||||
Pin: release a=unstable
|
||||
Pin-Priority: 1
|
||||
|
||||
Package: *
|
||||
Pin: release a=testing
|
||||
Pin-Priority: 2
|
||||
|
||||
',
|
||||
default => $custom_preferences
|
||||
},
|
||||
source => ["puppet:///modules/site-apt/${fqdn}/preferences",
|
||||
"puppet:///modules/site-apt/preferences",
|
||||
"puppet:///modules/apt/preferences"]
|
||||
}
|
||||
|
||||
concatenated_file{'/etc/apt/preferences':
|
||||
|
|
|
@ -1,17 +1,29 @@
|
|||
define apt::preferences_snippet(
|
||||
$ensure = 'present',
|
||||
$source = '',
|
||||
$release,
|
||||
$priority
|
||||
){
|
||||
include apt::preferences
|
||||
|
||||
file { "${apt::preferences::apt_preferences_dir}/${name}":
|
||||
ensure => $ensure,
|
||||
content => "Package: ${name}
|
||||
Pin: release a=${release}
|
||||
Pin-Priority: ${priority}
|
||||
|
||||
",
|
||||
#TODO this template is somewhat limited
|
||||
notify => Exec["concat_${apt::preferences::apt_preferences_dir}"],
|
||||
owner => root, group => 0, mode => 0600;
|
||||
}
|
||||
|
||||
# This should really work in the same manner as sources_list and apt_conf
|
||||
# snippets, but since the preferences.d directory cannot be used in Debian
|
||||
# lenny, we can't generalize without going into ugly special-casing.
|
||||
case $source {
|
||||
'' =>
|
||||
File["${apt::preferences::apt_preferences_dir/${name}"] {
|
||||
content => template("apt/preferences_snippet.erb")
|
||||
},
|
||||
default =>
|
||||
File["${apt::preferences::apt_preferences_dir/${name}"] {
|
||||
source => $source
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue