import os
import stat
+import time
+
+import datetime
from cPickle import Unpickler, Pickler
from errno import EPERM
from apt_pkg import ParseSection
from utils import open_file, fubar, poolify
+from config import *
+from dbconn import *
###############################################################################
session = DBConn().session()
privatetrans = True
- session.query(KnownChange).filter(changesfile=self.changes_file).delete()
+ session.delete(get_knownchange(self.changes_file, session))
if privatetrans:
session.commit()
session.close()
- def add_known_changes(self, queue, session=None):
- cnf = Config()
+
+ def mark_missing_fields(self):
+ """add "missing" in fields which we will require for the known_changes table"""
+ for key in ['urgency', 'maintainer', 'fingerprint', 'changed-by' ]:
+ if (not self.changes.has_key(key)) or (not self.changes[key]):
+ self.changes[key]='missing'
+
+ def add_known_changes(self, dirpath, session=None):
+ """add "missing" in fields which we will require for the known_changes table"""
+ cnf = Config()
+ privatetrans = False
if session is None:
session = DBConn().session()
privatetrans = True
- dirpath = cnf["Dir::Queue::%s" % (queue) ]
changesfile = os.path.join(dirpath, self.changes_file)
filetime = datetime.datetime.fromtimestamp(os.path.getctime(changesfile))
+ self.mark_missing_fields()
+
session.execute(
"""INSERT INTO known_changes
(changesname, seen, source, binaries, architecture, version,
distribution, urgency, maintainer, fingerprint, changedby, date)
VALUES (:changesfile,:filetime,:source,:binary, :architecture,
- :version,:distribution,:urgency,'maintainer,:changedby,:date)""",
- { 'changesfile':changesfile,
+ :version,:distribution,:urgency,:maintainer,:fingerprint,:changedby,:date)""",
+ { 'changesfile':self.changes_file,
'filetime':filetime,
'source':self.changes["source"],
'binary':self.changes["binary"],