diff --git a/lib/puppet_bind/provider/nsupdate.rb b/lib/puppet_bind/provider/nsupdate.rb index 7aad48e..d2a0c14 100644 --- a/lib/puppet_bind/provider/nsupdate.rb +++ b/lib/puppet_bind/provider/nsupdate.rb @@ -50,6 +50,8 @@ def update(&block) yield file file.write "send\n" file.close + #puts File.read(file.path) + if keyed? nsupdate('-y', tsig_param, file.path) elsif keyfile? diff --git a/manifests/zone.pp b/manifests/zone.pp index 867697d..ba966e8 100644 --- a/manifests/zone.pp +++ b/manifests/zone.pp @@ -19,6 +19,7 @@ $forwarders = '', $forward = '', $source = '', + $content = '', $forwarders_port = 53, ) { # where there is a zone, there is a server @@ -102,14 +103,26 @@ } if member(['init', 'managed'], $zone_file_mode) { - file { "${cachedir}/${name}/${zone_file}": - ensure => present, - owner => $bind_user, - group => $bind_group, - mode => '0644', - replace => ($zone_file_mode == 'managed'), - source => pick($source, 'puppet:///modules/bind/db.empty'), - audit => [ content ], + if ! empty($content) { + file { "${cachedir}/${name}/${zone_file}": + ensure => present, + owner => $bind_user, + group => $bind_group, + mode => '0644', + replace => ($zone_file_mode == 'managed'), + content => $content, + audit => [ content ], + } + } else { + file { "${cachedir}/${name}/${zone_file}": + ensure => present, + owner => $bind_user, + group => $bind_group, + mode => '0644', + replace => ($zone_file_mode == 'managed'), + source => pick($source, 'puppet:///modules/bind/db.empty'), + audit => [ content ], + } } }