diff --git a/manifests/update.pp b/manifests/update.pp index ef37f52db0..a1cdbbfb2d 100644 --- a/manifests/update.pp +++ b/manifests/update.pp @@ -56,13 +56,20 @@ } else { $_refresh = true } + $apt_update_successful = @("ASH"/$) + for try in $(seq ${apt::_update['tries']} -1 1); do + timeout ${apt::_update['timeout']} ${apt::provider} update && exit 0 + [ \$try -eq 1 ] && exit \$? + sleep 1 + done + - ASH 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, } }