Don't purge by default. That seems unnecessarily destructive.
authorMorgan Haskel <morgan@puppetlabs.com>
Tue, 14 Apr 2015 18:03:17 +0000 (11:03 -0700)
committerMorgan Haskel <morgan@puppetlabs.com>
Tue, 14 Apr 2015 18:03:17 +0000 (11:03 -0700)
README.md
manifests/params.pp
spec/classes/apt_spec.rb

index d461d05d2b6d0d3cf6de47c3b8ab0f86efa1186f..318bc53d2c13b732eb599001841f779b30412486 100644 (file)
--- a/README.md
+++ b/README.md
@@ -39,7 +39,7 @@ class { 'apt': }
 
 ### Classes
 
-* `apt`: Main class, provides common resources and options. Allows Puppet to manage your system's sources.list file and sources.list.d directory. By default, it will purge any existing content it finds that wasn't declared with Puppet.
+* `apt`: Main class, provides common resources and options. Allows Puppet to manage your system's sources.list file and sources.list.d directory. By default, it will not purge existing content it finds that wasn't declared with Puppet.
   
   * `apt::backports`: This class adds the necessary components to get backports for Ubuntu and Debian. The release name defaults to "$lsbdistcodename-backports". Setting this manually can cause undefined and potentially serious behavior.
 
@@ -195,10 +195,10 @@ apt::sources:
   * 'timeout': Overrides the exec timeout in seconds for `apt-get update`. Defaults to exec default (300).
   * 'tries': Sets how many times to attempt running `apt-get update`. Use this to work around transient DNS and HTTP errors. By default, the command runs only once.
 * `purge`: Hash to configure various purge settings. Valid keys are:
-  * 'sources.list': If set to 'true', Puppet purges all unmanaged entries from sources.list. Accepts `true` or `false`. Defaults to `true`.
-  * 'sources.list.d': If set to 'true', Puppet purges all unmanaged entries from sources.list.d. Accepts `true` or `false`. Defaults to `true`.
-  * 'preferences.list': If set to 'true', Puppet purges all unmanaged entries from preferences.list. Accepts `true` or `false`. Defaults to `true`.
-  * 'preferences.list.d': If set to 'true', Puppet purges all unmanaged entries from preferences.list.d. Accepts `true` or `false`. Defaults to `true`.
+  * 'sources.list': If set to 'true', Puppet purges all unmanaged entries from sources.list. Accepts `true` or `false`. Defaults to `false`.
+  * 'sources.list.d': If set to 'true', Puppet purges all unmanaged entries from sources.list.d. Accepts `true` or `false`. Defaults to `false`.
+  * 'preferences.list': If set to 'true', Puppet purges all unmanaged entries from preferences.list. Accepts `true` or `false`. Defaults to `false`.
+  * 'preferences.list.d': If set to 'true', Puppet purges all unmanaged entries from preferences.list.d. Accepts `true` or `false`. Defaults to `false`.
 * `proxy`: Hash to configure various proxy settings. Valid keys are:
   * 'host': Configures a proxy host and stores the configuration in /etc/apt/apt.conf.d/01proxy.
   * 'port': Configures a proxy port and stores the configuration in /etc/apt/apt.conf.d/01proxy.
index abc7536eabc2be7f6119be19645fc41689e6fb50..5a0c170d9120ddc1ce14b62fe2e9167d10b4d216 100644 (file)
@@ -69,10 +69,10 @@ class apt::params {
   }
 
   $purge_defaults = {
-    'sources.list'   => true,
-    'sources.list.d' => true,
-    'preferences'    => true,
-    'preferences.d'  => true,
+    'sources.list'   => false,
+    'sources.list.d' => false,
+    'preferences'    => false,
+    'preferences.d'  => false,
   }
 
   $source_key_defaults = {
index 81d5d1bee676ca218070904bbbf8d44eadc5e9cb..ee7cd33a24e04610aef6a894d87e2c841dfb4d27 100644 (file)
@@ -9,7 +9,6 @@ describe 'apt' do
       :owner   => 'root',
       :group   => 'root',
       :mode    => '0644',
-      :content => "# Repos managed by puppet.\n",
       :notify  => 'Exec[apt_update]',
     })}
 
@@ -19,13 +18,13 @@ describe 'apt' do
       :owner   => 'root',
       :group   => 'root',
       :mode    => '0644',
-      :purge   => true,
-      :recurse => true,
+      :purge   => false,
+      :recurse => false,
       :notify  => 'Exec[apt_update]',
     })}
 
     it { is_expected.to contain_file('preferences').that_notifies('Exec[apt_update]').only_with({
-      :ensure  => 'absent',
+      :ensure  => 'file',
       :path    => '/etc/apt/preferences',
       :owner   => 'root',
       :group   => 'root',
@@ -39,8 +38,8 @@ describe 'apt' do
       :owner   => 'root',
       :group   => 'root',
       :mode    => '0644',
-      :purge   => true,
-      :recurse => true,
+      :purge   => false,
+      :recurse => false,
       :notify  => 'Exec[apt_update]',
     })}