showard | 3dd47c2 | 2008-07-10 00:41:36 +0000 | [diff] [blame] | 1 | #!/usr/bin/python |
| 2 | |
| 3 | import common |
| 4 | import MySQLdb |
| 5 | import sys |
| 6 | from autotest_lib.client.common_lib import global_config |
| 7 | |
| 8 | if (len(sys.argv) < 2 or |
| 9 | [arg for arg in sys.argv[1:] if arg.startswith('-')]): |
| 10 | print "Usage: %s username [username ...]" %sys.argv[0] |
| 11 | sys.exit(1) |
| 12 | |
| 13 | config = global_config.global_config |
| 14 | section = 'AUTOTEST_WEB' |
| 15 | host = config.get_config_value(section, "host") |
| 16 | db_name = config.get_config_value(section, "database") |
| 17 | user = config.get_config_value(section, "user") |
| 18 | password = config.get_config_value(section, "password") |
| 19 | |
| 20 | con = MySQLdb.connect(host=host, user=user, |
| 21 | passwd=password, db=db_name) |
| 22 | cur = con.cursor() |
| 23 | |
| 24 | for username in sys.argv[1:]: |
| 25 | cur.execute(""" |
| 26 | SELECT access_level |
showard | eab66ce | 2009-12-23 00:03:56 +0000 | [diff] [blame] | 27 | FROM afe_users |
showard | 3dd47c2 | 2008-07-10 00:41:36 +0000 | [diff] [blame] | 28 | WHERE login = %s""", username) |
| 29 | row = cur.fetchone() |
| 30 | |
| 31 | if row is None: |
| 32 | print "User %s does not exist. Creating..." % username |
| 33 | cur.execute(""" |
showard | eab66ce | 2009-12-23 00:03:56 +0000 | [diff] [blame] | 34 | INSERT INTO afe_users (login, access_level) |
showard | 3dd47c2 | 2008-07-10 00:41:36 +0000 | [diff] [blame] | 35 | VALUES (%s, 100)""", username) |
| 36 | print " Done" |
| 37 | else: |
| 38 | print "Updating user %s..." % username |
| 39 | cur.execute(""" |
showard | eab66ce | 2009-12-23 00:03:56 +0000 | [diff] [blame] | 40 | UPDATE afe_users |
showard | 3dd47c2 | 2008-07-10 00:41:36 +0000 | [diff] [blame] | 41 | SET access_level = 100 |
| 42 | WHERE login = %s""", username) |
| 43 | if (cur.rowcount == 1): |
| 44 | print " Done" |
| 45 | else: |
| 46 | print " %s is already a superuser!" % username |
| 47 | |
| 48 | cur.close() |
| 49 | con.commit() |
| 50 | con.close() |