# Generated by runtests.py
options { directory "../regression-tests/zones/"; };
zone "example.com" { type master; file "example.com"; };
+zone "powerdnssec.org" { type master; file "powerdnssec.org"; };
+"""
+
+AUTH_CONF_TPL = """
+# Generated by runtests.py
+launch=gsqlite3
+gsqlite3-dnssec=on
+gsqlite3-database="""+SQLITE_DB+"""
+module-dir=../regression-tests/modules
+#
"""
ACL_LIST_TPL = """
if daemon == 'authoritative':
- # Prepare sqlite DB with a single zone.
+ # Prepare sqlite DB with some zones.
subprocess.check_call(["rm", "-f", SQLITE_DB])
subprocess.check_call(["make", "-C", "../pdns", "zone2sql"])
tf.seek(0, os.SEEK_SET) # rewind
subprocess.check_call(["sqlite3", SQLITE_DB], stdin=tf)
- pdnscmd = ("../pdns/pdns_server --daemon=no --local-port=5300 --socket-dir=./ --module-dir=../regression-tests/modules --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec --send-root-referral --dnsupdate=yes --cache-ttl=0 --no-config --gsqlite3-dnssec=on --gsqlite3-database="+SQLITE_DB+" --api=yes --webserver=yes --webserver-port="+WEBPORT+" --webserver-address=127.0.0.1 --webserver-password=something --api-key="+APIKEY).split()
+ with open('pdns.conf', 'w') as named_conf:
+ named_conf.write(AUTH_CONF_TPL)
+
+ subprocess.check_call(["../pdns/pdnsutil", "--config-dir=.", "secure-zone", "powerdnssec.org"])
+ pdnscmd = ("../pdns/pdns_server --daemon=no --local-port=5300 --socket-dir=./ --no-shuffle --send-root-referral --dnsupdate=yes --cache-ttl=0 --config-dir=. --api=yes --webserver=yes --webserver-port="+WEBPORT+" --webserver-address=127.0.0.1 --webserver-password=something --api-key="+APIKEY).split()
else:
conf_dir = 'rec-conf.d'
import json
import time
import unittest
+from copy import deepcopy
from test_helper import ApiTestCase, unique_zone_name, is_auth, is_recursor, eq_zone_dict, get_db_records
print r.json()
# should return zone, SOA
self.assertEquals(len(r.json()), 2)
+
+
+@unittest.skipIf(not is_auth(), "Not applicable")
+class AuthZoneKeys(ApiTestCase, AuthZonesHelperMixin):
+
+ def test_get_keys(self):
+ r = self.session.get(
+ self.url("/api/v1/servers/localhost/zones/powerdnssec.org./cryptokeys"))
+ self.assert_success_json(r)
+ keys = r.json()
+ self.assertGreater(len(keys), 0)
+
+ key0 = deepcopy(keys[0])
+ del key0['dnskey']
+ expected = {
+ u'active': True,
+ u'type': u'Cryptokey',
+ u'keytype': u'zsk',
+ u'id': 1}
+ self.assertEquals(key0, expected)
+
+ keydata = keys[0]['dnskey'].split()
+ self.assertEqual(len(keydata), 4)