require 'spec_helper_acceptance'
-describe 'apt class' do
+MAX_TIMEOUT_RETRY = 3
+TIMEOUT_RETRY_WAIT = 5
+TIMEOUT_ERROR_MATCHER = %r{no valid OpenPGP data found}
- context 'reset' do
- it 'fixes the sources.list' do
- shell('cp /etc/apt/sources.list /tmp')
- end
- end
-
- context 'all the things' do
- it 'should work with no errors' do
- pp = <<-EOS
+everything_everything_pp = <<-EOS
if $::lsbdistcodename == 'lucid' {
$sources = undef
} else {
class { 'apt':
update => {
'frequency' => 'always',
- 'timeout' => '400',
- 'tries' => '3',
+ 'timeout' => 400,
+ 'tries' => 3,
},
purge => {
'sources.list' => true,
},
sources => $sources,
}
- EOS
+ EOS
+
+describe 'apt class' do
+ context 'reset' do
+ it 'fixes the sources.list' do
+ shell('cp /etc/apt/sources.list /tmp')
+ end
+ end
+
+ context 'all the things' do
+ it 'works with no errors' do
+ # Apply the manifest (Retry if timeout error is received from key pool)
+ retry_on_error_matching(MAX_TIMEOUT_RETRY, TIMEOUT_RETRY_WAIT, TIMEOUT_ERROR_MATCHER) do
+ apply_manifest(everything_everything_pp, catch_failures: true)
+ end
- apply_manifest(pp, :catch_failures => true)
- apply_manifest(pp, :catch_failures => true)
+ apply_manifest(everything_everything_pp, catch_failures: true)
end
- it 'should still work' do
+ it 'stills work' do
shell('apt-get update')
shell('apt-get -y --force-yes upgrade')
end
shell('cp /tmp/sources.list /etc/apt')
end
end
-
end