[svn] commit: r1077 - in /branches/each-loadzone/src: bin/loadzone/b10-loadzone.py lib/auth/python/isc/auth/master.py lib/auth/python/isc/auth/sqlite3_ds.py
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Mar 2 22:02:00 UTC 2010
Author: each
Date: Tue Mar 2 22:02:00 2010
New Revision: 1077
Log:
address review comments, ticket 51
Modified:
branches/each-loadzone/src/bin/loadzone/b10-loadzone.py
branches/each-loadzone/src/lib/auth/python/isc/auth/master.py
branches/each-loadzone/src/lib/auth/python/isc/auth/sqlite3_ds.py
Modified: branches/each-loadzone/src/bin/loadzone/b10-loadzone.py
==============================================================================
--- branches/each-loadzone/src/bin/loadzone/b10-loadzone.py (original)
+++ branches/each-loadzone/src/bin/loadzone/b10-loadzone.py Tue Mar 2 22:02:00 2010
@@ -20,7 +20,8 @@
# usage: print usage note and exit
#########################################################################
def usage():
- print("Usage: %s [-d <database>] [-o <origin>] <file>" % sys.argv[0])
+ print("Usage: %s [-d <database>] [-o <origin>] <file>" % sys.argv[0], \
+ file=sys.stderr)
exit(1)
#########################################################################
@@ -41,27 +42,26 @@
if o in ("-d", "--dbfile"):
dbfile = a
elif o in ("-o", "--origin"):
- initial_origin = a;
+ initial_origin = a
elif o in ("-h", "--help"):
usage()
- sys.exit()
else:
assert False, "unhandled option"
- try:
- zonefile = args[0]
- except:
+
+ if len(args) != 1:
usage()
+ zonefile = args[0]
try:
zone, zonedata = isc.auth.master.parse(zonefile, initial_origin)
except Exception as e:
- print("Couldn't open database: " + str(e));
+ print("Error reading zone file: " + str(e))
exit(1)
try:
isc.auth.sqlite3_ds.load(dbfile, zone, zonedata)
except Exception as e:
- print("Couldn't load database: " + str(e));
+ print("Error loading database: " + str(e))
exit(1)
if __name__ == "__main__":
Modified: branches/each-loadzone/src/lib/auth/python/isc/auth/master.py
==============================================================================
--- branches/each-loadzone/src/lib/auth/python/isc/auth/master.py (original)
+++ branches/each-loadzone/src/lib/auth/python/isc/auth/master.py Tue Mar 2 22:02:00 2010
@@ -13,21 +13,18 @@
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import sys, re, string;
+import sys, re, string
#########################################################################
# define exceptions
#########################################################################
class MasterFileError(Exception):
- def __init__(self, value):
- self.value = value
- def __str__(self):
- return repr(self.value)
+ pass
#########################################################################
# global variables
#########################################################################
-maxttl = 0x7fffffff;
+maxttl = 0x7fffffff
defclass = 'IN'
#########################################################################
@@ -117,7 +114,7 @@
return False
#########################################################################
-# istype: check whether a string is a known RR class. (only 'IN' is
+# isclass: check whether a string is a known RR class. (only 'IN' is
# supported, but the others must still be recognizable.)
# returns: boolean
#########################################################################
@@ -142,7 +139,7 @@
return False
#########################################################################
-# isname: check whether a string is a valid TTL specifier.
+# isttl: check whether a string is a valid TTL specifier.
# returns: boolean
#########################################################################
ttl_regex = re.compile('[0-9]+[wdhms]?', re.I)
@@ -307,20 +304,28 @@
list = record.split()
if len(list) <= 2:
return ret
- if istype(list[1]) and not istype(list[0]):
- if isttl(list[0]):
+
+ if istype(list[1]):
+ rrclass = defclass
+ rrtype = list[1]
+ if list[0].lower() == 'rrsig':
+ name = curname
+ ttl = defttl
+ rrtype = list[0]
+ rdata = ' '.join(list[1:])
+ elif isttl(list[0]):
ttl = parse_ttl(list[0])
name = curname
+ rdata = ' '.join(list[2:])
elif isname(list[0]):
name = list[0]
ttl = defttl
+ rdata = ' '.join(list[2:])
else:
raise MasterFileError("Cannot parse RR: " + record)
- rrclass = defclass
- rrtype = list[1]
- rdata = ' '.join(list[2:])
ret = name, ttl, rrclass, rrtype, rdata
+
return ret
@@ -349,7 +354,7 @@
data = open(file).read().splitlines()
for record in records(data):
if directive(record):
- continue;
+ continue
incl = include(record)
if incl:
Modified: branches/each-loadzone/src/lib/auth/python/isc/auth/sqlite3_ds.py
==============================================================================
--- branches/each-loadzone/src/lib/auth/python/isc/auth/sqlite3_ds.py (original)
+++ branches/each-loadzone/src/lib/auth/python/isc/auth/sqlite3_ds.py Tue Mar 2 22:02:00 2010
@@ -20,10 +20,7 @@
# define exceptions
#########################################################################
class Sqlite3DSError(Exception):
- def __init__(self, value):
- self.value = value
- def __str__(self):
- return repr(self.value)
+ pass
#########################################################################
# create: set up schema for a newly created zones/records database
@@ -31,18 +28,27 @@
def create(cur):
"""Create new zone database"""
cur.execute("CREATE TABLE schema_version (version INTEGER NOT NULL)")
- cur.execute("INSERT INTO schema_version VALUES (1)");
+ cur.execute("INSERT INTO schema_version VALUES (1)")
cur.execute("""CREATE TABLE zones (id INTEGER PRIMARY KEY,
name STRING NOT NULL, rdclass STRING NOT NULL DEFAULT 'IN',
dnssec BOOLEAN NOT NULL DEFAULT 0)""")
+ cur.execute("CREATE INDEX zones_byname ON zones (name)")
cur.execute("""CREATE TABLE records (id INTEGER PRIMARY KEY,
zone_id INTEGER NOT NULL, name STRING NOT NULL,
rname STRING NOT NULL, ttl INTEGER NOT NULL,
rdtype STRING NOT NULL, sigtype STRING,
- rdata STRING NOT NULL)""");
- cur.execute("CREATE INDEX records_byname ON records (name)");
- cur.execute("CREATE INDEX records_byrname ON records (rname)");
- cur.execute("CREATE INDEX zones_byname ON zones (name)");
+ rdata STRING NOT NULL)""")
+ cur.execute("CREATE INDEX records_byname ON records (name)")
+ cur.execute("CREATE INDEX records_byrname ON records (rname)")
+ cur.execute("""CREATE TABLE nsec3 (id INTEGER PRIMARY KEY,
+ zone_id INTEGER NOT NULL, hash STRING NOT NULL,
+ rhash STRING NOT NULL, owner STRING NOT NULL,
+ rowner STRING NOT NULL, ttl INTEGER NOT NULL,
+ rdtype STRING NOT NULL, rdata STRING NOT NULL)""")
+ cur.execute("CREATE INDEX nsec3_byhash ON nsec3 (hash)")
+ cur.execute("CREATE INDEX nsec3_byrhash ON nsec3 (rhash)")
+ cur.execute("CREATE INDEX nsec3_byowner ON nsec3 (owner)")
+ cur.execute("CREATE INDEX nsec3_byrowner ON nsec3 (rowner)")
#########################################################################
# open: open a database. if the database is not yet set up,
More information about the bind10-changes
mailing list