]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
API: return RRType when finding a comment 10206/head
authorPieter Lexis <pieter.lexis@powerdns.com>
Mon, 22 Mar 2021 17:31:31 +0000 (18:31 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Fri, 26 Mar 2021 09:45:10 +0000 (10:45 +0100)
pdns/ws-auth.cc
regression-tests.api/test_Zones.py

index a17e05814fa9ab8ba35ed3e122cba40d34d5ad2c..2c904713b7e564cd78dc5ce7dfb9d7a2cc46dcbc 100644 (file)
@@ -2205,6 +2205,7 @@ static void apiServerSearchData(HttpRequest* req, HttpResponse* resp) {
       auto object = Json::object {
         { "object_type", "comment" },
         { "name", c.qname.toString() },
+        { "type", c.qtype.getName() },
         { "content", c.content }
       };
       if ((val = zoneIdZone.find(c.domain_id)) != zoneIdZone.end()) {
index 33562ad4a7d0dcbb539ed3148aae7fd3ff725b80..92d4dc4c1a52777049a45c028c40ec68a6993885 100644 (file)
@@ -1809,6 +1809,34 @@ $ORIGIN %NAME%
         # should return zone, SOA, ns1, ns2
         self.assertEquals(len(r.json()), 4)
 
+    @unittest.skipIf(is_auth_lmdb(), "No search or comments in LMDB")
+    def test_search_rr_comment(self):
+        name = unique_zone_name()
+        rrsets = [{
+            "name": name,
+            "type": "AAAA",
+            "ttl": 3600,
+            "records": [{
+                "content": "2001:DB8::1",
+                "disabled": False,
+            }],
+            "comments": [{
+                "account": "test AAAA",
+                "content": "blah",
+                "modified_at": 11112,
+            }],
+        }]
+        name, payload, data = self.create_zone(name=name, rrsets=rrsets)
+        r = self.session.get(self.url("/api/v1/servers/localhost/search-data?q=blah"))
+        self.assert_success_json(r)
+        data = r.json()
+        # should return the AAAA record
+        self.assertEquals(len(data), 1)
+        self.assertEqual(data[0]['object_type'], 'comment')
+        self.assertEqual(data[0]['type'], 'AAAA')
+        self.assertEqual(data[0]['name'], name)
+        self.assertEqual(data[0]['content'], rrsets[0]['comments'][0]['content'])
+
     @unittest.skipIf(is_auth_lmdb(), "No search in LMDB")
     def test_search_after_rectify_with_ent(self):
         name = unique_zone_name()