--- a/pvl/hosts/tests.py Wed Feb 25 14:23:04 2015 +0200
+++ b/pvl/hosts/tests.py Wed Feb 25 14:29:40 2015 +0200
@@ -1,7 +1,7 @@
import ipaddr
import unittest
-from pvl.hosts import config
+from pvl.hosts import config, zone
from StringIO import StringIO
class Options(object):
@@ -84,5 +84,26 @@
'ethernet.eth0': 'bar',
})
+class TestForwardZone(unittest.TestCase):
+ def setUp(self):
+ self.options = Options()
+ self.options.add_origin = False
+
+ def testResolve(self):
+ self.assertEquals(zone.resolve(None, None, 'host'), 'host.')
+ self.assertEquals(zone.resolve(None, 'domain', 'host'), 'host.domain.')
+
+ with self.assertRaises(zone.HostZoneError):
+ zone.resolve('origin', 'domain', 'host')
+
+ self.assertEquals(zone.resolve('domain', 'domain', 'host'), 'host')
+ self.assertEquals(zone.resolve('origin', 'domain.origin', 'host'), 'host.domain')
+
+ with self.assertRaises(zone.HostZoneError):
+ zone.resolve('origin', 'domainorigin', 'host')
+
+ with self.assertRaises(zone.HostZoneError):
+ zone.resolve('origin', None, 'host.domain')
+
if __name__ == '__main__':
unittest.main()
--- a/pvl/hosts/zone.py Wed Feb 25 14:23:04 2015 +0200
+++ b/pvl/hosts/zone.py Wed Feb 25 14:29:40 2015 +0200
@@ -14,7 +14,13 @@
Resolve relative CNAME for label@origin -> alias@domain
"""
- fqdn = pvl.dns.join(name, domain)
+ if origin:
+ origin = pvl.dns.fqdn(origin)
+
+ if domain:
+ fqdn = pvl.dns.fqdn(name, domain)
+ else:
+ fqdn = pvl.dns.fqdn(name)
if not origin:
return fqdn