Rebuild listrecords and fake records by merging them with rrsets in Zone.php

This commit is contained in:
Mark Schouten 2016-08-03 14:16:07 +02:00
parent a94d0e0b31
commit 6fd7087dc9
2 changed files with 29 additions and 13 deletions

View file

@ -215,6 +215,21 @@ class RRSet {
array_push($this->comments, $comment);
}
public function rrsets2records() {
$ret = Array();
foreach ($this->rrsets as $rrset) {
foreach ($rrset->export_records() as $record) {
$record['name'] = $rrset['name'];
$record['ttl'] = $rrset['ttl'];
$record['type'] = $rrset['type'];
}
array_push($ret, $record);
}
return $ret;
}
public function export() {
$ret = Array();
$ret['comments'] = $this->export_comments();

View file

@ -305,6 +305,20 @@ case "listslaves":
jtable_respond($return);
break;
case "listrecords":
$zonedata = $api->loadzone($_GET['zoneid']);
$zone = new Zone()
$zone->parse($zonedata);
$records = $zone->rrsets2records();
foreach ($records as &$record) {
$record['id'] = json_encode($record);
}
unset($record);
usort($records, "record_compare");
jtable_respond($records);
break;
case "create":
$zonename = isset($_POST['name']) ? $_POST['name'] : '';
$zonekind = isset($_POST['kind']) ? $_POST['kind'] : '';
@ -448,19 +462,6 @@ case "delete":
jtable_respond(null, 'delete');
break;
case "listrecords":
$zone = get_zone_by_url(isset($_GET['zoneurl']) ? $_GET['zoneurl'] : '');
$a = api_request($zone['url']);
$records = $a['records'];
foreach ($records as &$record) {
$record['id'] = json_encode($record);
}
unset($record);
usort($records, "record_compare");
jtable_respond($records);
break;
case "createrecord":
$zone = get_zone_by_url(isset($_GET['zoneurl']) ? $_GET['zoneurl'] : '');
$record = create_record($zone, $_POST);