From: Daniele Sluijters Date: Tue, 14 Oct 2014 07:12:18 +0000 (+0200) Subject: Merge pull request #374 from bschlief/random_sleep X-Git-Tag: 1.8.0~40 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=2b84dd142e759a09cf7011248ea317197e115362;hp=6619ad843f08dc4addff5e763b01fbc6a8dcf4f8;p=puppet-modules%2Fpuppetlabs-apt.git Merge pull request #374 from bschlief/random_sleep Add support for RandomSleep to 10periodic --- diff --git a/README.md b/README.md index d07c7a2..99481a3 100644 --- a/README.md +++ b/README.md @@ -283,6 +283,7 @@ apt::sources: * `download`: How often, in days, to run `apt-get upgrade --download-only`. * `upgrade`: How often, in days, to upgrade packages included in the origins list. * `autoclean`: How often, in days, to run `apt-get autoclean`. +* `randomsleep`: How long, in seconds, to randomly wait before applying upgrades. ### Testing diff --git a/manifests/unattended_upgrades.pp b/manifests/unattended_upgrades.pp index 2f75d5d..069c359 100644 --- a/manifests/unattended_upgrades.pp +++ b/manifests/unattended_upgrades.pp @@ -28,6 +28,7 @@ class apt::unattended_upgrades ( $remove_unused = true, $auto_reboot = false, $dl_limit = 'NONE', + $randomsleep = undef, $enable = '1', $backup_interval = '0', $backup_level = '3', @@ -48,6 +49,12 @@ class apt::unattended_upgrades ( ) validate_array($origins) + if $randomsleep { + unless is_numeric($randomsleep) { + fail('randomsleep must be numeric') + } + } + package { 'unattended-upgrades': ensure => present, } diff --git a/spec/classes/unattended_upgrades_spec.rb b/spec/classes/unattended_upgrades_spec.rb index 291719b..57df21c 100644 --- a/spec/classes/unattended_upgrades_spec.rb +++ b/spec/classes/unattended_upgrades_spec.rb @@ -94,6 +94,14 @@ describe 'apt::unattended_upgrades', :type => :class do it { expect { should raise_error(Puppet::Error) } } end + context 'bad randomsleep' do + let :params do + { + 'randomsleep' => '4ever' + } + end + it { expect { should raise_error(Puppet::Error) } } + end end context 'defaults' do @@ -123,6 +131,7 @@ describe 'apt::unattended_upgrades', :type => :class do it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Unattended-Upgrade "1";}} it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::AutocleanInterval "7";}} it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Verbose "0";}} + it { is_expected.to_not contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::RandomSleep}} end context 'anything but defaults' do @@ -157,6 +166,7 @@ describe 'apt::unattended_upgrades', :type => :class do 'remove_unused' => false, 'auto_reboot' => true, 'dl_limit' => '70', + 'randomsleep' => '1799', } end @@ -183,6 +193,7 @@ describe 'apt::unattended_upgrades', :type => :class do it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Unattended-Upgrade "0";}} it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::AutocleanInterval "0";}} it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Verbose "1";}} + it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::RandomSleep "1799";}} end end diff --git a/templates/10periodic.erb b/templates/10periodic.erb index 5737c9a..43caed9 100644 --- a/templates/10periodic.erb +++ b/templates/10periodic.erb @@ -10,3 +10,6 @@ APT::Periodic::Download-Upgradeable-Packages-Debdelta "<%= @download_delta %>"; APT::Periodic::Unattended-Upgrade "<%= @upgrade %>"; APT::Periodic::AutocleanInterval "<%= @autoclean %>"; APT::Periodic::Verbose "<%= @verbose %>"; +<%- unless @randomsleep.nil? -%> +APT::Periodic::RandomSleep "<%= @randomsleep %>"; +<%- end -%>