X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=bin%2Fbind.export;h=a3bbd1ac55d590250ec9f99849667395893f99be;hp=b1594ae6b597fb311378b30d9a98a14d85e7dbc6;hb=d5109b4395d35a615f36fc7629803c24d489c516;hpb=5b1348a5b82cb153e6f42be8187de1a7c84dfb6d diff --git a/bin/bind.export b/bin/bind.export index b1594ae6b..a3bbd1ac5 100755 --- a/bin/bind.export +++ b/bin/bind.export @@ -30,6 +30,11 @@ foreach my $export ( @exports ) { my $machine = $export->machine; my $prefix = "$spooldir/$machine"; + my $bind_rel = $export->option('bind_release'); + my $ndc_cmd = $export->option('reload') + || ( ($bind_rel eq 'BIND9') ? 'rndc' : 'ndc' ); + my $minttl = $export->option('bind9_minttl'); + #prevent old domain files from piling up #rmtree "$prefix" or die "can't rmtree $prefix.db: $!"; @@ -38,20 +43,17 @@ foreach my $export ( @exports ) { open(NAMED_CONF,">$prefix/named.conf") or die "can't open $prefix/named.conf: $!"; - open(CONF_HEADER,"<$prefix/named.conf.HEADER") - or die "can't open $prefix/named.conf.HEADER: $!"; - while () { print NAMED_CONF $_; } - close CONF_HEADER; + if ( -e "$prefix/named.conf.HEADER" ) { + open(CONF_HEADER,"<$prefix/named.conf.HEADER") + or die "can't open $prefix/named.conf.HEADER: $!"; + while () { print NAMED_CONF $_; } + close CONF_HEADER; + } my $zonepath = $export->option('zonepath'); $zonepath =~ s/\/$//; - #false laziness with freeside-sqlradius-reset and shell.export - my @svc_domain = - map { qsearchs('svc_domain', { 'svcnum' => $_->svcnum } ) } - map { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - grep { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - $export->export_svc; + my @svc_domain = $export->svc_x; foreach my $svc_domain ( @svc_domain ) { my $domain = $svc_domain->domain; @@ -70,6 +72,7 @@ zone "$domain" { }; END + unlink "$prefix/db.$domain" if -e "$prefix/db.$domain"; } else { @@ -84,6 +87,10 @@ END open (DB_MASTER,">$prefix/db.$domain") or die "can't open $prefix/db.$domain: $!"; + if ($bind_rel eq 'BIND9') { + print DB_MASTER "\$TTL $minttl\n\$ORIGIN $domain.\n"; + } + my @domain_records = qsearch('domain_record', { 'svcnum' => $svc_domain->svcnum } ); foreach my $domain_record ( @@ -119,7 +126,7 @@ END } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); # warn $rsync->out; - ssh("root\@$machine", 'ndc reload'); + ssh("root\@$machine", "$ndc_cmd reload"); } @@ -130,6 +137,9 @@ foreach my $sexport ( @sexports ) { #false laziness with above my $machine = $sexport->machine; my $prefix = "$spooldir/$machine"; + my $bind_rel = $sexport->option('bind_release'); + my $ndc_cmd = ($bind_rel eq 'BIND9') ? 'rndc' : 'ndc'; + #prevent old domain files from piling up #rmtree "$prefix" or die "can't rmtree $prefix.db: $!"; @@ -138,10 +148,12 @@ foreach my $sexport ( @sexports ) { #false laziness with above open(NAMED_CONF,">$prefix/named.conf") or die "can't open $prefix/named.conf: $!"; - open(CONF_HEADER,"<$prefix/named.conf.HEADER") - or die "can't open $prefix/named.conf.HEADER: $!" - while () { print NAMED_CONF $_; } - close CONF_HEADER; + if ( -e "$prefix/named.conf.HEADER" ) { + open(CONF_HEADER,"<$prefix/named.conf.HEADER") + or die "can't open $prefix/named.conf.HEADER: $!"; + while () { print NAMED_CONF $_; } + close CONF_HEADER; + } my $masters = $sexport->option('master'); @@ -171,7 +183,7 @@ END } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); # warn $rsync->out; - ssh("root\@$machine", 'ndc reload'); + ssh("root\@$machine", "$ndc_cmd reload"); } close NAMED_CONF;