Merge pull request #166 from Rico29/master

notify pdns slaves after zone update
This commit is contained in:
Tuxis Internet Engineering V.O.F 2018-03-28 09:03:11 +02:00 committed by GitHub
commit ed27b5e7d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 1 deletions

View file

@ -84,6 +84,14 @@ class PdnsAPI {
return $this->loadzone($zone['id']);
}
public function notifyzone($zoneid) {
$api = clone $this->http;
$api->method = 'PUT';
$api->url = "/servers/localhost/zones/$zoneid/notify";
$api->call();
return $api->json;
}
public function deletezone($zoneid) {
$api = clone $this->http;

View file

@ -9,6 +9,7 @@ $allowzoneadd = FALSE; # Allow normal users to add zones
$logging = TRUE;
$allowclearlogs = TRUE; # Allow clearing of log entries
$allowrotatelogs = FALSE;# Allow rotation to text file on server
$notifyafterupdate = TRUE;# send notify to slaves after zone update
# Log directory - if allowrotatelogs is set, this is where the logs will
# be written. It must be writeable by the web server user.

View file

@ -304,6 +304,7 @@ case "create":
}
$api->savezone($zone->export());
if ($notifyafterupdate) $api->notifyzone($_GET['zoneid']);
$zone = new Zone();
$zone->parse($api->loadzone($zonename));
@ -328,6 +329,7 @@ case "create":
}
}
$api->savezone($zone->export());
if ($notifyafterupdate) $api->notifyzone($_GET['zoneid']);
foreach ($template['records'] as $record) {
$name = $record['name'] != '' ? join(Array($record['name'],'.',$zonename)) : $zonename;
@ -340,6 +342,7 @@ case "create":
}
$zone = $api->savezone($zone->export());
if ($notifyafterupdate) $api->notifyzone($_GET['zoneid']);
writelog("Created zone ".$zone['name']);
jtable_respond($zone, 'single');
break;
@ -370,6 +373,7 @@ case "update":
writelog("Updated zone ".$zone->name);
jtable_respond($api->savezone($zone->export()), 'single');
if ($notifyafterupdate) $api->notifyzone($_GET['zoneid']);
break;
case "createrecord":
@ -411,6 +415,7 @@ case "createrecord":
$record = $zone->addRecord($name, $type, $content, $_POST['disabled'], $_POST['ttl'], $_POST['setptr']);
$api->savezone($zone->export());
if ($notifyafterupdate) $api->notifyzone($_GET['zoneid']);
writelog("Created record: ".$record['id']);
jtable_respond($record, 'single');
@ -436,6 +441,7 @@ case "editrecord":
$zone->addRecord($_POST['name'], $_POST['type'], $content, $_POST['disabled'], $_POST['ttl'], $_POST['setptr']);
$api->savezone($zone->export());
if ($notifyafterupdate) $api->notifyzone($_GET['zoneid']);
$record = $zone->getRecord($_POST['name'], $_POST['type'], $content);
writelog("Updated record ".$_POST['id']." to ".$record['id']);
@ -453,6 +459,7 @@ case "deleterecord":
$rrset->deleteRecord($old_record['content']);
$api->savezone($zone->export());
if ($notifyafterupdate) $api->notifyzone($_GET['zoneid']);
writelog("Deleted record ".$_POST['id']);
jtable_respond(null, 'delete');
@ -486,6 +493,7 @@ case "clone":
$srczone->setKind($_POST['kind']);
$zone = $api->savezone($srczone->export());
if ($notifyafterupdate) $api->notifyzone($_GET['zoneid']);
$srczone->parse($zone);
@ -504,6 +512,7 @@ case "clone":
}
$zone = $api->savezone($srczone->export());
if ($notifyafterupdate) $api->notifyzone($_GET['zoneid']);
writelog("Cloned zone $src into $name");
jtable_respond($zone, 'single');