]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
JSON API: Recursor: fix renaming zones
authorChristian Hofstaedtler <christian@hofstaedtler.name>
Mon, 17 Feb 2014 14:23:34 +0000 (15:23 +0100)
committerChristian Hofstaedtler <christian@hofstaedtler.name>
Mon, 17 Feb 2014 14:23:34 +0000 (15:23 +0100)
pdns/ws-recursor.cc
regression-tests.api/test_Zones.py

index 98109ca4a203a0df6870396dc179e2724dcbcc2b..e103d17b9291c0f02d5bbc1cb947d58ba38d05d3 100644 (file)
@@ -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)) {
index 1a89ca3abf9061db0a395acc6e586f0b8a639898..8c27bc02a4c48e73b9d969004dae7c7e7d2e1a20 100644 (file)
@@ -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])