]> gitweb.fluxo.info Git - puppet-bind.git/commitdiff
corrected how bind modules removes a zone
authorCédric Jeanneret <cedric.jeanneret@camptocamp.com>
Fri, 9 Nov 2012 14:24:08 +0000 (15:24 +0100)
committerCédric Jeanneret <cedric.jeanneret@camptocamp.com>
Fri, 9 Nov 2012 14:24:08 +0000 (15:24 +0100)
manifests/zone.pp

index eb07746d29a625e5ebf5b86f0279c71885284234..d7fbc40a5f5616dcac5dc406905a1eb3be539d31 100644 (file)
@@ -30,25 +30,6 @@ define bind::zone (
   $zone_origin   = false
 ) {
 
-  concat {"/etc/bind/pri/${name}.conf":
-    owner => root,
-    group => root,
-    mode  => '0644',
-  }
-
-  concat {"/etc/bind/zones/${name}.conf":
-    owner => root,
-    group => root,
-    mode  => '0644',
-  }
-
-  concat::fragment {"bind.zones.${name}":
-    ensure  => $ensure,
-    target  => "/etc/bind/zones/${name}.conf",
-    notify  => Service['bind9'],
-    require => Package['bind9'],
-  }
-
   concat::fragment {"named.local.zone.${name}":
     ensure  => $ensure,
     target  => '/etc/bind/named.conf.local',
@@ -57,47 +38,78 @@ define bind::zone (
     require => Package['bind9'],
   }
 
-  if $is_slave {
-    if !$zone_masters {
-      fail "No master defined for ${name}!"
-    }
-    Concat::Fragment["bind.zones.${name}"] {
-      content => template('bind/zone-slave.erb'),
-    }
+  case $ensure {
+    present: {
+      concat {"/etc/bind/pri/${name}.conf":
+        owner => root,
+        group => root,
+        mode  => '0644',
+      }
+
+      concat {"/etc/bind/zones/${name}.conf":
+        owner => root,
+        group => root,
+        mode  => '0644',
+      }
+      concat::fragment {"bind.zones.${name}":
+        ensure  => $ensure,
+        target  => "/etc/bind/zones/${name}.conf",
+        notify  => Service['bind9'],
+        require => Package['bind9'],
+      }
+
+
+      if $is_slave {
+        if !$zone_masters {
+          fail "No master defined for ${name}!"
+        }
+        Concat::Fragment["bind.zones.${name}"] {
+          content => template('bind/zone-slave.erb'),
+        }
 ## END of slave
-  } else {
-    if !$zone_contact {
-      fail "No contact defined for ${name}!"
-    }
-    if !$zone_ns {
-      fail "No ns defined for ${name}!"
-    }
-    if !$zone_serial {
-      fail "No serial defined for ${name}!"
-    }
-    if !$zone_ttl {
-      fail "No ttl defined for ${name}!"
-    }
+      } else {
+        if !$zone_contact {
+          fail "No contact defined for ${name}!"
+        }
+        if !$zone_ns {
+          fail "No ns defined for ${name}!"
+        }
+        if !$zone_serial {
+          fail "No serial defined for ${name}!"
+        }
+        if !$zone_ttl {
+          fail "No ttl defined for ${name}!"
+        }
 
-    Concat::Fragment["bind.zones.${name}"] {
-      content => template('bind/zone-master.erb'),
-    }
+        Concat::Fragment["bind.zones.${name}"] {
+          content => template('bind/zone-master.erb'),
+        }
 
-    concat::fragment {"00.bind.${name}":
-      ensure  => $ensure,
-      target  => "/etc/bind/pri/${name}.conf",
-      content => template('bind/zone-header.erb'),
-      require => Package['bind9'],
-    }
+        concat::fragment {"00.bind.${name}":
+          ensure  => $ensure,
+          target  => "/etc/bind/pri/${name}.conf",
+          content => template('bind/zone-header.erb'),
+          require => Package['bind9'],
+        }
 
-    file {"/etc/bind/pri/${name}.conf.d":
-      ensure  => absent,
-      mode    => '0700',
-      purge   => true,
-      recurse => true,
-      backup  => false,
-      force   => true,
+        file {"/etc/bind/pri/${name}.conf.d":
+          ensure  => absent,
+          mode    => '0700',
+          purge   => true,
+          recurse => true,
+          backup  => false,
+          force   => true,
+        }
+      }
     }
+    absent: {
+      file {"/etc/bind/pri/${name}.conf":
+        ensure => absent,
+      }
+      file {"/etc/bind/zones/${name}.conf":
+        ensure => absent,
+      }
+    }
+    default: {}
   }
-
 }