diff options
author | Gabriel Filion <lelutin@gmail.com> | 2012-04-09 01:33:13 -0400 |
---|---|---|
committer | Gabriel Filion <lelutin@gmail.com> | 2012-04-09 01:38:30 -0400 |
commit | 4d0ddd005795592f56496d8d39dc37ee86fac038 (patch) | |
tree | 209b2fe420c7ddb258369668149c7f82637348c2 | |
parent | 66433e665e611f305b0f65c61558a0ec8232da00 (diff) | |
download | puppet-apt-4d0ddd005795592f56496d8d39dc37ee86fac038.tar.gz puppet-apt-4d0ddd005795592f56496d8d39dc37ee86fac038.tar.bz2 |
Refactor: manage .d directories when using sources_list and apt_conf
The .d directories are only managed by the main 'apt' class. However,
both 'sources_list' and 'apt_conf' defines depend on those directories.
So in practice, the defines have an implicit need for those directories
to be somehow managed.
Let's turn this into an explicit relation, and include the directories
in the defines.
This makes it possible to use both defines without having to include the
main 'apt' class. (maybe when using puppet apply?)
Signed-off-by: Gabriel Filion <lelutin@gmail.com>
-rw-r--r-- | manifests/apt_conf.pp | 2 | ||||
-rw-r--r-- | manifests/dot_d_directories.pp | 22 | ||||
-rw-r--r-- | manifests/init.pp | 16 | ||||
-rw-r--r-- | manifests/sources_list.pp | 2 |
4 files changed, 27 insertions, 15 deletions
diff --git a/manifests/apt_conf.pp b/manifests/apt_conf.pp index c484ec3..03ae1ac 100644 --- a/manifests/apt_conf.pp +++ b/manifests/apt_conf.pp @@ -12,6 +12,8 @@ define apt::apt_conf( fail("Only one of \$source or \$content must specified for apt_conf ${name}") } + include apt::dot_d_directories + file { "/etc/apt/apt.conf.d/${name}": ensure => $ensure, notify => Exec["refresh_apt"], 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 b5be91f..0d58c61 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -128,21 +128,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..edf7f22 100644 --- a/manifests/sources_list.pp +++ b/manifests/sources_list.pp @@ -11,6 +11,8 @@ define apt::sources_list ( fail("Only one of \$source or \$content must specified for apt_sources_snippet ${name}") } + include apt::dot_d_directories + file { "/etc/apt/sources.list.d/${name}": ensure => $ensure, owner => root, group => 0, mode => 0644; |