|
| 1 | +''' |
| 2 | +Created on Dec 8, 2012 |
| 3 | +
|
| 4 | +@author: psachdev |
| 5 | +''' |
| 6 | +import MySQLdb as db |
| 7 | +from MySQLdb.constants import FIELD_TYPE |
| 8 | + |
| 9 | +class DBManagerClass: |
| 10 | + ''' |
| 11 | + classdocs |
| 12 | + ''' |
| 13 | + |
| 14 | + |
| 15 | + def __init__(self): |
| 16 | + self.username = 'root' |
| 17 | + self.password = 'root' |
| 18 | + self.host = '127.0.0.1' |
| 19 | + self.dbname = 'staticanalysisresults' |
| 20 | + self.dbport = 3306 |
| 21 | + self.table_externalPackage = '3rd_party_packages' |
| 22 | + self.custom_conv = { FIELD_TYPE.BIT: int } |
| 23 | + self.connectToDb() |
| 24 | + self.createTables() |
| 25 | + |
| 26 | + def connectToDb (self): |
| 27 | + self.dbconn = db.Connect(self.host, self.username, self.password, self.dbname, self.dbport, conv=self.custom_conv) |
| 28 | + |
| 29 | + def createTables (self): |
| 30 | + cur = self.dbconn.cursor () |
| 31 | + cur.execute("CREATE TABLE IF NOT EXISTS \ |
| 32 | + Test_3rd_party_packages (Id INT PRIMARY KEY AUTO_INCREMENT, packagename VARCHAR(255), filename VARCHAR(255), category VARCHAR(255), 3rd_party_package VARCHAR(255))") |
| 33 | + cur.execute("CREATE TABLE IF NOT EXISTS \ |
| 34 | + Test_permissionlist (Id INT PRIMARY KEY AUTO_INCREMENT, packagename VARCHAR(255), appfilename VARCHAR(255), permission VARCHAR(255), is_external INT, dest VARCHAR(255), 3rd_party_package VARCHAR(255), src VARCHAR(255))") |
| 35 | + cur.execute("CREATE TABLE IF NOT EXISTS \ |
| 36 | + Test_linkurl (Id INT PRIMARY KEY AUTO_INCREMENT, packagename VARCHAR(255), appfilename VARCHAR(255), link_url VARCHAR(255), is_external INT, triggered_by_code VARCHAR(255), 3rd_party_package VARCHAR(255))") |
| 37 | + |
| 38 | + def insert3rdPartyPackageInfo (self, packagename, filename, externalpackagename, category): |
| 39 | + cur = self.dbconn.cursor() |
| 40 | + escape_packagename = str (self.dbconn.escape_string(packagename)) |
| 41 | + escape_filename = str (self.dbconn.escape_string(filename)) |
| 42 | + escape_externalpackagename = str (self.dbconn.escape_string(externalpackagename)) |
| 43 | + escape_category = str (self.dbconn.escape_string(category)) |
| 44 | + rows_affected = cur.execute("INSERT INTO Test_3rd_party_packages (packagename, filename, category, 3rd_party_package) VALUES('%s', '%s', '%s', '%s')" % (escape_packagename, escape_filename, escape_category, escape_externalpackagename)) |
| 45 | + self.dbconn.commit() |
| 46 | + #print "Rows affected after inserting 3rdpartypackage - " + str (rows_affected) |
| 47 | + |
| 48 | + |
| 49 | + def insertPermissionInfo (self, packagename, filename, permission, is_external, dest, externalpackagename, src): |
| 50 | + cur = self.dbconn.cursor() |
| 51 | + escape_packagename = str (self.dbconn.escape_string(packagename)) |
| 52 | + escape_filename = str (self.dbconn.escape_string(filename)) |
| 53 | + escape_externalpackagename = str (self.dbconn.escape_string(externalpackagename)) |
| 54 | + escape_permission = str (self.dbconn.escape_string(permission)) |
| 55 | + escape_dest = str (self.dbconn.escape_string(dest)) |
| 56 | + escape_src = str (self.dbconn.escape_string(src)) |
| 57 | + |
| 58 | + rows_affected = cur.execute("INSERT INTO Test_permissionlist (packagename, appfilename, permission, is_external, dest, 3rd_party_package, src) VALUES('%s', '%s', '%s', '%i', '%s', '%s', '%s')" % (escape_packagename, escape_filename, escape_permission, is_external, escape_dest, escape_externalpackagename, escape_src)) |
| 59 | + self.dbconn.commit() |
| 60 | + #print "Rows affected after inserting permission - " + str (rows_affected) |
| 61 | + |
| 62 | + def insertLinkInfo (self, packagename, filename, link_url, is_external, triggered_by_code, externalpackagename): |
| 63 | + cur = self.dbconn.cursor() |
| 64 | + escape_packagename = str (self.dbconn.escape_string(packagename)) |
| 65 | + escape_filename = str (self.dbconn.escape_string(filename)) |
| 66 | + escape_triggered_by_code = str (self.dbconn.escape_string( triggered_by_code)) |
| 67 | + escape_externalpackagename = str (self.dbconn.escape_string(externalpackagename)) |
| 68 | + escape_url = str (self.dbconn.escape_string(link_url)) |
| 69 | + rows_affected = cur.execute("INSERT INTO Test_linkurl (packagename, appfilename, link_url, is_external, triggered_by_code, 3rd_party_package) VALUES('%s', '%s', '%s', '%d', '%s', '%s')" % (escape_packagename, escape_filename, escape_url, is_external, escape_triggered_by_code, escape_externalpackagename)) |
| 70 | + self.dbconn.commit() |
| 71 | + #print "Rows affected after inserting permission - " + str (rows_affected) |
| 72 | + |
| 73 | + def deleteEntry (self, apkname): |
| 74 | + cur = self.dbconn.cursor() |
| 75 | + escape_apkname = str (self.dbconn.escape_string(apkname)) |
| 76 | + rows_affected = cur.execute("DELETE FROM Test_linkurl WHERE packagename='%s'" % (escape_apkname)) |
| 77 | + print "Rows affected after deletion - " + str (rows_affected) |
| 78 | + rows_affected = cur.execute("DELETE FROM Test_permissionlist WHERE packagename='%s'" % (escape_apkname)) |
| 79 | + print "Rows affected after deletion - " + str (rows_affected) |
| 80 | + rows_affected = cur.execute("DELETE FROM Test_3rd_party_packages WHERE packagename='%s'" % (escape_apkname)) |
| 81 | + print "Rows affected after deletion - " + str (rows_affected) |
| 82 | + self.dbconn.commit() |
| 83 | + |
| 84 | + |
| 85 | + |
| 86 | + |
0 commit comments