diff options
Diffstat (limited to 'pb/lib/Db/__init__.py')
| -rw-r--r-- | pb/lib/Db/__init__.py | 110 |
1 files changed, 63 insertions, 47 deletions
diff --git a/pb/lib/Db/__init__.py b/pb/lib/Db/__init__.py index 91b0fcf..ac7ca17 100644 --- a/pb/lib/Db/__init__.py +++ b/pb/lib/Db/__init__.py @@ -1,55 +1,71 @@ -import MySQLdb -import time +# coding: utf-8 +import time, sys +HOST = "lalalizard.com" USER = "asdfus" PASSWORD = "gTYgT&M6q" DATABASE = "asdfus" -class Db(object): - def __init__ (self): - self.conn = None - self.cursor = None - self.connect() - def connect (self): - self.conn = MySQLdb.connect (host = "localhost", - user = USER, - passwd = PASSWORD, - db = DATABASE - ) - self.cursor = self.conn.cursor () +from sqlalchemy import Column, Integer, LargeBinary, String, create_engine, sql +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import sessionmaker +_NULL = sql.null() + +Base = declarative_base() +metadata = Base.metadata - def execute (self,sql,args=()): - try: - self.cursor.execute(sql,args) - except MySQLdb.Error, e: - print "Error %d: %s" % (e.args[0], e.args[1]) - # sys.exit (1) - self.connect() - self.cursor.execute(sql,args) +class ImCmd(Base): + __tablename__ = 'im_cmd' + id = Column(Integer, primary_key=True) + date = Column(Integer) + remote_addr = Column(String(16)) + name = Column(String(16)) + url = Column(String(256)) + dir = Column(String(2)) + oldfile = Column(String(256)) + newfile = Column(String(256)) + cmd = Column(LargeBinary) + dataobj = Column(LargeBinary) + tag = Column(String(50)) - def lastinsertid (self): - return self.conn.insert_id() +class Db(object): + def __init__(self): + engine = create_engine('mysql://{}:{}@{}/{}'.format( + USER, + PASSWORD, + HOST, + DATABASE + )) + Session = sessionmaker(bind=engine) + self.session = Session() - def insert_cmd ( - self, - date=time.time(), - remote_addr="NULL", - username="NULL", - url="NULL", - directory="NULL", - oldfile="NULL", - newfile="NULL", - cmd="NULL", - dataobj="NULL", - tag="NULL"): - try: - sql = "INSERT INTO im_cmd " - sql += "(date, remote_addr, name, url, dir, oldfile, newfile, cmd, dataobj, tag) " - sql += "VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" - #or "NULL" - args = (date, remote_addr, username, url, directory, oldfile, newfile, cmd, dataobj, tag) - #args = (now(), os.environ['REMOTE_ADDR'], name, url, dir, oldfile, newfile, " ".join(cmd),dataobj) - self.execute(sql, args) - except Exception as e: - sys.stderr.write(str(e)) - return + def insert_cmd ( + self, + date=time.time(), + remote_addr=_NULL, + username=_NULL, + url=_NULL, + directory=_NULL, + oldfile=_NULL, + newfile=_NULL, + cmd=_NULL, + dataobj=_NULL, + tag=_NULL): + try: + entry = ImCmd( + date=date, + remote_addr=remote_addr, + name=username, + url=url, + dir=directory, + oldfile=oldfile, + newfile=newfile, + cmd=cmd, + dataobj=dataobj, + tag=tag + ) + self.session.add(entry) + self.session.commit() + except Exception as e: + sys.stderr.write("Unable to commit database entry"); + sys.stderr.write(str(e)) |
