X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Fupdate.pp;h=d9b338d952a23bfef373dd987d151ef8a2467fab;hb=049e993511dfb3d9de2bd436a867917d17f2eab2;hp=725bb3bea63a967932cea8a627e6cad1c973c93a;hpb=7492f375fe3ea625e71673eaddcd1e11f06aca40;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/update.pp b/manifests/update.pp index 725bb3b..d9b338d 100644 --- a/manifests/update.pp +++ b/manifests/update.pp @@ -1,10 +1,66 @@ class apt::update { include apt::params + #TODO: to catch if $::apt_update_last_success has the value of -1 here. If we + #opt to do this, a info/warn would likely be all you'd need likely to happen + #on the first run, but if it's not run in awhile something is likely borked + #with apt and we'd want to know about it. + if $::apt::always_apt_update == false { + #if always_apt_update is true there's no point in parsing this logic. + + case $apt::apt_update_frequency { + 'always': { + $_kick_apt = true + } + 'daily': { + #compare current date with the apt_update_last_success fact to determine + #if we should kick apt_update. + $daily_threshold = (strftime('%s') - 86400) + if $::apt_update_last_success { + if $::apt_update_last_success < $daily_threshold { + $_kick_apt = true + } else { + $_kick_apt = false + } + } else { + #if apt-get update has not successfully run, we should kick apt_update + $_kick_apt = true + } + } + 'weekly':{ + #compare current date with the apt_update_last_success fact to determine + #if we should kick apt_update. + $weekly_threshold = (strftime('%s') - 604800) + if $::apt_update_last_success { + if ( $::apt_update_last_success < $weekly_threshold ) { + $_kick_apt = true + } else { + $_kick_apt = false + } + } else { + #if apt-get update has not successfully run, we should kick apt_update + $_kick_apt = true + } + } + default: { + #catches 'recluctantly', and any other value (which should not occur). + #do nothing. + $_kick_apt = false + } + } + } else { + $_kick_apt = false + } + + if $_kick_apt { + $_refresh = false + } else { + $_refresh = true + } exec { 'apt_update': command => "${apt::params::provider} update", logoutput => 'on_failure', - refreshonly => true, + refreshonly => $_refresh, timeout => $apt::update_timeout, tries => $apt::update_tries, try_sleep => 1