diff options
Diffstat (limited to 'models/openid-php-openid-782224d/contrib/upgrade-store-1.1-to-2.0')
| -rw-r--r-- | models/openid-php-openid-782224d/contrib/upgrade-store-1.1-to-2.0 | 170 | 
1 files changed, 0 insertions, 170 deletions
diff --git a/models/openid-php-openid-782224d/contrib/upgrade-store-1.1-to-2.0 b/models/openid-php-openid-782224d/contrib/upgrade-store-1.1-to-2.0 deleted file mode 100644 index 1f587c357..000000000 --- a/models/openid-php-openid-782224d/contrib/upgrade-store-1.1-to-2.0 +++ /dev/null @@ -1,170 +0,0 @@ -#!/usr/bin/env python -# SQL Store Upgrade Script -# for version 1.x to 2.0 of the OpenID library. -# Doesn't depend on the openid library, so you can run this python -# script to update databases for ruby or PHP as well. -# -# Testers note: -# -#   A SQLite3 db with the 1.2 schema exists in -#   openid/test/data/openid-1.2-consumer-sqlitestore.db if you want something -#   to try upgrading. -# -#   TODO: -#    * test data for mysql and postgresql. -#    * automated tests. - -import os -import getpass -import sys -from optparse import OptionParser - - -def askForPassword(): -    return getpass.getpass("DB Password: ") - -def askForConfirmation(dbname,tablename): -    print """The table %s from the database %s will be dropped, and -    an empty table with the new nonce table schema will replace it."""%( -    tablename, dbname) -    return raw_input("Continue? ").lower().strip().startswith('y') - -def doSQLiteUpgrade(db_conn, nonce_table_name='oid_nonces'): -    cur = db_conn.cursor() -    cur.execute('DROP TABLE %s'%nonce_table_name) -    sql = """ -    CREATE TABLE %s ( -        server_url VARCHAR, -        timestamp INTEGER, -        salt CHAR(40), -        UNIQUE(server_url, timestamp, salt) -    ); -    """%nonce_table_name -    cur.execute(sql) -    cur.close() - -def doMySQLUpgrade(db_conn, nonce_table_name='oid_nonces'): -    cur = db_conn.cursor() -    cur.execute('DROP TABLE %s'%nonce_table_name) -    sql = """ -    CREATE TABLE %s ( -        server_url BLOB, -        timestamp INTEGER, -        salt CHAR(40), -        PRIMARY KEY (server_url(255), timestamp, salt) -    ) -    TYPE=InnoDB; -    """%nonce_table_name -    cur.execute(sql) -    cur.close() - -def doPostgreSQLUpgrade(db_conn, nonce_table_name='oid_nonces'): -    cur = db_conn.cursor() -    cur.execute('DROP TABLE %s'%nonce_table_name) -    sql = """ -    CREATE TABLE %s ( -        server_url VARCHAR(2047), -        timestamp INTEGER, -        salt CHAR(40), -        PRIMARY KEY (server_url, timestamp, salt) -    ); -    """%nonce_table_name -    cur.execute(sql) -    cur.close() -    db_conn.commit() - -def main(argv=None): -    parser = OptionParser() -    parser.add_option("-u", "--user", dest="username", -                      default=os.environ.get('USER'), -                      help="User name to use to connect to the DB.  " -                      "Defaults to USER environment variable.") -    parser.add_option('-t', '--table', dest='tablename', default='oid_nonces', -                      help='The name of the nonce table to drop and recreate. ' -                      ' Defaults to "oid_nonces", the default table name for ' -                      'the openid stores.') -    parser.add_option('--mysql', dest='mysql_db_name', -                      help='Upgrade a table from this MySQL database.  ' -                      'Requires username for database.') -    parser.add_option('--pg', '--postgresql', dest='postgres_db_name', -                      help='Upgrade a table from this PostgreSQL database.  ' -                      'Requires username for database.') -    parser.add_option('--sqlite', dest='sqlite_db_name', -                      help='Upgrade a table from this SQLite database file.') -    parser.add_option('--host', dest='db_host', -                      default='localhost', -                      help='Host on which to find MySQL or PostgreSQL DB.') -    (options, args) = parser.parse_args(argv) - -    db_conn = None - -    if options.sqlite_db_name: -        try: -            from pysqlite2 import dbapi2 as sqlite -        except ImportError: -            print "You must have pysqlite2 installed in your PYTHONPATH." -            return 1 -        try: -            db_conn = sqlite.connect(options.sqlite_db_name) -        except Exception, e: -            print "Could not connect to SQLite database:", str(e) -            return 1 - -        if askForConfirmation(options.sqlite_db_name, options.tablename): -            doSQLiteUpgrade(db_conn, nonce_table_name=options.tablename) - -    if options.postgres_db_name: -        if not options.username: -            print "A username is required to open a PostgreSQL Database." -            return 1 -        password = askForPassword() -        try: -            import psycopg -        except ImportError: -            print "You need psycopg installed to update a postgres DB." -            return 1 - -        try: -            db_conn = psycopg.connect(database = options.postgres_db_name, -                                      user = options.username, -                                      host = options.db_host, -                                      password = password) -        except Exception, e: -            print "Could not connect to PostgreSQL database:", str(e) -            return 1 - -        if askForConfirmation(options.postgres_db_name, options.tablename): -            doPostgreSQLUpgrade(db_conn, nonce_table_name=options.tablename) - -    if options.mysql_db_name: -        if not options.username: -            print "A username is required to open a MySQL Database." -            return 1 -        password = askForPassword() -        try: -            import MySQLdb -        except ImportError: -            print "You must have MySQLdb installed to update a MySQL DB." -            return 1 - -        try: -            db_conn = MySQLdb.connect(options.db_host, options.username, -                                      password, options.mysql_db_name) -        except Exception, e: -            print "Could not connect to MySQL database:", str(e) -            return 1 - -        if askForConfirmation(options.mysql_db_name, options.tablename): -            doMySQLUpgrade(db_conn, nonce_table_name=options.tablename) - -    if db_conn: -        db_conn.close() -    else: -        parser.print_help() - -    return 0 - - -if __name__ == '__main__': -    retval = main() -    sys.exit(retval)  | 
