updated access_db
authorRazvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Fri, 23 Oct 2009 14:57:42 +0000 (17:57 +0300)
committerRazvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Fri, 23 Oct 2009 14:57:42 +0000 (17:57 +0300)
.gitignore
auto/bd/access_db

index 0d20b64..f3d74a9 100644 (file)
@@ -1 +1,2 @@
 *.pyc
+*~
index 4b41d14..14bc000 100755 (executable)
 #!/usr/bin/env python
+
+import sys
 import sqlite3
 
-conn = sqlite3.connect('p2p-next.db')
-curs = conn.cursor()
-
-def insert_swarms(row):
-       try:
-               curs.execute("insert into swarms values (?,?,?,?,?)", row)
-               conn.commit()
-       except sqlite3.Error as e:
-               print ("[swarms]An error ocurred: ", e.args[0])
-       return
-
-def insert_btclients(row):
-       try:
-               curs.execute("insert into btclients values (?,?,?,?,?)", row)
-               conn.commit()
-       except sqlite3.Error as e:
-               print ("[btclients]An error ocurred: ", e.args[0])
-       return
-
-def insert_client_session(row):
-       try:
-               curs.execute("insert into client_session values (?,?,?,?,?,?,?,?,?,?,?,?)", row)
-               conn.commit()
-       except sqlite3.Error as e:
-               print ("[client_session]An error ocurred: ", e.args[0])
-       return
-
-def insert_status_messages(row):
-       try:
-               curs.execute("[status_messages]insert into swarms values (?,?,?,?,?,?,?,?,?)", row)
-               conn.commit()
-       except sqlite3.Error as e:
-               print ("An error ocurred: ", e.args[0])
-       return
-
-def insert_verbose_messages(row):
-       try:
-               curs.execute("[verbose_messages]insert into swarms values (?,?,?,?,?,?,?,?,?)", row)
-               conn.commit()
-       except sqlite3.Error as e:
-               print ("An error ocurred: ", e.args[0])
-       return
-
-for t in [('1', 'mumu', '1024', 'ceva', 'URL'),
-       ('2', 'gugu', '1024', 'ceva', 'URL'),
-       ('3', 'gaga', '1024', 'ceva', 'URL'),
-       ]:
-       insert_swarms(t)
-
-for t in [('1', 'tribler', 'python', 1, 0),
-       ]:
-       insert_btclients(t)
-
-for t in [('1', '1', '2', 'Linux', '2.6.30', '256', '1833', '0.0.0.0', '6969', '256', '96', '123131.1231')
-       ]:
-       insert_client_session(t)
-
-tables = ['swarms', 'btclients', 'swarms', 'client_session', 'status_messages', 'verbose_messages']
-for t in tables:
-       curs.execute("select * from '%s'" %t)
-       for row in curs:
-               print row
-
-conn.close()
\ No newline at end of file
+class DatabaseAccess:
+       """
+       TODO class comments here
+       """
+
+       def __init__ (self, dbname):
+               self.dbname = dbname
+
+       def connect(self):
+               self.conn = sqlite3.connect(self.dbname)
+               self.cursor = self.conn.cursor()
+
+       def disconnect(self):
+               self.cursor.close()
+               self.conn.close()
+
+       def get_cursor(self):
+               return self.cursor
+
+       def get_connection(self):
+               return self.conn
+
+       def get_status(self):
+               tables = ['swarms', 'btclients', 'swarms', 'client_session', '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):
+               try:
+                       self.cursor.execute("insert into swarms(torrent, filesize, purpose, source) values (?,?,?,?)", row)
+                       self.conn.commit()
+               except sqlite3.Error, e:
+                       print ("[swarms]An error ocurred: ", e.args[0])
+
+       def insert_swarms(self, torrent_file, filesize, purpose, source):
+               insert_swarms_row([torrent_file, filesize, purpose, source])
+
+       def insert_btclients_row(self, row):
+               try:
+                       self.cursor.execute("insert into btclients(name, language, dht, streaming) values (?,?,?,?)", row)
+                       self.conn.commit()
+               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 insert_client_session_row(self, row):
+               try:
+                       self.cursor.execute("insert into client_session(swarm_id, client_id, system_os, system_os_version, system_ram, system_cpu, public_ip, public_port, ds_limit, us_limit, start_time) values (?,?,?,?,?,?,?,?,?,?,?)", row)
+                       self.conn.commit()
+               except sqlite3.Error, e:
+                       print ("[client_session]An error ocurred: ", e.args[0])
+
+       def insert_client_session(self, swarm_id, client_id, system_os, system_os_version, system_ram, system_cpu, public_ip, public_port, ds_limit, us_limit, start_time):
+               insert_client_session_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_status_messages_row(self, row):
+               try:
+                       self.cursor.execute("insert into status_messages values (?,?,?,?,?,?,?,?,?)", row)
+                       self.conn.commit()
+               except sqlite3.Error, e:
+                       print ("[status_messages]An error ocurred: ", e.args[0])
+
+       def insert_status_message(self, cs_id, timestamp, peer_num, dht, download_speed, upload_speed, download_size, upload_size, eta):
+               insert_status_message_row([cs_id, timestamp, peer_num, dht, download_speed, upload_speed, download_size, upload_size, eta])
+
+       def insert_verbose_messages_row(self, row):
+               try:
+                       self.cursor.execute("insert into verbose_messages values (?,?,?,?,?,?,?,?,?)", row)
+                       self.conn.commit()
+               except sqlite3.Error, e:
+                       print ("[verbose_messages]An error ocurred: ", e.args[0])
+
+       def insert_verbose_messages(self, cs_id, timestamp, peer_ip, peer_port, message_type, _index, begin, length, listen_port):
+               insert_verbose_messages_row([cs_id, timestamp, peer_ip, peer_port, message_type, _index, begin, length, listen_port])
+
+"""
+Test case
+"""
+
+def main():
+       dba = DatabaseAccess("p2p-next.db")
+
+       dba.connect()
+
+       for t in [('DarkKnight', '123000', 'experiment', 'TVTorrents'),
+               ('Fedora', '1024', 'experiment', 'local'),
+               ('Pulp Fiction', '102400', 'streaming', 'isohunt'),
+               ]:
+               dba.insert_swarms_row(t)
+
+       for t in [('Tribler', 'Python', 1, 1),
+                       ('libtorrent', 'C++', 1, 0),
+                       ('Vuze', 'Java', 1, 0),
+               ]:
+               dba.insert_btclients_row(t)
+
+       for t in [('1', '2', 'Linux', '2.6.30', '256', '1833', '0.0.0.0', '6969', '256', '96', '123131.1231')
+               ]:
+               dba.insert_client_session_row(t)
+
+       for t in [('1', '2455128.10', '222', '0', '213', '56', '200', '300', '121.324')
+                       ]:
+               dba.insert_status_messages_row(t)
+       
+       for t in [('1', '2455128.121295811', '127.0.0.1', '1345', '0', '3', '4', '13', '777')
+                       ]:
+               dba.insert_verbose_messages_row(t)
+
+       dba.get_status()
+
+       dba.disconnect()
+
+       """
+       for t in [('1', 'mumu', '1024', 'ceva', 'URL'),
+               ('2', 'gugu', '1024', 'ceva', 'URL'),
+               ('3', 'gaga', '1024', 'ceva', 'URL'),
+               ]:
+               insert_swarms(t)
+
+       for t in [('1', 'tribler', 'python', 1, 0),
+               ]:
+               insert_btclients(t)
+
+       for t in [('1', '1', '2', 'Linux', '2.6.30', '256', '1833', '0.0.0.0', '6969', '256', '96', '123131.1231')
+               ]:
+               insert_client_session(t)
+
+       tables = ['swarms', 'btclients', 'swarms', 'client_session', 'status_messages', 'verbose_messages']
+       for t in tables:
+               curs.execute("select * from '%s'" %t)
+               for row in curs:
+                       print row
+       """
+
+if __name__ == "__main__":
+       sys.exit(main())