5 $always_apt_update = false,
6 $apt_update_frequency = 'reluctantly',
7 $update_timeout = undef,
10 ) inherits ::apt::params {
14 $frequency_options = ['always','daily','weekly','reluctantly']
15 validate_re($apt_update_frequency, $frequency_options)
18 if $purge['sources.list'] {
19 validate_bool($purge['sources.list'])
21 if $purge['sources.list.d'] {
22 validate_bool($purge['sources.list.d'])
24 if $purge['preferences'] {
25 validate_bool($purge['preferences'])
27 if $purge['preferences.d'] {
28 validate_bool($purge['preferences.d'])
31 $_purge = merge($::apt::purge_defaults, $purge)
35 validate_string($proxy['host'])
38 unless is_integer($proxy['port']) {
39 fail('$proxy port must be an integer')
43 validate_bool($proxy['https'])
46 $_proxy = merge($apt::proxy_defaults, $proxy)
49 apt::setting { 'conf-proxy':
51 content => template('apt/_header.erb', 'apt/proxy.erb'),
55 $sources_list_content = $_purge['sources.list'] ? {
57 true => "# Repos managed by puppet.\n",
60 $preferences_ensure = $_purge['preferences'] ? {
65 if $always_apt_update == true {
66 Exec <| title=='apt_update' |> {
71 apt::setting { 'conf-update-stamp':
73 content => template('apt/_header.erb', 'apt/15update-stamp.erb'),
76 file { 'sources.list':
78 path => $::apt::sources_list,
82 content => $sources_list_content,
83 notify => Exec['apt_update'],
86 file { 'sources.list.d':
88 path => $::apt::sources_list_d,
92 purge => $_purge['sources.list.d'],
93 recurse => $_purge['sources.list.d'],
94 notify => Exec['apt_update'],
98 ensure => $preferences_ensure,
99 path => $::apt::preferences,
103 notify => Exec['apt_update'],
106 file { 'preferences.d':
108 path => $::apt::preferences_d,
112 purge => $_purge['preferences.d'],
113 recurse => $_purge['preferences.d'],
114 notify => Exec['apt_update'],
117 # Need anchor to provide containment for dependencies.
118 anchor { 'apt::update':
119 require => Class['apt::update'],
122 # manage sources if present
123 if $sources != undef {
124 validate_hash($sources)
125 create_resources('apt::source', $sources)