X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fimport_users_from_passwd.py;h=ae99ef9094db7d8601202a79d47a2e09debd7471;hb=fdbef587c29814f97c192de5a8b7e9f09cc45fa4;hp=07c6193aede7a23c8efaf8e7765a8d023d870d58;hpb=ab05ca96b264f957eb5278e069f22a400142f54a;p=dak.git diff --git a/dak/import_users_from_passwd.py b/dak/import_users_from_passwd.py index 07c6193a..ae99ef90 100755 --- a/dak/import_users_from_passwd.py +++ b/dak/import_users_from_passwd.py @@ -63,8 +63,8 @@ def main (): if not cnf.has_key("Import-Users-From-Passwd::Options::%s" % (i)): cnf["Import-Users-From-Passwd::Options::%s" % (i)] = "" - arguments = apt_pkg.ParseCommandLine(cnf.Cnf, Arguments, sys.argv) - Options = cnf.SubTree("Import-Users-From-Passwd::Options") + arguments = apt_pkg.parse_commandline(cnf.Cnf, Arguments, sys.argv) + Options = cnf.subtree("Import-Users-From-Passwd::Options") if Options["Help"]: usage() @@ -99,8 +99,9 @@ def main (): keys = postgres_unames.keys() keys.sort() for uname in keys: - if not passwd_unames.has_key(uname)and not known_postgres_unames.has_key(uname): - print "W: %s is in Postgres but not the passwd file or list of known Postgres users." % (uname) + if not passwd_unames.has_key(uname) and not known_postgres_unames.has_key(uname): + print "I: Deleting %s from Postgres, no longer in passwd or list of known Postgres users" % (uname) + q = session.execute('DROP USER "%s"' % (uname)) keys = passwd_unames.keys() keys.sort() @@ -114,7 +115,12 @@ def main (): # NB: I never figured out how to use a bind parameter for this query # XXX: Fix this as it looks like a potential SQL injection attack to me # (hence the safe_name match we do) - q = session.execute('CREATE USER "%s"' % (uname)) + try: + q = session.execute('CREATE USER "%s"' % (uname)) + session.commit() + except Exception as e: + utils.warn("Could not create user %s (%s)" % (uname, str(e))) + session.rollback() else: print "NOT CREATING USER %s. Doesn't match safety regex" % uname