Create base class and SQLite class.
authorRazvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Tue, 16 Aug 2011 16:08:32 +0000 (19:08 +0300)
committerRazvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Tue, 16 Aug 2011 17:53:38 +0000 (20:53 +0300)
ppf/db/access.py

index 527a02e..e32a4e1 100644 (file)
@@ -17,21 +17,19 @@ class DatabaseAccess:
         insert_swarms - row fields to be added are passed as separate
                         arguments
     """
-    operators={'eq':'=', 'neq':'<>', 'gt':'>', 'gte':'>=', 'lt':'<', 'lte':'<=', 'lk':'LIKE'}
 
-    def __init__ (self, dbname):
-        self.dbname = dbname
+    self.operators = {'eq':'=', 'neq':'<>', 'gt':'>', 'gte':'>=', 'lt':'<', 'lte':'<=', 'lk':'LIKE'}
 
-    def connect(self):
-        if not os.path.isfile(self.dbname):
-            return False
-        self.conn = sqlite3.connect(self.dbname)
-        self.cursor = self.conn.cursor()
+    def __init__(self):
+        pass
+
+    def connect(self, database):
+        self.conn = None
+        self.cursor = None
         return True
 
     def disconnect(self):
-        self.cursor.close()
-        self.conn.close()
+        pass
 
     def get_cursor(self):
         return self.cursor
@@ -39,18 +37,96 @@ class DatabaseAccess:
     def get_connection(self):
         return self.conn
 
-    def get_status(self):
-        """
-        Select rows in all tables
-        """
-        tables = ['swarms', 'btclients', 'client_sessions', 'status_messages', 'verbose_messages']
-        for t in tables:
-            try:
-                self.cursor.execute("select * from '%s'" %t)
-                for row in self.cursor:
-                    print row
-            except sqlite3.Error, e:
-                print "[select] error: ", e.args[0]
+    def insert_swarms_row(self, row):
+        pass
+
+    def insert_swarms(self, torrent_file, filesize, purpose, source):
+        self.insert_swarms_row([torrent_file, filesize, purpose, source])
+
+    def select_swarms(self, show=True, swarm_id=-1):
+        pass
+
+    def delete_swarms(self, swarm_id=-1):
+        pass
+
+    def insert_btclients_row(self, row):
+        pass
+
+    def insert_btclients(self, client_name, language, dht, streaming):
+        insert_btclients_row([client_name, language, dht, streaming])
+
+    def select_btclients(self, show=True, id=-1):
+        pass
+
+    def select_btclients_by_name(self, client_name, show=True):
+        pass
+
+    def select_btclients_id_by_name(self, client_name):
+        pass
+
+    def insert_client_sessions_row(self, row):
+        pass
+
+    def insert_client_sessions(self, swarm_id, client_id, system_os, system_os_version, system_ram, system_cpu, public_ip, public_port, ds_limit, us_limit, start_time):
+        self.insert_client_sessions_row([swarm_id, client_id, system_os, system_os_version, system_ram, system_cpu, public_ip, public_port, ds_limit, us_limit, start_time]);
+
+    def select_client_sessions_by_id(self, show=True, cs_id=-1):
+        pass
+
+    def select_client_sessions_by_swarm(self, show=True, swarm_id=-1, client_id=None):
+        pass
+
+    def delete_client_sessions_by_id(self, cs_id=-1):
+        pass
+
+    def delete_client_sessions_by_swarm(self, swarm_id=-1, client_id=None):
+        pass
+
+    def insert_status_messages_row(self, row):
+        pass
+
+    def insert_status_messages(self, cs_id, timestamp, peer_num, dht, download_speed, upload_speed, download_size, upload_size, eta):
+        self.insert_status_messages_row([cs_id, timestamp, peer_num, dht, download_speed, upload_speed, download_size, upload_size, eta])
+
+    def select_status_messages(self, show=True, cs_id=-1, restrictArray=None):
+        pass
+
+    def delete_status_messages(self, cs_id=-1):
+        pass
+
+    def insert_verbose_messages_row(self, row):
+        pass
+
+    def insert_verbose_messages(self, cs_id, timestamp, direction, peer_ip, peer_port, message_type, _index, begin, length, listen_port):
+        self.insert_verbose_messages_row([cs_id, timestamp, direction, peer_ip, peer_port, message_type, _index, begin, length, listen_port])
+
+    def select_verbose_messages(self, show=True, cs_id=-1, restrictArray=None):
+        pass
+
+    def delete_verbose_messages(self, cs_id=-1):
+        pass
+
+
+class MySQLDatabaseAccess(DatabaseAccess):
+    """
+    SQLite interface for databae access.
+    """
+
+class SQLiteDatabaseAccess(DatabaseAccess):
+    """
+    SQLite interface for databae access.
+    """
+
+    def connect(self, database):
+        if not os.path.isfile(self.database):
+            return False
+        self.conn = sqlite3.connect(self.dbname)
+        self.cursor = self.conn.cursor()
+        return True
+
+    def disconnect(self):
+        self.cursor.close()
+        self.conn.close()
 
     def insert_swarms_row(self, row):
         try:
@@ -59,10 +135,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[swarms]An error ocurred: ", e.args[0])
 
-    def insert_swarms(self, torrent_file, filesize, purpose, source):
-        self.insert_swarms_row([torrent_file, filesize, purpose, source])
-
-    def select_swarms(self, show = True, swarm_id = -1):
+    def select_swarms(self, show=True, swarm_id=-1):
         try:
             if swarm_id == -1:
                 self.cursor.execute("select * from swarms")
@@ -77,7 +150,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print("[swarms]An error ocurred: ", e.args[0])
 
-    def delete_swarms(self, swarm_id = -1):
+    def delete_swarms(self, swarm_id=-1):
         try:
             if swarm_id == -1:
                 self.cursor.execute("delete from swarms")
@@ -94,10 +167,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[btclients]An error ocurred: ", e.args[0])
 
-    def insert_btclients(self, client_name, language, dht, streaming):
-        btclients([client_name, language, dht, streaming])
-
-    def select_btclients(self, show = True, id = -1):
+    def select_btclients(self, show=True, id=-1):
         try:
             if id == -1:
                 self.cursor.execute("""select * from btclients""")
@@ -111,7 +181,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[btclients]An error ocurred: ", e.args[0])
 
-    def select_btclient_by_name(self, client_name, show = True):
+    def select_btclients_by_name(self, client_name, show=True):
         try:
             self.cursor.execute("""select * from btclients where name='%s'""" %client_name)
             if show == True:
@@ -122,7 +192,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[btclients]An error ocurred: ", e.args[0])
 
-    def select_btclient_id_by_name(self, client_name):
+    def select_btclients_id_by_name(self, client_name):
         try:
             self.cursor.execute("""select * from btclients where name='%s'""" %client_name)
             for row in self.cursor:
@@ -137,10 +207,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[client_sessions]An error ocurred: ", e.args[0])
 
-    def insert_client_sessions(self, swarm_id, client_id, system_os, system_os_version, system_ram, system_cpu, public_ip, public_port, ds_limit, us_limit, start_time):
-        self.insert_client_sessions_row([swarm_id, client_id, system_os, system_os_version, system_ram, system_cpu, public_ip, public_port, ds_limit, us_limit, start_time]);
-
-    def select_client_sessions_by_id(self, show = True, cs_id = -1):
+    def select_client_sessions_by_id(self, show=True, cs_id=-1):
         try:
             if cs_id == -1:
                 self.cursor.execute("""select * from client_sessions""")
@@ -154,7 +221,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[client_sessions]An error ocurred: ", e.args[0])
 
-    def select_client_sessions_by_swarm(self, show = True, swarm_id = -1, client_id = None):
+    def select_client_sessions_by_swarm(self, show=True, swarm_id=-1, client_id=None):
         try:
             if client_id == None:
                 if swarm_id == -1:
@@ -175,7 +242,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[client_sessions]An error ocurred: ", e.args[0])
 
-    def delete_client_sessions_by_id(self, cs_id = -1):
+    def delete_client_sessions_by_id(self, cs_id=-1):
         try:
             if cs_id == -1:
                 self.cursor.execute("""delete from client_sessions""")
@@ -185,7 +252,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[client_sessions]An error ocurred: ", e.args[0])
 
-    def delete_client_sessions_by_swarm(self, swarm_id = -1, client_id = None):
+    def delete_client_sessions_by_swarm(self, swarm_id=-1, client_id=None):
         try:
             if client_id == None:
                 if swarm_id == -1:
@@ -210,10 +277,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[status_messages]An error ocurred: ", e.args[0])
 
-    def insert_status_messages(self, cs_id, timestamp, peer_num, dht, download_speed, upload_speed, download_size, upload_size, eta):
-        self.insert_status_messages_row([cs_id, timestamp, peer_num, dht, download_speed, upload_speed, download_size, upload_size, eta])
-
-    def select_status_messages(self, show = True, cs_id = -1, restrictArray=None):
+    def select_status_messages(self, show=True, cs_id=-1, restrictArray=None):
         try:
             if cs_id == -1:
                 self.cursor.execute("select * from status_messages")
@@ -238,7 +302,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print("[status_messages]An error ocurred: ", e.args[0])
 
-    def delete_status_messages(self, cs_id = -1):
+    def delete_status_messages(self, cs_id=-1):
         try:
             if cs_id == -1:
                 self.cursor.execute("delete from status_messages")
@@ -257,10 +321,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print ("[verbose_messages]An error ocurred: ", e.args[0])
 
-    def insert_verbose_messages(self, cs_id, timestamp, direction, peer_ip, peer_port, message_type, _index, begin, length, listen_port):
-        self.insert_verbose_messages_row([cs_id, timestamp, direction, peer_ip, peer_port, message_type, _index, begin, length, listen_port])
-
-    def select_verbose_messages(self, show = True, cs_id = -1, restrictArray=None):
+    def select_verbose_messages(self, show=True, cs_id=-1, restrictArray=None):
         try:
             if cs_id == -1:
                 self.cursor.execute("select * from verbose_messages")
@@ -284,7 +345,7 @@ class DatabaseAccess:
         except sqlite3.Error, e:
             print("[status_messages]An error ocurred: ", e.args[0])
 
-    def delete_verbose_messages(self, cs_id = -1):
+    def delete_verbose_messages(self, cs_id=-1):
         try:
             if cs_id == -1:
                 self.cursor.execute("delete from verbose_messages")