Ignore:
Timestamp:
08/28/25 13:42:55 (9 days ago)
Author:
Kris Deugau
Message:

/branches/secondaryzones

Update DNSDB::zoneStatus() to take a hash for arguments instead of bare
values, for easier calling for secondary zone cases

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/secondaryzones/DNSDB.pm

    r928 r931  
    30963096  my $failmsg = '';
    30973097  my $zone = ($revrec eq 'n' ? $self->domainName($zoneid) : $self->revName($zoneid));
    3098   my $zonestatus = $self->zoneStatus($zoneid, $revrec);
     3098  my $zonestatus = $self->zoneStatus(zoneid => $zoneid, revrec => $revrec);
    30993099
    31003100  return ('FAIL', ($revrec eq 'n' ? 'Domain' : 'Reverse zone')." ID $zoneid doesn't exist") if !$zone;
     
    59365936  my $self = shift;
    59375937  my $dbh = $self->{dbh};
    5938   my $id = shift;
    5939   my $revrec = shift;
    5940   my $newstatus = shift || 'mu';
    5941 
    5942   return undef if $id !~ /^\d+$/;
     5938
     5939  my %args = @_;
     5940
     5941  return undef if $args{zoneid} !~ /^\d+$/;
     5942  return undef if (!defined($args{revrec}) && !defined($args{secondary}));
     5943  $args{newstatus} = 'mu' if !$args{newstatus};
    59435944
    59445945  # Allow transactions, and raise an exception on errors so we can catch it later.
     
    59475948  local $dbh->{RaiseError} = 1;
    59485949
    5949   if ($newstatus ne 'mu') {
     5950  if ($args{newstatus} ne 'mu') {
    59505951    # ooo, fun!  let's see what we were passed for status
    59515952    eval {
    5952       $newstatus = 0 if $newstatus eq 'domoff';
    5953       $newstatus = 1 if $newstatus eq 'domon';
    5954       $dbh->do("UPDATE ".($revrec eq 'n' ? 'domains' : 'revzones')." SET status=? WHERE ".
    5955         ($revrec eq 'n' ? 'domain_id' : 'rdns_id')."=?", undef, ($newstatus,$id) );
    5956 
     5953      $args{newstatus} = 0 if $args{newstatus} eq 'domoff';
     5954      $args{newstatus} = 1 if $args{newstatus} eq 'domon';
     5955      $dbh->do("UPDATE ".
     5956        ($args{secondary} eq 'n' ? ($args{revrec} eq 'n' ? 'domains' : 'revzones') : 'secondary_zones')." SET status=? WHERE ".
     5957        ($args{secondary} eq 'n' ? ($args{revrec} eq 'n' ? 'domain_id' : 'rdns_id') : 'secondary_id')."=?",
     5958        undef, ($args{newstatus},$args{zoneid}) );
    59575959##fixme  switch to more consise "Enabled <domain"/"Disabled <domain>" as with users?
    5958       $resultstr = "Changed ".($revrec eq 'n' ? $self->domainName($id) : $self->revName($id)).
    5959         " state to ".($newstatus ? 'active' : 'inactive');
     5960      $resultstr = "Changed ".
     5961        ($args{secondary} eq 'n' ?
     5962                ($args{revrec} eq 'n' ? $self->domainName($args{zoneid}) : $self->revName($args{zoneid})) :
     5963                $self->secondaryName($args{zoneid})
     5964        )." state to ".($args{newstatus} ? 'active' : 'inactive');
    59605965
    59615966      my %loghash;
    5962       $loghash{domain_id} = $id if $revrec eq 'n';
    5963       $loghash{rdns_id} = $id if $revrec eq 'y';
    5964       $loghash{group_id} = $self->parentID(id => $id, type => ($revrec eq 'n' ? 'domain' : 'revzone'), revrec => $revrec);
     5967      if ($args{secondary} eq 'n') {
     5968        $loghash{domain_id} = $args{zoneid} if $args{revrec} eq 'n';
     5969        $loghash{rdns_id} = $args{zoneid} if $args{revrec} eq 'y';
     5970      } else {
     5971        $loghash{secondary_id} = $args{zoneid};
     5972      }
     5973      $loghash{group_id} = $self->parentID(id => $args{zoneid}, revrec => $args{revrec},
     5974        type => ($args{secondary} eq 'n' ? ($args{revrec} eq 'n' ? 'domain' : 'revzone') : 'secondaryzone'));
    59655975      $loghash{entry} = $resultstr;
    59665976      $self->_log(%loghash);
     
    59785988
    59795989  my ($status) = $dbh->selectrow_array("SELECT status FROM ".
    5980         ($revrec eq 'n' ? "domains WHERE domain_id=?" : "revzones WHERE rdns_id=?"),
    5981         undef, ($id) );
     5990        ($args{secondary} eq 'n' ? ($args{revrec} eq 'n' ? "domains WHERE domain_id=?" : "revzones WHERE rdns_id=?") : "secondary_zones WHERE secondary_id=?"),
     5991        undef, ($args{zoneid}) );
    59825992  return $status;
    59835993} # end zoneStatus()
Note: See TracChangeset for help on using the changeset viewer.