implement ensure absent for postfix::config
authorGabriel Filion <gabster@lelutin.ca>
Fri, 10 Mar 2017 23:19:04 +0000 (18:19 -0500)
committerGabriel Filion <gabster@lelutin.ca>
Fri, 10 Mar 2017 23:19:36 +0000 (18:19 -0500)
This does not have a special case for "non-standard" settings, since I
don't know whether it is needed or not.

README.md
manifests/config.pp

index 7a6b01f..c7646a9 100644 (file)
--- a/README.md
+++ b/README.md
@@ -122,9 +122,13 @@ Convience classes
 
 postfix::config
 ---------------
-this can be used to pass arbitrary postfix configurations by passing the $name
+This can be used to pass arbitrary postfix configurations by passing the $name
 to postconf to add/alter/remove options in main.cf
 
+It can also be used to ensure that a certain configuration is not present by
+setting the ensure parameter to absent. In this case, the value parameter is
+still mandatory but can be set to whatever value.
+
 Parameters:
 - *name*: name of the parameter.
 - *ensure*: present/absent. defaults to present.
@@ -144,6 +148,11 @@ Example usage:
       "relayhost"               => "[mail.example.com]:587";
     }
 
+    postfix::config { 'smtp_tls_cert_file':
+      ensure => absent,
+      value  => '',
+    }
+
 
 postfix::disable
 ----------------
index ce7af9e..a1eb651 100644 (file)
@@ -43,7 +43,9 @@ define postfix::config ($ensure = present, $value, $nonstandard = false) {
     }
 
     absent: {
-      fail "postfix::config ensure => absent: Not implemented"
+      exec { "postconf -X ${name}":
+        unless => "test \"x$(postconf -n ${name})\" = \"x\"",
+      }
     }
   }
 }