summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2012-04-15 13:18:59 +0200
committermh <mh@immerda.ch>2012-04-15 13:19:45 +0200
commitbdc244667161c3fa9140632c535921db61468800 (patch)
tree2940f0ca9d034cdaae8136d3da68aecb407e812d /manifests
parent7727549c02c97e6a20dffcbf996bce90c252c793 (diff)
parentee33741aa1fb892cacd93d816f43093a201044a6 (diff)
Merge remote-tracking branch 'shared/master'
Conflicts: README
Diffstat (limited to 'manifests')
-rw-r--r--manifests/apt_conf.pp7
-rw-r--r--manifests/dot_d_directories.pp22
-rw-r--r--manifests/init.pp19
-rw-r--r--manifests/sources_list.pp8
4 files changed, 38 insertions, 18 deletions
diff --git a/manifests/apt_conf.pp b/manifests/apt_conf.pp
index c484ec3..fe07546 100644
--- a/manifests/apt_conf.pp
+++ b/manifests/apt_conf.pp
@@ -12,10 +12,15 @@ define apt::apt_conf(
fail("Only one of \$source or \$content must specified for apt_conf ${name}")
}
+ include apt::dot_d_directories
+
+ # One would expect the 'file' resource on sources.list.d to trigger an
+ # apt-get update when files are added or modified in the directory, but it
+ # apparently doesn't.
file { "/etc/apt/apt.conf.d/${name}":
ensure => $ensure,
+ owner => root, group => 0, mode => 0644,
notify => Exec["refresh_apt"],
- owner => root, group => 0, mode => 0644;
}
if $source {
diff --git a/manifests/dot_d_directories.pp b/manifests/dot_d_directories.pp
new file mode 100644
index 0000000..742aad4
--- /dev/null
+++ b/manifests/dot_d_directories.pp
@@ -0,0 +1,22 @@
+class apt::dot_d_directories {
+
+ # watch .d directories and ensure they are present
+ file {
+ "/etc/apt/apt.conf.d":
+ ensure => directory,
+ checksum => mtime,
+ notify => Exec['refresh_apt'];
+ "/etc/apt/sources.list.d":
+ ensure => directory,
+ checksum => mtime,
+ notify => Exec['refresh_apt'];
+ }
+
+ exec {
+ # "&& sleep 1" is workaround for older(?) clients
+ 'refresh_apt':
+ command => '/usr/bin/apt-get update && sleep 1',
+ refreshonly => true,
+ }
+
+}
diff --git a/manifests/init.pp b/manifests/init.pp
index 3a816d2..960f18d 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -85,7 +85,8 @@ class apt {
'' => template( "apt/$operatingsystem/sources.list.erb"),
default => $custom_sources_list
},
- require => Package['lsb'];
+ require => Package['lsb'],
+ notify => Exec['refresh_apt'],
}
apt_conf { "02show_upgraded":
@@ -128,21 +129,7 @@ class apt {
require => [ Apt_conf['02show_upgraded'], Apt_conf['03clean'] ];
}
- # watch .d directories and ensure they are present
- file { "/etc/apt/apt.conf.d": ensure => directory, checksum => mtime; }
- file { "/etc/apt/sources.list.d":
- ensure => directory,
- checksum => mtime,
- notify => Exec['refresh_apt'],
- }
-
- exec {
- # "&& sleep 1" is workaround for older(?) clients
- 'refresh_apt':
- command => '/usr/bin/apt-get update && sleep 1',
- refreshonly => true,
- subscribe => [ File['/etc/apt/apt.conf.d'], Config_file['/etc/apt/sources.list'] ];
- }
+ include apt::dot_d_directories
## This package should really always be current
package { "debian-archive-keyring": ensure => latest }
diff --git a/manifests/sources_list.pp b/manifests/sources_list.pp
index 86b35a7..499116d 100644
--- a/manifests/sources_list.pp
+++ b/manifests/sources_list.pp
@@ -11,9 +11,15 @@ define apt::sources_list (
fail("Only one of \$source or \$content must specified for apt_sources_snippet ${name}")
}
+ include apt::dot_d_directories
+
+ # One would expect the 'file' resource on sources.list.d to trigger an
+ # apt-get update when files are added or modified in the directory, but it
+ # apparently doesn't.
file { "/etc/apt/sources.list.d/${name}":
ensure => $ensure,
- owner => root, group => 0, mode => 0644;
+ owner => root, group => 0, mode => 0644,
+ notify => Exec['refresh_apt'],
}
if $source {