From 342d5dfce063550faa6c8871768367e56577bb2c Mon Sep 17 00:00:00 2001 From: eric Date: Wed, 23 Jun 2004 15:49:09 +0000 Subject: [PATCH] added dummy data for testing --- support/schema/aur-schema.sql | 3 + support/schema/dummy-data.sql.gz | Bin 0 -> 74459 bytes support/schema/gendummydata.py | 253 +++++++++++++++++++++++++++++++ 3 files changed, 256 insertions(+) create mode 100644 support/schema/dummy-data.sql.gz create mode 100755 support/schema/gendummydata.py diff --git a/support/schema/aur-schema.sql b/support/schema/aur-schema.sql index ffd1d983..9c5d920a 100644 --- a/support/schema/aur-schema.sql +++ b/support/schema/aur-schema.sql @@ -144,8 +144,11 @@ CREATE TABLE PackageVotes ( -- CREATE TABLE PackageContents ( PackageID INTEGER UNSIGNED NOT NULL, + FileName CHAR(32) NOT NULL, Path CHAR(255) NOT NULL, + FileSize BIGINT UNSIGNED NOT NULL default 0, INDEX (PackageID), + INDEX (FileName), FOREIGN KEY (PackageID) REFERENCES Packages(ID) ON DELETE CASCADE ); diff --git a/support/schema/dummy-data.sql.gz b/support/schema/dummy-data.sql.gz new file mode 100644 index 0000000000000000000000000000000000000000..5f50b9a8d6183b0bf12474a3e28ca5c41de47421 GIT binary patch literal 74459 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ˊVnvWme(+-Lp@@59>-+Z9L3w+n$ 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⪙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 literal 0 HcmV?d00001 diff --git a/support/schema/gendummydata.py b/support/schema/gendummydata.py new file mode 100755 index 00000000..7fe51323 --- /dev/null +++ b/support/schema/gendummydata.py @@ -0,0 +1,253 @@ +#!/usr/bin/python +# +# This script seeds the AUR database with dummy data for +# use during development/testing. It uses random entries +# from /usr/share/dict/words to create user accounts and +# package names. It generates the SQL statements to +# insert these users/packages into the AUR database. +# + +DBUG = 1 +SEED_FILE = "/usr/share/dict/words" +DB_HOST = "localhost" +DB_NAME = "AUR" +DB_USER = "aur" +DB_PASS = "aur" +USER_ID = 5 # Users.ID of first user +PKG_ID = 1 # Packages.ID of first package +MAX_USERS = 100 # how many users to 'register' +MAX_PKGS = 250 # how many packages to load +PKG_FILES = (8, 30) # min/max number of files in a package +VOTING = (.3, .8) # percentage range for package voting +RANDOM_PATHS = [ # random path locations for package files + "/usr/bin", "/usr/lib", "/etc", "/etc/rc.d", "/usr/share", "/lib", + "/var/spool", "/var/log", "/usr/sbin", "/opt", "/usr/X11R6/bin", + "/usr/X11R6/lib", "/usr/libexec", "/usr/man/man1", "/usr/man/man3", + "/usr/man/man5", "/usr/X11R6/man/man1", "/etc/profile.d" +] + +import random +import time +import os +import sys +import cStringIO + +if len(sys.argv) != 2: + sys.stderr.write("Missing output filename argument"); + raise SystemExit + +# Just let python throw the errors if any happen +# +out = open(sys.argv[1], "w") + +# make sure the seed file exists +# +if not os.path.exists(SEED_FILE): + sys.stderr.write("Please install the 'words' Arch package\n"); + +# Make sure database access will be available +# +try: + import MySQLdb +except: + sys.stderr.write("Please install the 'mysql-python' Arch package\n"); + raise SystemExit + +# try to connect to database +# +try: + db = MySQLdb.connect(host = DB_HOST, user = DB_USER, + db = DB_NAME, passwd = DB_PASS) + dbc = db.cursor() +except: + sys.stderr.write("Could not connect to database\n"); + raise SystemExit + + +# track what users/package names have been used +# +seen_users = {} +seen_pkgs = {} +locations = {} +categories = {} +location_keys = [] +category_keys = [] +user_keys = [] + +# some functions to generate random data +# +def genVersion(): + major = random.randrange(0,10) + minor = random.randrange(0,20) + if random.randrange(0,2) == 0: + revision = random.randrange(0,100) + return "%d.%d.%d" % (major, minor, revision) + return "%d.%d" % (major, minor) +def genCategory(): + return categories[category_keys[random.randrange(0,len(category_keys))]] +def genLocation(): + return locations[location_keys[random.randrange(0,len(location_keys))]] +def genUID(): + return seen_users[user_keys[random.randrange(0,len(user_keys))]] + + +# load the words, and make sure there are enough words for users/pkgs +# +if DBUG: print "Grabbing words from seed file..." +fp = open(SEED_FILE, "r") +contents = fp.readlines() +fp.close() +if MAX_USERS > len(contents): + MAX_USERS = len(contents) +if MAX_PKGS > len(contents): + MAX_PKGS = len(contents) +if len(contents) - MAX_USERS > MAX_PKGS: + need_dupes = 0 +else: + need_dupes = 1 + +# select random usernames +# +if DBUG: print "Generating random user names..." +user_id = USER_ID +while len(seen_users) < MAX_USERS: + user = random.randrange(0, len(contents)) + word = contents[user].strip().replace("'", "").replace(" ", "_") + if not seen_users.has_key(user): + seen_users[word] = user_id + user_id += 1 +user_keys = seen_users.keys() + +# select random package names +# +if DBUG: print "Generating random package names..." +num_pkgs = PKG_ID +while len(seen_pkgs) < MAX_PKGS: + pkg = random.randrange(0, len(contents)) + word = contents[pkg].strip().replace("'", "").replace(" ", "_") + if not need_dupes: + if not seen_pkgs.has_key(word) and not seen_users.has_key(word): + seen_pkgs[word] = num_pkgs + num_pkgs += 1 + else: + if not seen_pkgs.has_key(word): + seen_pkgs[word] = num_pkgs + num_pkgs += 1 + +# Load package categories from database +# +if DBUG: print "Loading package categories/locations..." +q = "SELECT * FROM PackageCategories" +dbc.execute(q) +row = dbc.fetchone() +while row: + categories[row[1]] = row[0] + row = dbc.fetchone() +category_keys = categories.keys() + +# Load package locations from database +# +q = "SELECT * FROM PackageLocations" +dbc.execute(q) +row = dbc.fetchone() +while row: + locations[row[1]] = row[0] + row = dbc.fetchone() +location_keys = locations.keys() + +# done with the database +# +dbc.close() +db.close() + +# Begin by creating the User statements +# +if DBUG: print "Creating SQL statements for users.", +count = 0 +for u in user_keys: + s = """\ +INSERT INTO Users (ID, AccountTypeID, Username, Email, Passwd) + VALUES (%d, 1, '%s', '%s@example.com', '%s'); + """ % (seen_users[u], u, u, u) + out.write(s) + if count % 10 == 0: + if DBUG: print ".", + count += 1 +if DBUG: print "." + +# Create the package statements +# +if DBUG: print "Creating SQL statements for packages.", +count = 0 +for p in seen_pkgs.keys(): + s = """\ +INSERT INTO Packages (ID, Name, Version, CategoryID, LocationID, + SubmittedTS, SubmitterUID, MaintainerUID) + VALUES (%d, '%s', '%s', %d, %d, %d, %d, 1); + """ % (seen_pkgs[p], p, genVersion(), genCategory(), genLocation(), + long(time.time()), genUID()) + out.write(s) + if count % 100 == 0: + if DBUG: print ".", + count += 1 + + # Create package contents + # + num_files = random.randrange(PKG_FILES[0], PKG_FILES[1]) + files = {} + for f in range(num_files): + loc = RANDOM_PATHS[random.randrange(len(RANDOM_PATHS))] + if "lib" in loc: + path = loc + "/lib" + p + ".so" + elif "man" in loc: + path = loc + "/" + p + "." + loc[-1] + ".gz" + elif "share" in loc: + path = loc + "/" + p + "/sounds/" + p + ".wav" + elif "profile" in loc: + path = loc + "/" + p + ".sh" + elif "rc.d" in loc: + path = loc + "/" + p + elif "etc" in loc: + path = loc + "/" + p + ".conf" + elif "opt" in loc: + path = loc + "/" + p + "/bin/" + p + else: + path = loc + "/" + p + if not files.has_key(path): + files[path] = 1 + s = """\ +INSERT INTO PackageContents (PackageID, FileName, Path, FileSize) + VALUES (%d, '%s', '%s', %d); + """ % (seen_pkgs[p], os.path.basename(path), path, + random.randrange(0,99999999)) + out.write(s) +if DBUG: print "." + +# Cast votes +# +if DBUG: print "Casting votes for packages.", +count = 0 +for u in user_keys: + num_votes = random.randrange(len(seen_pkgs)*VOTING[0], + len(seen_pkgs)*VOTING[1]) + pkgvote = {} + for v in range(num_votes): + pkg = random.randrange(0, len(seen_pkgs)) + if not pkgvote.has_key(pkg): + s = """\ +INSERT INTO PackageVotes (UsersID, PackageID) VALUES (%d, %d); + """ % (seen_users[u], pkg) + pkgvote[pkg] = 1 + out.write(s) + if count % 100 == 0: + if DBUG: print ".", + count += 1 + +# close output file +# +out.write("\n") +out.close() + +if DBUG: print "." +if DBUG: print "Done." +