- 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))
-
- 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,
- 'filetime':filetime,
- 'source':self.changes["source"],
- 'binary':self.changes["binary"],
- 'architecture':self.changes["architecture"],
- 'version':self.changes["version"],
- 'distribution':self.changes["distribution"],
- 'urgency':self.changes["urgency"],
- 'maintainer':self.changes["maintainer"],
- 'fingerprint':self.changes["fingerprint"],
- 'changedby':self.changes["changed-by"],
- 'date':self.changes["date"]} )
-
- if privatetrans:
- session.commit()
- session.close()
-
- def load_dot_dak(self, changesfile):
- """
- Update ourself by reading a previously created cPickle .dak dumpfile.
- """
-
- self.changes_file = changesfile
- dump_filename = self.changes_file[:-8]+".dak"
- dump_file = open_file(dump_filename)
-
- p = Unpickler(dump_file)
-
- self.changes.update(p.load())
- self.dsc.update(p.load())
- self.files.update(p.load())
- self.dsc_files.update(p.load())
-
- next_obj = p.load()
- if isinstance(next_obj, dict):
- self.orig_files.update(next_obj)