aboutsummaryrefslogtreecommitdiff
path: root/rp
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2016-02-15 23:08:06 +0000
committerRob Austein <sra@hactrn.net>2016-02-15 23:08:06 +0000
commit5250ae9f0894ea8152fc9bc7692e6fb117f85f58 (patch)
treeb67bfb1a340eac933ae936fdb0969fca067a6626 /rp
parent33f37a6caa6ed69a9463b2684cab8b8510e4b3ae (diff)
Snapshot before whacking migrations.
svn path=/branches/tk705/; revision=6259
Diffstat (limited to 'rp')
-rw-r--r--rp/config/Makefile.in12
-rwxr-xr-xrp/config/rpki-sql-setup34
2 files changed, 23 insertions, 23 deletions
diff --git a/rp/config/Makefile.in b/rp/config/Makefile.in
index d7367a5f..c6050f3e 100644
--- a/rp/config/Makefile.in
+++ b/rp/config/Makefile.in
@@ -23,7 +23,7 @@ srcdir = @srcdir@
CFG_INSTALL_TARGETS = @CFG_INSTALL_TARGETS@
-all:: rpki.rp.xml rpki.rp.sample.conf
+all:: rpki.rp.xml rpki.rp.conf.sample
clean::
@true
@@ -35,7 +35,7 @@ install-always:: all
@echo "== Default configuration file location is ${sysconfdir}/rpki.conf =="
@echo
${INSTALL} -d ${DESTDIR}${sysconfdir}/rpki
- ${INSTALL} rpki.rp.xml rpki.rp.sample.conf ${DESTDIR}${sysconfdir}/rpki
+ ${INSTALL} rpki.rp.xml rpki.rp.conf.sample ${DESTDIR}${sysconfdir}/rpki
test uninstall deinstall::
@true
@@ -56,13 +56,13 @@ rpki.rp.xml: ${abs_top_srcdir}/rpki/autoconf.py rpki-confgen rpki-confgen.xml
--set myrpki::run_pubd=no \
--write-xml $@
-rpki.rp.sample.conf: rpki.rp.xml
+rpki.rp.conf.sample: rpki.rp.xml
${PYTHON} rpki-confgen \
--read-xml rpki.rp.xml \
--write-conf $@
clean::
- rm -f rpki.rp.xml rpki.rp.sample.conf
+ rm -f rpki.rp.xml rpki.rp.conf.sample
install-postconf: \
install-user install-conf install-sql install-django
@@ -75,10 +75,10 @@ install-user:
install-conf:
test -f ${DESTDIR}${sysconfdir}/rpki.conf ||\
- cp -p ${DESTDIR}${sysconfdir}/rpki/rpki.rp.sample.conf ${DESTDIR}${sysconfdir}/rpki.conf
+ cp -p ${DESTDIR}${sysconfdir}/rpki/rpki.rp.conf.sample ${DESTDIR}${sysconfdir}/rpki.conf
#uninstall deinstall::
-# rm -f ${DESTDIR}${sysconfdir}/rpki/rpki.rp.xml ${DESTDIR}${sysconfdir}/rpki/rpki.rp.sample.conf
+# rm -f ${DESTDIR}${sysconfdir}/rpki/rpki.rp.xml ${DESTDIR}${sysconfdir}/rpki/rpki.rp.conf.sample
install-sql:
${sbindir}/rpki-sql-setup create
diff --git a/rp/config/rpki-sql-setup b/rp/config/rpki-sql-setup
index c72c97c5..98ef2898 100755
--- a/rp/config/rpki-sql-setup
+++ b/rp/config/rpki-sql-setup
@@ -54,10 +54,6 @@ class Abstract_Driver(object):
else:
return True
- def db_exists(self, udb):
- self.execute("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = %s", (udb.database,))
- return bool(self.fetchone()[0])
-
def fetchone(self):
return self._cur.fetchone()
@@ -88,6 +84,10 @@ class MySQL_Driver(Abstract_Driver):
def _db_accessible_test(self, udb):
self.driver.connect(db = udb.database, user = udb.username, passwd = udb.password).close()
+ def db_exists(self, udb):
+ self.execute("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '{0.database}'".format(udb))
+ return bool(self.fetchone()[0])
+
def execute(*args):
try:
self._cur
@@ -203,27 +203,27 @@ class PostgreSQL_Driver(Abstract_Driver):
finally:
self._seteuid(uid)
- def _role_in_use(self, udb):
- self.execute('''\
+ def db_exists(self, udb):
+ self.execute("SELECT COUNT(*) FROM pg_database WHERE datname = '{0.database}'".format(udb))
+ return bool(self.fetchone()[0])
+
+ def role_in_use(self, udb):
+ self.execute(textwrap.dedent('''\
SELECT COUNT(*) FROM pg_database
JOIN pg_roles ON pg_database.datdba = pg_roles.oid
- WHERE pg_roles.rolname = %s''', (udb.username,))
+ WHERE pg_roles.rolname = '{0.username}'
+ '''.format(udb)))
return bool(self.fetchone()[0])
def create(self, udb):
- self.execute('''\
- DO $$ BEGIN
- IF NOT EXISTS (SELECT * FROM pg_catalog.pg_roles
- WHERE rolname = '{0.username}')
- THEN
- CREATE ROLE {0.username} LOGIN PASSWORD '{0.password}';
- END IF;
- END $$'''.format(udb))
- self.execute("CREATE DATABASE {0.database} OWNER {0.username}".format(udb))
+ if not self.role_in_use(udb):
+ self.execute("CREATE ROLE {0.username} LOGIN PASSWORD '{0.password}'".format(udb))
+ if not self.db_exists(udb):
+ self.execute("CREATE DATABASE {0.database} OWNER {0.username}".format(udb))
def drop(self, udb):
self.execute("DROP DATABASE IF EXISTS {0.database}".format(udb))
- if not self._role_in_use(udb):
+ if not self.role_in_use(udb):
self.execute("DROP ROLE IF EXISTS {0.username}".format(udb))
def script_drop(self, udb):