X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fchanges.py;h=4fdf0a60995e4f124d659ea64059a4b234736c80;hb=c0118300a7f7f9d17ce378caf05ee50ba85724d4;hp=c1f8f5ba89f5168f0d322c7d82fe04b1164be17c;hpb=d5c5b6de82b57502530c135cd2ff4d0f23ed0767;p=dak.git diff --git a/daklib/changes.py b/daklib/changes.py index c1f8f5ba..4fdf0a60 100644 --- a/daklib/changes.py +++ b/daklib/changes.py @@ -188,7 +188,7 @@ class Changes(object): 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() @@ -202,31 +202,41 @@ class Changes(object): if isinstance(self.changes[key], dict): multivalues[key] = " ".join(self.changes[key].keys()) else: - multivalues[key] = self.changes[key].keys() - - # TODO: Use ORM - session.execute( - """INSERT INTO changes - (changesname, seen, source, binaries, architecture, version, - distribution, urgency, maintainer, fingerprint, changedby, date) - VALUES (:changesfile,:filetime,:source,:binary, :architecture, - :version,:distribution,:urgency,:maintainer,:fingerprint,:changedby,:date)""", - { 'changesfile': self.changes_file, - 'filetime': filetime, - '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"]} ) + multivalues[key] = self.changes[key] + + chg = DBChange() + chg.changesfile = self.changes_file + chg.seen = filetime + chg.in_queue_id = in_queue + chg.source = self.changes["source"] + chg.binaries = multivalues["binary"] + chg.architecture = multivalues["architecture"] + chg.version = self.changes["version"] + chg.distribution = multivalues["distribution"] + chg.urgency = self.changes["urgency"] + chg.maintainer = self.changes["maintainer"] + chg.fingerprint = self.changes["fingerprint"] + chg.changedby = self.changes["changed-by"] + chg.date = self.changes["date"] + + session.add(chg) + + chg_files = [] + for chg_fn in self.files.keys(): + cpf = ChangePendingFile() + cpf.filename = chg_fn + cpf.size = self.files[chg_fn]['size'] + cpf.md5sum = self.files[chg_fn]['md5sum'] + + session.add(cpf) + chg_files.append(cpf) + + chg.files = chg_files session.commit() - - return session.query(DBChange).filter_by(changesname = self.changes_file).one() + chg = session.query(DBChange).filter_by(changesname = self.changes_file).one(); + + return chg def unknown_files_fields(self, name): return sorted(list( set(self.files[name].keys()) -