3 $always_apt_update = false,
4 $apt_update_frequency = 'reluctantly',
5 $purge_sources_list = false,
6 $purge_sources_list_d = false,
7 $purge_preferences = false,
8 $purge_preferences_d = false,
9 $update_timeout = undef,
10 $update_tries = undef,
12 ) inherits ::apt::params {
16 $frequency_options = ['always','daily','weekly','reluctantly']
17 validate_re($apt_update_frequency, $frequency_options)
19 validate_bool($purge_sources_list, $purge_sources_list_d,
20 $purge_preferences, $purge_preferences_d)
22 $sources_list_content = $purge_sources_list ? {
24 true => "# Repos managed by puppet.\n",
27 if $always_apt_update == true {
28 Exec <| title=='apt_update' |> {
33 apt::setting { 'conf-update-stamp':
34 base_name => 'update-stamp',
35 setting_type => 'conf',
37 content => template('apt/_header.erb', 'apt/15update-stamp.erb'),
40 file { 'sources.list':
42 path => $::apt::sources_list,
46 content => $sources_list_content,
47 notify => Exec['apt_update'],
50 file { 'sources.list.d':
52 path => $::apt::sources_list_d,
55 purge => $purge_sources_list_d,
56 recurse => $purge_sources_list_d,
57 notify => Exec['apt_update'],
60 if $purge_preferences {
61 file { 'apt-preferences':
63 path => $::apt::preferences,
67 file { 'preferences.d':
69 path => $::apt::preferences_d,
72 purge => $purge_preferences_d,
73 recurse => $purge_preferences_d,
76 # Need anchor to provide containment for dependencies.
77 anchor { 'apt::update':
78 require => Class['apt::update'],
81 # manage sources if present
82 if $sources != undef {
83 validate_hash($sources)
84 create_resources('apt::source', $sources)