From: Christian Hofstaedtler Date: Mon, 17 Feb 2014 14:23:34 +0000 (+0100) Subject: JSON API: Recursor: fix renaming zones X-Git-Tag: rec-3.6.0-rc1~176^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e2367534e2514d1a0ac3b4e9f838777a72ba0a09;p=thirdparty%2Fpdns.git JSON API: Recursor: fix renaming zones --- diff --git a/pdns/ws-recursor.cc b/pdns/ws-recursor.cc index 98109ca4a2..e103d17b92 100644 --- a/pdns/ws-recursor.cc +++ b/pdns/ws-recursor.cc @@ -320,7 +320,7 @@ static void apiServerZoneDetail(HttpRequest* req, HttpResponse* resp) doDeleteZone(zonename); doCreateZone(document); reloadAuthAndForwards(); - fillZone(zonename, resp); + fillZone(stringFromJson(document, "name"), resp); } else if(req->method == "DELETE") { if (!doDeleteZone(zonename)) { diff --git a/regression-tests.api/test_Zones.py b/regression-tests.api/test_Zones.py index 1a89ca3abf..8c27bc02a4 100644 --- a/regression-tests.api/test_Zones.py +++ b/regression-tests.api/test_Zones.py @@ -380,3 +380,30 @@ class RecursorZones(ApiTestCase): for k in payload.keys(): self.assertEquals(data[k], payload[k]) self.assertEquals(data['id'], expected_id) + + def test_RenameAuthZone(self): + name = unique_zone_name()+'.' + payload = { + 'name': name, + 'kind': 'Native', + 'recursion_desired': False + } + r = self.session.post( + self.url("/servers/localhost/zones"), + data=json.dumps(payload), + headers={'content-type': 'application/json'}) + self.assertSuccessJson(r) + # now rename it + payload = { + 'name': 'renamed-'+name, + 'kind': 'Native', + 'recursion_desired': False + } + r = self.session.put( + self.url("/servers/localhost/zones/" + name), + data=json.dumps(payload), + headers={'content-type': 'application/json'}) + self.assertSuccessJson(r) + data = r.json() + for k in payload.keys(): + self.assertEquals(data[k], payload[k])