summaryrefslogtreecommitdiff
path: root/to_merge/imcmd.py
diff options
context:
space:
mode:
Diffstat (limited to 'to_merge/imcmd.py')
-rw-r--r--to_merge/imcmd.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/to_merge/imcmd.py b/to_merge/imcmd.py
new file mode 100644
index 0000000..5206f99
--- /dev/null
+++ b/to_merge/imcmd.py
@@ -0,0 +1,43 @@
+"""describes the ImCmd class"""
+import sys
+from sqlalchemy import Column, Integer, LargeBinary, String
+from simplejson import json
+from sqlalchemy.orm import class_mapper
+
+
+class ImCmd(Base):
+ """defines the table class"""
+ __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 serialize(self, columns=None):
+ """returns the class as a dictionary"""
+ if not columns:
+ columns = [c.key for c in class_mapper(self.__class__).columns]
+ col_val = []
+ for c in columns:
+ if c == "dataobj":
+ val = getattr(self, c)
+ if val is not None:
+ try:
+ val = json.loads(val)
+ except json.JSONDecodeError:
+ sys.stderr.write("Could not decode json: %s\n" % val)
+ sys.stderr.write(
+ "bad value in db, id = %s\n" % getattr(self, "id")
+ )
+ pass
+ col_val.append((c, val))
+ else:
+ col_val.append((c, getattr(self, c)))
+ return dict(col_val)