]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/changes.py
allow setting in_queue
[dak.git] / daklib / changes.py
old mode 100755 (executable)
new mode 100644 (file)
index 4ee73fb..6b77626
@@ -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()
 
@@ -200,18 +200,20 @@ class Changes(object):
         multivalues = {}
         for key in ("distribution", "architecture", "binary"):
             if isinstance(self.changes[key], dict):
-                multivalues[key] = ", ".join(self.changes[key].keys())
+                multivalues[key] = " ".join(self.changes[key].keys())
             else:
-                multivalues[key] = self.changes[key].keys()
+                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,
+                'in_queue':     in_queue,
                 'source':       self.changes["source"],
                 'binary':       multivalues["binary"],
                 'architecture': multivalues["architecture"],
@@ -223,6 +225,10 @@ class Changes(object):
                 '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()) -
                             set(CHANGESFIELDS_FILES)))