X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fchanges.py;h=2413bf4c5da4a251ca6ba7e7e85f6c58d71c16be;hb=3c6fe9e939ef06d63e364990896472c322f88e02;hp=0fc21cb39d59b5f1326d0fdedc2be8570b4979c6;hpb=f0d2550d84696caafb8e850aec533108f792ff41;p=dak.git diff --git a/daklib/changes.py b/daklib/changes.py index 0fc21cb3..2413bf4c 100755 --- a/daklib/changes.py +++ b/daklib/changes.py @@ -29,6 +29,9 @@ Changes class for dak import os import stat +import time + +import datetime from cPickle import Unpickler, Pickler from errno import EPERM @@ -36,6 +39,8 @@ from apt_inst import debExtractControl from apt_pkg import ParseSection from utils import open_file, fubar, poolify +from config import * +from dbconn import * ############################################################################### @@ -178,28 +183,38 @@ class Changes(object): 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', 'changedby' ]: + 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)""", + :version,:distribution,:urgency,:maintainer,:fingerprint,:changedby,:date)""", { 'changesfile':changesfile, 'filetime':filetime, 'source':self.changes["source"],