@session_wrapper
def remove_known_changes(self, session=None):
- session.delete(get_knownchange(self.changes_file, session))
+ session.delete(get_dbchange(self.changes_file, session))
def mark_missing_fields(self):
"""add "missing" in fields which we will require for the known_changes table"""
self.changes[key]='missing'
@session_wrapper
- def add_known_changes(self, dirpath, session=None):
+ def add_known_changes(self, dirpath, in_queue=None, session=None):
"""add "missing" in fields which we will require for the known_changes table"""
cnf = Config()
self.mark_missing_fields()
+ multivalues = {}
+ for key in ("distribution", "architecture", "binary"):
+ if isinstance(self.changes[key], dict):
+ multivalues[key] = " ".join(self.changes[key].keys())
+ else:
+ multivalues[key] = self.changes[key]
+
+ # TODO: Use ORM
session.execute(
- """INSERT INTO known_changes
- (changesname, seen, source, binaries, architecture, version,
+ """INSERT INTO changes
+ (changesname, in_queue, seen, source, binaries, architecture, version,
distribution, urgency, maintainer, fingerprint, changedby, date)
- VALUES (:changesfile,:filetime,:source,:binary, :architecture,
+ VALUES (:changesfile,:in_queue,:filetime,:source,:binary, :architecture,
:version,:distribution,:urgency,:maintainer,:fingerprint,:changedby,:date)""",
- { 'changesfile':self.changes_file,
- '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"]} )
+ { 'changesfile': self.changes_file,
+ 'filetime': filetime,
+ 'in_queue': in_queue,
+ 'source': self.changes["source"],
+ 'binary': multivalues["binary"],
+ 'architecture': multivalues["architecture"],
+ 'version': self.changes["version"],
+ 'distribution': multivalues["distribution"],
+ 'urgency': self.changes["urgency"],
+ 'maintainer': self.changes["maintainer"],
+ 'fingerprint': self.changes["fingerprint"],
+ 'changedby': self.changes["changed-by"],
+ 'date': self.changes["date"]} )
+
+ session.commit()
+
+ return session.query(DBChange).filter_by(changesname = self.changes_file).one()
def unknown_files_fields(self, name):
return sorted(list( set(self.files[name].keys()) -