new features
[freeside.git] / bin / bind.export
index 63fb0f6..d0b9379 100755 (executable)
@@ -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: $!";
 
@@ -39,19 +44,14 @@ foreach my $export ( @exports ) {
     or die "can't open $prefix/named.conf: $!";
 
   open(CONF_HEADER,"<$prefix/named.conf.HEADER")
-    or die "can't open $prefix/named.conf.HEADER: $!"
+    or die "can't open $prefix/named.conf.HEADER: $!";
   while (<CONF_HEADER>) { 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;
@@ -84,6 +84,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 +123,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 +134,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: $!";
 
@@ -139,7 +146,7 @@ foreach my $sexport ( @sexports ) { #false laziness with above
     or die "can't open $prefix/named.conf: $!";
 
   open(CONF_HEADER,"<$prefix/named.conf.HEADER")
-    or die "can't open $prefix/named.conf.HEADER: $!"
+    or die "can't open $prefix/named.conf.HEADER: $!";
   while (<CONF_HEADER>) { print NAMED_CONF $_; }
   close CONF_HEADER;
 
@@ -171,7 +178,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;