pvl/hosts/zone.py
changeset 734 5770ed34c1f0
parent 733 45bedeba92e5
child 740 74352351d6f5
--- a/pvl/hosts/zone.py	Mon Mar 09 18:00:18 2015 +0200
+++ b/pvl/hosts/zone.py	Mon Mar 09 19:47:10 2015 +0200
@@ -31,21 +31,24 @@
     
     elif host.forward is None:
         # forward
-        for sublabel, (ip4, ip6) in host.ip.iteritems():
+        for sublabel, ip in host.addresses():
             if sublabel:
                 sublabel = pvl.dns.join(sublabel, label)
             else:
                 sublabel = label
             
-            if ip4:
-                log.info("%s: ip: %s@%s A %s", host, sublabel, origin, ip4)
+            if ip.version == 4:
+                log.info("%s: ip: %s@%s A %s", host, sublabel, origin, ip)
 
-                yield pvl.dns.ZoneRecord.A(sublabel, ip4)
+                yield pvl.dns.ZoneRecord.A(sublabel, ip)
 
-            if ip6:
-                log.info("%s: ip6: %s@%s AAAA %s", host, label, origin, ip6)
+            elif ip.version == 6:
+                log.info("%s: ip6: %s@%s AAAA %s", host, label, origin, ip)
 
-                yield pvl.dns.ZoneRecord.AAAA(sublabel, ip6)
+                yield pvl.dns.ZoneRecord.AAAA(sublabel, ip)
+
+            else:
+                raise ValueError(ip)
 
     else:
         log.info("%s: skip forward", host)
@@ -79,30 +82,22 @@
         Yield (ipaddr.IPAddress, ZoneRecord) tuples for host within given prefix's reverse-dns zone.
     """
     
-    for sublabel, (ip4, ip6) in host.ip.iteritems():
-        if prefix.version == 4:
-            ip = ip4
-            
-            # reverse= is IPv4-only
-            reverse = host.reverse
-
-        elif prefix.version == 6:
-            ip = ip6
-            
-            # if reverse= is set, always omit, for lack of reverse6=
-            reverse = None if host.reverse is None else False
-
-        else:
-            raise ValueError("%s: unknown ip version: %s" % (prefix, prefix.version))
-
-        if not ip:
-            log.debug("%s: no ip%d", host, prefix.version)
+    for sublabel, ip in host.addresses():
+        if ip.version != prefix.version:
             continue
 
         if ip not in prefix:
             log.debug("%s: %s out of prefix: %s", host, ip, prefix)
             continue
-        
+
+        if ip.version == 4:
+            # reverse= is IPv4-only
+            reverse = host.reverse
+
+        elif prefix.version == 6:
+            # if reverse= is set, always omit, for lack of reverse6=
+            reverse = None if host.reverse is None else False
+
         # relative label
         label = pvl.dns.reverse_label(prefix, ip)