From 16e25450a17bee09f83a6cf7817ebd95e3504c6a Mon Sep 17 00:00:00 2001 From: Christian Hofstaedtler Date: Mon, 3 Oct 2016 16:12:48 +0200 Subject: [PATCH] API: url in zone info should be absolute Fixes #4524. --- pdns/ws-auth.cc | 2 +- regression-tests.api/test_Zones.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pdns/ws-auth.cc b/pdns/ws-auth.cc index 2960be0563..db875b1010 100644 --- a/pdns/ws-auth.cc +++ b/pdns/ws-auth.cc @@ -308,7 +308,7 @@ static Json::object getZoneInfo(const DomainInfo& di) { return Json::object { // id is the canonical lookup key, which doesn't actually match the name (in some cases) { "id", zoneId }, - { "url", "api/v1/servers/localhost/zones/" + zoneId }, + { "url", "/api/v1/servers/localhost/zones/" + zoneId }, { "name", di.zone.toString() }, { "kind", di.getKindString() }, { "dnssec", dk.isSecuredZone(di.zone) }, diff --git a/regression-tests.api/test_Zones.py b/regression-tests.api/test_Zones.py index 45efc0464a..03f7bbc726 100644 --- a/regression-tests.api/test_Zones.py +++ b/regression-tests.api/test_Zones.py @@ -286,6 +286,13 @@ class AuthZones(ApiTestCase, AuthZonesHelperMixin): headers={'content-type': 'application/json'}) self.assertEquals(r.status_code, 422) + def test_zone_absolute_url(self): + name, payload, data = self.create_zone() + r = self.session.get(self.url("/api/v1/servers/localhost/zones")) + rdata = r.json() + print(rdata[0]) + self.assertTrue(rdata[0]['url'].startswith('/api/v')) + def test_create_zone_metadata(self): payload_metadata = {"type": "Metadata", "kind": "AXFR-SOURCE", "metadata": ["127.0.0.2"]} r = self.session.post(self.url("/api/v1/servers/localhost/zones/example.com/metadata"), -- 2.47.2