From fc2941d92286ca1e01400c3a46abbd88b411f6f8 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Wed, 14 Dec 2011 04:01:52 +0000 Subject: Start hacking replacement for myrpki comamnd (rpkic) which uses the new Django-model-based entitydb and IRDB. svn path=/branches/tk100/; revision=4121 --- rpkid/tests/sql-cleaner.py | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'rpkid/tests/sql-cleaner.py') diff --git a/rpkid/tests/sql-cleaner.py b/rpkid/tests/sql-cleaner.py index 5c772bc4..5d11781f 100644 --- a/rpkid/tests/sql-cleaner.py +++ b/rpkid/tests/sql-cleaner.py @@ -3,7 +3,7 @@ $Id$ -Copyright (C) 2009--2010 Internet Systems Consortium ("ISC") +Copyright (C) 2009--2011 Internet Systems Consortium ("ISC") Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above @@ -18,7 +18,8 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. """ -import subprocess, rpki.config +import rpki.config, rpki.sql_schemas +from rpki.mysql_import import MySQLdb cfg = rpki.config.parser(None, "yamltest", allow_missing = True) @@ -26,8 +27,30 @@ for name in ("rpkid", "irdbd", "pubd"): username = cfg.get("%s_sql_username" % name, name[:4]) password = cfg.get("%s_sql_password" % name, "fnord") + + schema = [] + for line in getattr(rpki.sql_schemas, name).splitlines(): + schema.extend(line.partition("--")[0].split()) + schema = " ".join(schema).strip(";").split(";") + schema = [statement.strip() for statement in schema if "DROP TABLE" not in statement] for i in xrange(12): - subprocess.check_call( - ("mysql", "-u", username, "-p" + password, "%s%d" % (name[:4], i)), - stdin = open("../%s.sql" % name)) + + database = "%s%d" % (name[:4], i) + + db = MySQLdb.connect(user = username, db = database, passwd = password) + cur = db.cursor() + + cur.execute("SHOW TABLES") + tables = [r[0] for r in cur.fetchall()] + + cur.execute("SET foreign_key_checks = 0") + for table in tables: + cur.execute("DROP TABLE %s" % table) + cur.execute("SET foreign_key_checks = 1") + + for statement in schema: + cur.execute(statement) + + cur.close() + db.close() -- cgit v1.2.3 From 39676701fc6c5dedde2248178b16b394e90d48b9 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Sat, 7 Jan 2012 09:19:03 +0000 Subject: Checkpoint. rpkic and yamltest mostly work, but irdbd is still acting weird. svn path=/branches/tk100/; revision=4146 --- rpkid/tests/sql-cleaner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'rpkid/tests/sql-cleaner.py') diff --git a/rpkid/tests/sql-cleaner.py b/rpkid/tests/sql-cleaner.py index 5d11781f..5db122e1 100644 --- a/rpkid/tests/sql-cleaner.py +++ b/rpkid/tests/sql-cleaner.py @@ -29,10 +29,10 @@ for name in ("rpkid", "irdbd", "pubd"): password = cfg.get("%s_sql_password" % name, "fnord") schema = [] - for line in getattr(rpki.sql_schemas, name).splitlines(): + for line in getattr(rpki.sql_schemas, name, "").splitlines(): schema.extend(line.partition("--")[0].split()) schema = " ".join(schema).strip(";").split(";") - schema = [statement.strip() for statement in schema if "DROP TABLE" not in statement] + schema = [statement.strip() for statement in schema if statement and "DROP TABLE" not in statement] for i in xrange(12): -- cgit v1.2.3