diff --git a/manifests/update.pp b/manifests/update.pp index ef37f52db0..90c5f1289d 100644 --- a/manifests/update.pp +++ b/manifests/update.pp @@ -56,13 +56,20 @@ } else { $_refresh = true } + $apt_update_successful = @("BASH") + for try in {${apt::_update['tries']}..1}; do + timeout ${apt::_update['timeout'] ${apt::provider} update && exit 0 + [[ $try -eq 1 ]] && exit $? + sleep 1 + done + - BASH exec { 'apt_update': - command => "${apt::provider} update", + command => "${apt::provider} update FAILED", loglevel => $apt::_update['loglevel'], logoutput => 'on_failure', refreshonly => $_refresh, + returns => [-1], # This ensures a run-time failure. timeout => $apt::_update['timeout'], - tries => $apt::_update['tries'], - try_sleep => 1, + unless => $apt_update_successful, } }