[svn] commit: r910 - in /experiments/each-zoneload: loadzone.py master.py

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Feb 22 06:54:14 UTC 2010


Author: each
Date: Mon Feb 22 06:54:14 2010
New Revision: 910

Log:
get zone name from SOA instead of command line

Modified:
    experiments/each-zoneload/loadzone.py
    experiments/each-zoneload/master.py

Modified: experiments/each-zoneload/loadzone.py
==============================================================================
--- experiments/each-zoneload/loadzone.py (original)
+++ experiments/each-zoneload/loadzone.py Mon Feb 22 06:54:14 2010
@@ -98,7 +98,7 @@
 # usage: print usage note and exit
 #########################################################################
 def usage():
-    print("Usage: %s [-d <database>] <zone> <file>" % sys.argv[0])
+    print("Usage: %s [-d <database>] [-o <origin>] <file>" % sys.argv[0])
     exit(1)
 
 #########################################################################
@@ -122,7 +122,7 @@
         else:
             assert False, "unhandled option"
     try:
-        zone, zonefile = args
+        zonefile = args[0]
     except:
         usage()
 
@@ -132,7 +132,7 @@
         print("Couldn't open database: " + e.args[0]);
         exit(1)
 
-    zonedata = master.parse(zonefile)
+    zone, zonedata = master.parse(zonefile)
 
     old_zone_id = findzone(zone, cur)
 

Modified: experiments/each-zoneload/master.py
==============================================================================
--- experiments/each-zoneload/master.py (original)
+++ experiments/each-zoneload/master.py Mon Feb 22 06:54:14 2010
@@ -320,10 +320,10 @@
     origin='.'
 
 #########################################################################
-# parse: parse a zone master file and return it as an array of
+# do_parse: parse a zone master file and return it as an array of
 # tuples
 #########################################################################
-def parse(file):
+def do_parse(file):
     global defttl, origin, defclass
 
     zone = []
@@ -380,6 +380,24 @@
         zone.append((name, ttl, rrclass, rrtype, rdata))
 
     return zone
+
+#########################################################################
+# parse: call do_parse on behalf of a caller; determine the zone name
+# and return the zone data
+# input:
+#   filename
+# returns:
+#   zonename, data
+#########################################################################
+def parse(file):
+    zone = do_parse(file)
+    zonename = ''
+    for record in zone:
+        if record[3].lower() == 'soa':
+            zonename = record[0]
+    if not zonename:
+        raise MasterFileError("No SOA; zone rejected")
+    return zonename, zone
 
 #########################################################################
 # main: used for testing; parse a zone file and print out each record




More information about the bind10-changes mailing list