summaryrefslogtreecommitdiff
path: root/lib/Db/__init__.py
blob: c6286ade7c0ada0de9535bd5bb079abf03382958 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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))