unattended_upgrades_spec.rb 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. require 'spec_helper'
  2. describe 'apt::unattended_upgrades', :type => :class do
  3. let(:file_unattended) { '/etc/apt/apt.conf.d/50unattended-upgrades' }
  4. let(:file_periodic) { '/etc/apt/apt.conf.d/10periodic' }
  5. let(:facts) { { :lsbdistid => 'Debian' } }
  6. it { should contain_package("unattended-upgrades") }
  7. it {
  8. should create_file("/etc/apt/apt.conf.d/50unattended-upgrades").with({
  9. "owner" => "root",
  10. "group" => "root",
  11. "mode" => "0644",
  12. "require" => "Package[unattended-upgrades]",
  13. })
  14. }
  15. it {
  16. should create_file("/etc/apt/apt.conf.d/10periodic").with({
  17. "owner" => "root",
  18. "group" => "root",
  19. "mode" => "0644",
  20. "require" => "Package[unattended-upgrades]",
  21. })
  22. }
  23. describe 'failing' do
  24. let :facts do
  25. {
  26. 'lsbdistid' => 'debian',
  27. 'lsbdistcodename' => 'squeeze',
  28. }
  29. end
  30. context 'bad auto_fix' do
  31. let :params do
  32. {
  33. 'auto_fix' => 'foo',
  34. }
  35. end
  36. it { expect { should raise_error(Puppet::Error) } }
  37. end
  38. context 'bad minimal_steps' do
  39. let :params do
  40. {
  41. 'minimal_steps' => 'foo',
  42. }
  43. end
  44. it { expect { should raise_error(Puppet::Error) } }
  45. end
  46. context 'bad install_on_shutdown' do
  47. let :params do
  48. {
  49. 'install_on_shutdown' => 'foo',
  50. }
  51. end
  52. it { expect { should raise_error(Puppet::Error) } }
  53. end
  54. context 'bad mail_only_on_error' do
  55. let :params do
  56. {
  57. 'mail_only_on_error' => 'foo',
  58. }
  59. end
  60. it { expect { should raise_error(Puppet::Error) } }
  61. end
  62. context 'bad remove_unused' do
  63. let :params do
  64. {
  65. 'remove_unused' => 'foo',
  66. }
  67. end
  68. it { expect { should raise_error(Puppet::Error) } }
  69. end
  70. context 'bad auto_reboot' do
  71. let :params do
  72. {
  73. 'auto_reboot' => 'foo',
  74. }
  75. end
  76. it { expect { should raise_error(Puppet::Error) } }
  77. end
  78. context 'bad origins' do
  79. let :params do
  80. {
  81. 'origins' => 'foo'
  82. }
  83. end
  84. it { expect { should raise_error(Puppet::Error) } }
  85. end
  86. context 'bad randomsleep' do
  87. let :params do
  88. {
  89. 'randomsleep' => '4ever'
  90. }
  91. end
  92. it { expect { should raise_error(Puppet::Error) } }
  93. end
  94. end
  95. context 'defaults' do
  96. let :facts do
  97. {
  98. 'lsbdistid' => 'debian',
  99. 'lsbdistcodename' => 'squeeze',
  100. }
  101. end
  102. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Allowed-Origins \{\n\t"\${distro_id} oldstable";\n\t"\${distro_id} \${distro_codename}-security";\n\t"\${distro_id} \${distro_codename}-lts";\n\};} }
  103. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::AutoFixInterruptedDpkg "true";}}
  104. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::MinimalSteps "false";}}
  105. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::InstallOnShutdown "false";}}
  106. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Remove-Unused-Dependencies "true";}}
  107. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Automatic-Reboot "false";}}
  108. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Enable "1";}}
  109. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::BackUpArchiveInterval "0";}}
  110. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::BackUpLevel "3";}}
  111. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MaxAge "0";}}
  112. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MinAge "0";}}
  113. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MaxSize "0";}}
  114. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Update-Package-Lists "1";}}
  115. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Download-Upgradeable-Packages "1";}}
  116. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Download-Upgradeable-Packages-Debdelta "0";}}
  117. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Unattended-Upgrade "1";}}
  118. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::AutocleanInterval "7";}}
  119. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Verbose "0";}}
  120. it { is_expected.to_not contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::RandomSleep}}
  121. end
  122. context 'wheezy' do
  123. let :facts do
  124. {
  125. 'lsbdistid' => 'debian',
  126. 'lsbdistcodename' => 'wheezy',
  127. }
  128. end
  129. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Origins-Pattern \{\n\t"origin=Debian,archive=stable,label=Debian-Security";\n\t"origin=Debian,archive=oldstable,label=Debian-Security";\n\};} }
  130. end
  131. context 'anything but defaults' do
  132. let :facts do
  133. {
  134. 'lsbdistid' => 'debian',
  135. 'lsbdistcodename' => 'wheezy',
  136. }
  137. end
  138. let :params do
  139. {
  140. 'enable' => '0',
  141. 'backup_interval' => '3',
  142. 'backup_level' => '1',
  143. 'max_age' => '7',
  144. 'min_age' => '1',
  145. 'max_size' => '100',
  146. 'update' => '0',
  147. 'download' => '0',
  148. 'download_delta' => '1',
  149. 'upgrade' => '0',
  150. 'autoclean' => '0',
  151. 'verbose' => '1',
  152. 'origins' => ['bananas'],
  153. 'blacklist' => ['foo', 'bar'],
  154. 'auto_fix' => false,
  155. 'minimal_steps' => true,
  156. 'install_on_shutdown' => true,
  157. 'mail_to' => 'root@localhost',
  158. 'mail_only_on_error' => true,
  159. 'remove_unused' => false,
  160. 'auto_reboot' => true,
  161. 'dl_limit' => '70',
  162. 'randomsleep' => '1799',
  163. }
  164. end
  165. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Origins-Pattern \{\n\t"bananas";\n\};} }
  166. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Package-Blacklist \{\n\t"foo";\n\t"bar";\n\};} }
  167. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::AutoFixInterruptedDpkg "false";}}
  168. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::MinimalSteps "true";}}
  169. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::InstallOnShutdown "true";}}
  170. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Mail "root@localhost";}}
  171. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::MailOnlyOnError "true";}}
  172. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Remove-Unused-Dependencies "false";}}
  173. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Automatic-Reboot "true";}}
  174. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Acquire::http::Dl-Limit "70";}}
  175. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Enable "0";}}
  176. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::BackUpArchiveInterval "3";}}
  177. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::BackUpLevel "1";}}
  178. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MaxAge "7";}}
  179. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MinAge "1";}}
  180. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MaxSize "100";}}
  181. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Update-Package-Lists "0";}}
  182. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Download-Upgradeable-Packages "0";}}
  183. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Download-Upgradeable-Packages-Debdelta "1";}}
  184. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Unattended-Upgrade "0";}}
  185. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::AutocleanInterval "0";}}
  186. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Verbose "1";}}
  187. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::RandomSleep "1799";}}
  188. end
  189. end