Code Review
/
puppet-modules
/
puppetlabs-apt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Add ability to specify hash of apt sources in hiera
[puppet-modules/puppetlabs-apt.git]
/
manifests
/
init.pp
diff --git
a/manifests/init.pp
b/manifests/init.pp
index b106ad490979ce67522382eb02f54a9ce7a1a15d..33bf7730434c73b16dc695aabea11134072ff308 100644
(file)
--- a/
manifests/init.pp
+++ b/
manifests/init.pp
@@
-25,24
+25,34
@@
class apt(
$always_apt_update = false,
$disable_keys = undef,
class apt(
$always_apt_update = false,
$disable_keys = undef,
- $proxy_host =
false
,
+ $proxy_host =
undef
,
$proxy_port = '8080',
$purge_sources_list = false,
$purge_sources_list_d = false,
$proxy_port = '8080',
$purge_sources_list = false,
$purge_sources_list_d = false,
+ $purge_preferences = false,
$purge_preferences_d = false,
$purge_preferences_d = false,
- $update_timeout = undef
+ $update_timeout = undef,
+ $sources = undef
) {
include apt::params
include apt::update
) {
include apt::params
include apt::update
- validate_bool($purge_sources_list, $purge_sources_list_d, $purge_preferences_d)
+ validate_bool($purge_sources_list, $purge_sources_list_d,
+ $purge_preferences, $purge_preferences_d)
$sources_list_content = $purge_sources_list ? {
false => undef,
true => "# Repos managed by puppet.\n",
}
$sources_list_content = $purge_sources_list ? {
false => undef,
true => "# Repos managed by puppet.\n",
}
+ $preferences_content = $purge_preferences ? {
+ false => undef,
+ true => "Explanation: Preferences managed by Puppet\n
+Explanation: We need a bogus package line because of Debian Bug #732746\n
+Package: bogus-package\n",
+ }
+
if $always_apt_update == true {
Exec <| title=='apt_update' |> {
refreshonly => false,
if $always_apt_update == true {
Exec <| title=='apt_update' |> {
refreshonly => false,
@@
-75,6
+85,15
@@
class apt(
notify => Exec['apt_update'],
}
notify => Exec['apt_update'],
}
+ file { 'apt-preferences':
+ ensure => present,
+ path => "${root}/preferences",
+ owner => root,
+ group => root,
+ mode => '0644',
+ content => $preferences_content,
+ }
+
file { 'preferences.d':
ensure => directory,
path => $preferences_d,
file { 'preferences.d':
ensure => directory,
path => $preferences_d,
@@
-103,7
+122,7
@@
class apt(
}
$proxy_set = $proxy_host ? {
}
$proxy_set = $proxy_host ? {
-
false
=> absent,
+
undef
=> absent,
default => present
}
default => present
}
@@
-118,4
+137,10
@@
class apt(
anchor { 'apt::update':
require => Class['apt::update'],
}
anchor { 'apt::update':
require => Class['apt::update'],
}
+
+ # manage sources if present
+ if $sources != undef {
+ validate_hash($sources)
+ create_resources('apt::source', $sources)
+ }
}
}