[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