unattended_upgrades_spec.rb 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  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. end
  87. context 'defaults' do
  88. let :facts do
  89. {
  90. 'lsbdistid' => 'debian',
  91. 'lsbdistcodename' => 'squeeze',
  92. }
  93. end
  94. 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\};} }
  95. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::AutoFixInterruptedDpkg "true";}}
  96. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::MinimalSteps "false";}}
  97. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::InstallOnShutdown "false";}}
  98. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Remove-Unused-Dependencies "true";}}
  99. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Automatic-Reboot "false";}}
  100. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Enable "1";}}
  101. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::BackUpArchiveInterval "0";}}
  102. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::BackUpLevel "3";}}
  103. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MaxAge "0";}}
  104. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MinAge "0";}}
  105. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MaxSize "0";}}
  106. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Update-Package-Lists "1";}}
  107. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Download-Upgradeable-Packages "1";}}
  108. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Download-Upgradeable-Packages-Debdelta "0";}}
  109. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Unattended-Upgrade "1";}}
  110. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::AutocleanInterval "7";}}
  111. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Verbose "0";}}
  112. end
  113. context 'anything but defaults' do
  114. let :facts do
  115. {
  116. 'lsbdistid' => 'debian',
  117. 'lsbdistcodename' => 'wheezy',
  118. }
  119. end
  120. let :params do
  121. {
  122. 'enable' => '0',
  123. 'backup_interval' => '3',
  124. 'backup_level' => '1',
  125. 'max_age' => '7',
  126. 'min_age' => '1',
  127. 'max_size' => '100',
  128. 'update' => '0',
  129. 'download' => '0',
  130. 'download_delta' => '1',
  131. 'upgrade' => '0',
  132. 'autoclean' => '0',
  133. 'verbose' => '1',
  134. 'origins' => ['bananas'],
  135. 'blacklist' => ['foo', 'bar'],
  136. 'auto_fix' => false,
  137. 'minimal_steps' => true,
  138. 'install_on_shutdown' => true,
  139. 'mail_to' => 'root@localhost',
  140. 'mail_only_on_error' => true,
  141. 'remove_unused' => false,
  142. 'auto_reboot' => true,
  143. 'dl_limit' => '70',
  144. }
  145. end
  146. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Origins-Pattern \{\n\t"bananas";\n\};} }
  147. 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\};} }
  148. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::AutoFixInterruptedDpkg "false";}}
  149. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::MinimalSteps "true";}}
  150. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::InstallOnShutdown "true";}}
  151. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Mail "root@localhost";}}
  152. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::MailOnlyOnError "true";}}
  153. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Remove-Unused-Dependencies "false";}}
  154. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Unattended-Upgrade::Automatic-Reboot "true";}}
  155. it { is_expected.to contain_file("/etc/apt/apt.conf.d/50unattended-upgrades").with_content %r{Acquire::http::Dl-Limit "70";}}
  156. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Enable "0";}}
  157. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::BackUpArchiveInterval "3";}}
  158. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::BackUpLevel "1";}}
  159. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MaxAge "7";}}
  160. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MinAge "1";}}
  161. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::MaxSize "100";}}
  162. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Update-Package-Lists "0";}}
  163. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Download-Upgradeable-Packages "0";}}
  164. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Download-Upgradeable-Packages-Debdelta "1";}}
  165. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Unattended-Upgrade "0";}}
  166. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::AutocleanInterval "0";}}
  167. it { is_expected.to contain_file("/etc/apt/apt.conf.d/10periodic").with_content %r{APT::Periodic::Verbose "1";}}
  168. end
  169. end