summaryrefslogtreecommitdiff
path: root/lib/Db
diff options
context:
space:
mode:
authoryo mama <pepper@scannerjammer.com>2015-09-22 00:51:40 -0700
committeryo mama <pepper@scannerjammer.com>2015-09-22 00:51:40 -0700
commitd3e7b5708deffbed864c916de22663f48333c58b (patch)
treeef76784a7827baff88c03670bf22832a3f146b17 /lib/Db
parent86c79f4372d7b2e7640a26473c7a4d331cdf7d16 (diff)
finishing server
Diffstat (limited to 'lib/Db')
-rw-r--r--lib/Db/__init__.py60
-rw-r--r--lib/Db/sqlalchemy_example_code.py105
2 files changed, 165 insertions, 0 deletions
diff --git a/lib/Db/__init__.py b/lib/Db/__init__.py
new file mode 100644
index 0000000..c6286ad
--- /dev/null
+++ b/lib/Db/__init__.py
@@ -0,0 +1,60 @@
+# coding: utf-8
+import time, sys
+HOST = "lalalizard.com"
+USER = "asdfus"
+PASSWORD = "gTYgT&M6q"
+DATABASE = "asdfus"
+
+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
+
+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))
+
+class Db(object):
+ def __init__(self):
+ engine = create_engine('mysql://{}:{}@{}/{}'.format(
+ USER,
+ PASSWORD,
+ HOST,
+ DATABASE
+ ))
+ self.Session = sessionmaker(bind=engine)
+
+ def insert_cmd ( self, **kwargs):
+ try:
+ session = self.Session()
+ _entry_data = {
+ 'date' : kwargs.get("date", int(time.time())),
+ 'remote_addr' : kwargs['remote_addr'] or _NULL,
+ 'name' : kwargs['username'] or _NULL,
+ 'url' : kwargs['username'] or _NULL,
+ 'dir' : kwargs['directory'] or _NULL,
+ 'oldfile' : kwargs['oldfile'] or _NULL,
+ 'newfile' : kwargs['newfile'] or _NULL,
+ 'cmd' : kwargs['cmd'] or _NULL,
+ 'dataobj' : kwargs['dataobj'] or _NULL,
+ 'tag' : kwargs['tag'] or _NULL
+ }
+ session.add(ImCmd(**_entry_data))
+ session.commit()
+ #FIXME session.close()....
+ except Exception as e:
+ sys.stderr.write("Unable to commit database entry\n");
+ sys.stderr.write(str(e))
diff --git a/lib/Db/sqlalchemy_example_code.py b/lib/Db/sqlalchemy_example_code.py
new file mode 100644
index 0000000..fc38b38
--- /dev/null
+++ b/lib/Db/sqlalchemy_example_code.py
@@ -0,0 +1,105 @@
+# coding: utf-8
+import MySQLdb
+import time, sys
+USER = "asdfus"
+PASSWORD = "gTYgT&M6q"
+DATABASE = "asdfus"
+
+
+from sqlalchemy import Column, Integer, LargeBinary, String, create_engine
+from sqlalchemy.ext.declarative import declarative_base
+from sqlalchemy.orm import sessionmaker
+engine = create_engine('mysql://{}:{}@localhost/{}'.format(USER, PASSWORD, DATABASE))
+Session = sessionmaker(bind=engine)
+session = Session()
+connection = engine.connect()
+#result = connection.execute("select username from users")
+#for row in result:
+# print "username:", row['username']
+#connection.close()
+
+
+Base = declarative_base()
+metadata = Base.metadata
+
+
+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 __repr__(self):
+#... return "<User(name='%s', fullname='%s', password='%s')>" % (
+#... self.name, self.fullname, self.password)
+
+
+for instance in session.query(ImCmd).order_by(ImCmd.id):
+ print instance.name, instance.date
+
+
+ed_user = User(name='ed', fullname='Ed Jones', password='edspassword')
+session.add(ed_user)
+#session.add_all([
+#... User(name='wendy', fullname='Wendy Williams', password='foobar'),
+#... User(name='mary', fullname='Mary Contrary', password='xxg527'),
+#... User(name='fred', fullname='Fred Flinstone', password='blah')])
+
+#session.commit()
+
+class Db(object):
+ def __init__ (self):
+ self.conn = None
+ self.cursor = None
+ self.connect()
+
+ def connect (self):
+ self.conn = MySQLdb.connect (host = "lalalizard.com",
+ user = USER,
+ passwd = PASSWORD,
+ db = DATABASE
+ )
+ self.cursor = self.conn.cursor ()
+
+ 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)
+
+ def lastinsertid (self):
+ return self.conn.insert_id()
+
+ 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