Merge pull request #556 from callahm3/master
authorMorgan Haskel <morgan@puppetlabs.com>
Wed, 5 Aug 2015 20:19:17 +0000 (13:19 -0700)
committerMorgan Haskel <morgan@puppetlabs.com>
Wed, 5 Aug 2015 20:19:17 +0000 (13:19 -0700)
Proxy ensure parameter.

README.md
manifests/init.pp
manifests/params.pp
spec/classes/apt_spec.rb

index 950649539efa8e31cd7ca82e0e7d6e8023c249b1..4220775b990bea62f602b447ed5695955e4c359a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -229,6 +229,8 @@ Main class, includes all other classes.
 
   * 'https': Specifies whether to enable https proxies. Valid options: 'true' and 'false'. Default: 'false'.
 
+  * 'ensure': Optional parameter. Valid options: 'file', 'present', and 'absent'. Default: 'undef'. Prefer 'file' over 'present'.
+
 * `purge`: Specifies whether to purge any existing settings that aren't managed by Puppet. Valid options: a hash made up from the following keys:
 
   * 'sources.list': Specifies whether to purge any unmanaged entries from `sources.list`. Valid options: 'true' and 'false'. Default: 'false'.
index 578d73356e5655d8f5374da85dda369da33b8600..b9087cfb7abae68714edd30ab66c2c28df5216d5 100644 (file)
@@ -45,6 +45,9 @@ class apt(
   $_purge = merge($::apt::purge_defaults, $purge)
 
   validate_hash($proxy)
+  if $proxy['ensure'] {
+    validate_re($proxy['ensure'], ['file', 'present', 'absent'])
+  }
   if $proxy['host'] {
     validate_string($proxy['host'])
   }
@@ -64,8 +67,9 @@ class apt(
   validate_hash($settings)
   validate_hash($ppas)
 
-  if $proxy['host'] {
+  if $_proxy['ensure'] == 'absent' or $_proxy['host'] {
     apt::setting { 'conf-proxy':
+      ensure   => $_proxy['ensure'],
       priority => '01',
       content  => template('apt/_conf_header.erb', 'apt/proxy.erb'),
     }
index cdf8e6e09f2e64e74f6a0dd07c05578fbcc631a6..ea184606545e3d341b7f39b88f8ac55c58f73576 100644 (file)
@@ -76,9 +76,10 @@ class apt::params {
   }
 
   $proxy_defaults = {
-    'host'  => undef,
-    'port'  => 8080,
-    'https' => false,
+    'ensure' => undef,
+    'host'   => undef,
+    'port'   => 8080,
+    'https'  => false,
   }
 
   $purge_defaults = {
index 5a71fb581a6a7d612a7d9ece3b73af118f5ad480..7578d2eb78d80735f7a85932425e0c207f4117b9 100644 (file)
@@ -91,6 +91,14 @@ describe 'apt' do
         /Acquire::https::proxy "https:\/\/localhost:8080\/";/
       )}
     end
+
+    context 'ensure=absent' do
+      let(:params) { { :proxy => { 'ensure' => 'absent'} } }
+      it { is_expected.to contain_apt__setting('conf-proxy').with({
+        :ensure   => 'absent',
+        :priority => '01',
+      })}
+    end
   end
   context 'lots of non-defaults' do
     let :params do