- for file in files.keys():
- if os.path.exists(file):
- try:
- utils.move (file, "%s/REJECT/%s" % (Cnf["Dir::IncomingDir"], file));
- except:
- utils.warn("couldn't reject file '%s'. [Got %s]" % (file, sys.exc_type));
- pass;
+ if not changes.has_key("stable install"):
+ for file in files.keys():
+ if os.path.exists(file):
+ try:
+ utils.move (file, "%s/REJECT/%s" % (Cnf["Dir::IncomingDir"], file));
+ except:
+ utils.warn("couldn't reject file '%s'. [Got %s]" % (file, sys.exc_type));
+ pass;
+ else:
+ suite_id = db_access.get_suite_id('proposed-updates');
+ # Remove files from proposed-updates suite
+ for file in files.keys():
+ if files[file]["type"] == "dsc":
+ package = dsc["source"];
+ version = dsc["version"]; # NB: not files[file]["version"], that has no epoch
+ q = projectB.query("SELECT id FROM source WHERE source = '%s' AND version = '%s'" % (package, version));
+ ql = q.getresult();
+ if ql == []:
+ utils.fubar("[INTERNAL ERROR] couldn't find '%s' (%s) in source table." % (package, version));
+ source_id = ql[0][0];
+ projectB.query("DELETE FROM src_associations WHERE suite = '%s' AND source = '%s'" % (suite_id, source_id));
+ elif files[file]["type"] == "deb":
+ package = files[file]["package"];
+ version = files[file]["version"];
+ architecture = files[file]["architecture"];
+ q = projectB.query("SELECT b.id FROM binaries b, architecture a WHERE b.package = '%s' AND b.version = '%s' AND (a.arch_string = '%s' OR a.arch_string = 'all') AND b.architecture = a.id" % (package, version, architecture));
+ ql = q.getresult();
+ if ql == []:
+ utils.fubar("[INTERNAL ERROR] couldn't find '%s' (%s for %s architecture) in binaries table." % (package, version, architecture));
+ binary_id = ql[0][0];
+ projectB.query("DELETE FROM bin_associations WHERE suite = '%s' AND bin = '%s'" % (suite_id, binary_id));