--- a/bin/process-zone Thu Mar 15 18:32:17 2012 +0200
+++ b/bin/process-zone Thu Mar 15 18:33:36 2012 +0200
@@ -32,7 +32,7 @@
# logging
general = optparse.OptionGroup(parser, "General Options")
- general.add_option('-q', '--quiet', dest='loglevel', action='store_const', const=logging.WARNING, help="Less output")
+ general.add_option('-q', '--quiet', dest='loglevel', action='store_const', const=logging.ERROR, help="Less output")
general.add_option('-v', '--verbose', dest='loglevel', action='store_const', const=logging.INFO, help="More output")
general.add_option('-D', '--debug', dest='loglevel', action='store_const', const=logging.DEBUG, help="Even more output")
@@ -47,9 +47,6 @@
parser.add_option('--output-charset', metavar='CHARSET', default='utf-8',
help="Encoding used for output files")
- parser.add_option('--serial', metavar='FILE',
- help="Read/update serial from given .serial file")
-
parser.add_option('--forward-zone', action='store_true',
help="Generate forward zone")
@@ -65,16 +62,9 @@
parser.add_option('--reverse-zone', metavar='NET',
help="Generate forward zone for given subnet (x.z.y)")
-
-# parser.add_option('--output-forward', metavar='FILE', default=False, help="Hosts output file")
-# parser.add_option('--output-reverse', metavar='FILE', default=False, help="Reverse-hosts output file")
-# parser.add_option('--forward-info', action='store_true', help="Include additional TXT records in forward zone output")
-
-# parser.add_option('--reverse-zone', metavar='DOMAIN', help="Zone origin used for reverse zone")
-
# defaults
parser.set_defaults(
- loglevel = logging.INFO,
+ loglevel = logging.WARN,
)
# parse
@@ -145,18 +135,22 @@
# parse ttl/cls/type
ttl = cls = None
- type = parts.pop(-1)
-
if parts and parts[0][0].isdigit() :
ttl = parts.pop(0)
- if parts :
+ if parts and parts[0].upper() in ('IN', 'CH') :
cls = parts.pop(0)
+ type = parts.pop(0)
+
#log.debug("ttl=%r, cls=%r, parts=%r", ttl, cls, parts)
if parts :
- raise Exception("Extra data: %r" % (line))
+ log.debug("extra data: %r + %r", parts, data)
+
+ # extra data
+ data = ' '.join(parts + [data])
+
return name, ttl, type, data, comment
@@ -228,7 +222,7 @@
reverse = reverse[:-(len(origin) + 1)]
else :
- log.warning("Reverse does not match zone origin: (%s) -> %s <-> %s", ip, reverse, origin)
+ log.warning("Reverse does not match zone origin, skipping: (%s) -> %s <-> %s", ip, reverse, origin)
continue
# domain to use
@@ -271,7 +265,7 @@
def write_zone (file, zone) :
for line in build_zone(zone) :
- file.write(unicode(line + '\n'))
+ file.write(line + u'\n')
def open_file (path, mode, charset) :
"""