ppf: Modify DatabaseAccess.py to use new SQL schema.
authorMariana Marasoiu <mariana.marasoiu@gmail.com>
Thu, 11 Aug 2011 17:48:41 +0000 (20:48 +0300)
committerroot p2p-next-02 <root@p2p-next-02.grid.pub.ro>
Thu, 11 Aug 2011 17:53:47 +0000 (20:53 +0300)
ppf/db-mysql/DatabaseAccess.py

index 9f18c5e..f12b3e2 100644 (file)
@@ -63,7 +63,7 @@ class DatabaseAccess:
         """
         Select rows in all tables
         """
-        tables = ['swarms', 'btclients', 'client_sessions', 'status_messages', 'verbose_messages']
+        tables = ['swarms', 'btclients', 'client_sessions', 'status_messages', 'verbose_messages', 'peer_status_messages', 'transfer_directions', 'message_types']
         for t in tables:
             try:
                 self.cursor.execute("select * from %s" %t)
@@ -74,13 +74,13 @@ class DatabaseAccess:
 
     def insert_swarms_row(self, row):
         try:
-            self.cursor.execute("insert into swarms(torrent, filesize, purpose, source) values (%s,%s,%s,%s)", row)
+            self.cursor.execute("insert into swarms(torrent_filename, data_size, description) values (%s,%s,%s)", row)
             self.conn.commit()
         except MySQLdb.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 insert_swarms(self, torrent_filename, data_size, description):
+        self.insert_swarms_row([torrent_filename, data_size, description])
 
     def select_swarms(self, show = True, swarm_id = -1):
         try:
@@ -109,13 +109,13 @@ class DatabaseAccess:
 
     def insert_btclients_row(self, row):
         try:
-            self.cursor.execute("insert into btclients(name, language, dht, streaming) values (%s,%s,%s,%s)", row)
+            self.cursor.execute("insert into btclients(name, language, url, dht_support, streaming_support, pxe_support, features) values (%s,%s,%s,%s,%s,%s,%s)", row)
             self.conn.commit()
         except MySQLdb.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 insert_btclients(self, client_name, language, url, dht_support, streaming_support, pxe_support, features):
+        self.insert_btclients_row(self, client_name, language, url, dht_support, streaming_support, pxe_support, features)
 
     def select_btclients(self, show = True, id = -1):
         try:
@@ -152,13 +152,13 @@ class DatabaseAccess:
 
     def insert_client_sessions_row(self, row):
         try:
-            self.cursor.execute("insert into client_sessions(swarm_id, client_id, system_os, system_os_version, system_ram, system_cpu, public_ip, public_port, ds_limit, us_limit, start_time) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", row)
+            self.cursor.execute("insert into client_sessions(swarm_id, btclient_id, system_os, system_os_version, system_ram, system_cpu, public_ip, public_port, ds_limit, us_limit, start_time, dht_enabled, pxe_enabled, streaming_enabled, features, description) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", row)
             self.conn.commit()
         except MySQLdb.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 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, dht_enabled, pxe_enabled, streaming_enabled, features, description):
+        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, dht_enabled, pxe_enabled, streaming_enabled, features, description])
 
     def select_client_sessions_by_id(self, show = True, cs_id = -1):
         try:
@@ -174,18 +174,18 @@ class DatabaseAccess:
         except MySQLdb.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, btclient_id = None):
         try:
-            if client_id == None:
+            if btclient_id == None:
                 if swarm_id == -1:
                     self.cursor.execute("""select * from client_sessions""")
                 else:
                     self.cursor.execute("""select * from client_sessions where swarm_id=%s""", (swarm_id, ))
             else:
                 if swarm_id == -1:
-                    self.cursor.execute("""select * from client_sessions where client_id=%s""", (client_id, ))
+                    self.cursor.execute("""select * from client_sessions where btclient_id=%s""", (btclient_id, ))
                 else:
-                    self.cursor.execute("""select * from client_sessions where swarm_id=%s and client_id=%s""", (swarm_id, client_id))
+                    self.cursor.execute("""select * from client_sessions where swarm_id=%s and btclient_id=%s""", (swarm_id, btclient_id))
 
             if show == True:
                 for row in self.cursor:
@@ -205,18 +205,18 @@ class DatabaseAccess:
         except MySQLdb.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, btclient_id = None):
         try:
-            if client_id == None:
+            if btclient_id == None:
                 if swarm_id == -1:
                     self.cursor.execute("""delete from client_sessions""")
                 else:
                     self.cursor.execute("""delete from client_sessions where swarm_id=%s""", (swarm_id, ))
             else:
                 if swarm_id == -1:
-                    self.cursor.execute("""delete from client_sessions where client_id=%s""", (client_id, ))
+                    self.cursor.execute("""delete from client_sessions where btclient_id=%s""", (btclient_id, ))
                 else:
-                    self.cursor.execute("""delete from client_sessions where swarm_id=%s and client_id=%s""", (swarm_id, client_id))
+                    self.cursor.execute("""delete from client_sessions where swarm_id=%s and btclient_id=%s""", (swarm_id, btclient_id))
             self.conn.commit()
         except MySQLdb.Error, e:
             print ("[client_sessions]An error ocurred: ", e.args[0])
@@ -225,21 +225,21 @@ class DatabaseAccess:
         if DEBUG == True:
             print "[status_messages] insert row", row
         try:
-            self.cursor.execute("insert into status_messages values (%s,%s,%s,%s,%s,%s,%s,%s,%s)", row)
+            self.cursor.execute("insert into status_messages(client_session_id, timestamp, num_peers, num_dht_peers, download_speed, upload_speed, download_size, upload_size, eta) values (%s,%s,%s,%s,%s,%s,%s,%s,%s)", row)
             self.conn.commit()
         except MySQLdb.Error, e:
-            print ("[status_messages1]An error ocurred: ", 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 insert_status_messages(self, client_session_id, timestamp, peer_num, num_dht_peers, download_speed, upload_speed, download_size, upload_size, eta):
+        self.insert_status_messages_row([client_session_id, timestamp, peer_num, num_dht_peers, 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_by_client_session_id(self, show = True, cs_id = -1, restrictArray=None):
         try:
             if cs_id == -1:
                 self.cursor.execute("select * from status_messages")
             else:
                values = (cs_id, )
-               query = "select * from status_messages where cs_id=%s and "
+               query = "select * from status_messages where client_session_id=%s and "
 
                 if restrictArray:
                    for (key, value, op) in restrictArray:
@@ -255,14 +255,14 @@ class DatabaseAccess:
             else:
                 return self.cursor
         except MySQLdb.Error, e:
-            print("[status_messages]An error ocurred: ", e.args[1])
+            print("[status_messages]An error ocurred: ", e.args[0])
 
-    def delete_status_messages(self, cs_id = -1):
+    def delete_status_messages_by_client_session_id(self, cs_id = -1):
         try:
             if cs_id == -1:
                 self.cursor.execute("delete from status_messages")
             else:
-                self.cursor.execute("delete from status_messages where cs_id=%s", (cs_id, ))
+                self.cursor.execute("delete from status_messages where client_session_id=%s", (cs_id, ))
             self.conn.commit()
         except MySQLdb.Error, e:
             print("[status_messages]An error ocurred: ", e.args[0])
@@ -271,28 +271,27 @@ class DatabaseAccess:
         if DEBUG == True:
             print "[verbose_messages] insert row", row
         try:
-            self.cursor.execute("insert into verbose_messages values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", row)
+            self.cursor.execute("insert into verbose_messages(client_session_id, timestamp, transfer_direction_id, peer_ip, peer_port, message_type_id, _index, begin, length, listen_port) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", row)
             self.conn.commit()
         except MySQLdb.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 insert_verbose_messages(self, client_session_id, timestamp, transfer_direction_id, peer_ip, peer_port, message_type_id, _index, begin, length, listen_port):
+        self.insert_verbose_messages_row([client_session_id, timestamp, transfer_direction_id, peer_ip, peer_port, message_type_id, _index, begin, length, listen_port])
     
-    def select_verbose_messages(self, show = True, cs_id = -1, restrictArray=None):
+    def select_verbose_messages_by_client_session_id(self, show = True, cs_id = -1, restrictArray=None):
         try:
             if cs_id == -1:
                 self.cursor.execute("select * from verbose_messages")
             else:
                values = (cs_id, )
-               query = "select * from verbose_messages where cs_id=%s and "
+               query = "select * from verbose_messages where client_session_id=%s and "
                if restrictArray:
                    for (key, value, op) in restrictArray:
                        query += "%s %s ? and " % (key, self.operators[op]) 
                        values += (value, )
                
                query = query.strip('and ')
-               #print query, values
                self.cursor.execute(query, values)
                
            if show == True:
@@ -303,12 +302,12 @@ class DatabaseAccess:
         except MySQLdb.Error, e:
             print("[status_messages]An error ocurred: ", e.args[0])
 
-    def delete_verbose_messages(self, cs_id = -1):
+    def delete_verbose_messages_by_client_session_id(self, cs_id = -1):
         try:
             if cs_id == -1:
                 self.cursor.execute("delete from verbose_messages")
             else:
-                self.cursor.execute("delete from verbose_messages where cs_id=%s", (cs_id, ))
+                self.cursor.execute("delete from verbose_messages where client_session_id=%s", (cs_id, ))
             self.conn.commit()
         except MySQLdb.Error, e:
             print("[status_messages]An error ocurred: ", e.args[0])
@@ -328,40 +327,29 @@ def main():
 
     dba.connect()
 
-    dba.insert_swarms_row(('dbex-fedora-i686-live-KDE', 100000, 'test', 'local'))
-
-#    dba.insert_btclients_row(('libtorrent', 'C++', '1', '0'))
-
-    dba.insert_client_sessions_row(('1', '2', 'Linux', '2.6.26', '512', '1500', '141.85.224.205', '50500', '512', '64', '2011-05-17 13:23:54'))
-
-    dba.get_status()
-
-    dba.disconnect()
-    """
-    for t in [('DarkKnight', '123000', 'experiment', 'TVTorrents'),
-            ('Fedora', '1024', 'experiment', 'local'),
-            ('Pulp Fiction', '102400', 'streaming', 'isohunt'),
+    for t in [('DarkKnight', '123000', 'experiment'),
+            ('Fedora', '1024', 'experiment, local'),
+            ('Pulp Fiction', '102400', 'streaming'),
             ]:
         dba.insert_swarms_row(t)
 
-    for t in [('Tribler', 'Python', '1', '1'),
-            ('libtorrent', 'C++', '1', '0'),
-            ('Vuze', 'Java', '1', '0'),
+    for t in [('Tribler', 'Python', 'http://www.tribler.org/trac', '1', '1', '0', 'NULL'),
+            ('libtorrent', 'C++', 'http://www.rasterbar.com/products/libtorrent', 1, 0, 1, 'NULL')
             ]:
         dba.insert_btclients_row(t)
 
-    for t in [('1', '2', 'Linux', '2.6.26', '512', '1500', '141.85.224.205', '50500', '512', '64', '2011-05-17 13:23:54'),
-            ('3', '4', 'Linux', '2.6.26', '512', '1500', '141.85.224.209', '40400', '512', '64', '2011-05-18 13:22:12'),
+    for t in [('1', '2', 'Linux', '2.6.26', '512', '1500', '141.85.224.205', '50500', '512', '64', '2011-05-17 13:23:54', '1', '0', '1', 'NULL', 'NULL'),
+            ('3', '1', 'Linux', '2.6.26', '512', '1500', '141.85.224.209', '40400', '512', '64', '2011-05-18 13:22:12', '1', '1', '0', 'NULL', 'NULL'),
             ]:
         dba.insert_client_sessions_row(t)
 
-    for t in [('1', '2011-05-17 13:12:45', '222', '0', '213', '56', '200', '300', '2m15s'),
-            ('6', '2011-05-14 13:20:12', '222', '0', '213', '56', '200', '300', '3m43s'),
+    for t in [('1', '2011-05-17 13:12:45', '222', '0', '213', '56', '200', '300', '215'),
+            ('2', '2011-05-14 13:20:12', '222', '0', '213', '56', '200', '300', '223'),
             ]:
         dba.insert_status_messages_row(t)
 
-    for t in [('1', '2011-05-17 13:13:21', '0', '127.0.0.1', '1345', '0', '3', '4', '13', '777'),
-            ('4', '2011-05-18 14:36:41', '1', '127.0.0.1', '1345', '0', '3', '4', '13', '777'),
+    for t in [('1', '2011-05-17 13:13:21', '1', '127.0.0.1', '1345', '4', '3', '4', '13', '777'),
+            ('4', '2011-05-18 14:36:41', '2', '127.0.0.1', '1345', '2', '3', '4', '13', '777'),
             ]:
         dba.insert_verbose_messages_row(t)
 
@@ -370,7 +358,7 @@ def main():
     dba.select_btclient_by_name("Tribler")
 
     dba.disconnect()
-    """
+
 
 if __name__ == "__main__":
     sys.exit(main())