X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=blobdiff_plain;f=dak%2Fcheck_overrides.py;h=31833198fe88ffeee2e176a068990d6a6ab72fcd;hp=622067879f8cfa590077284062e4657aa4077df8;hb=026bdb9580e6d18bf504d2f44d46890df5d89f1a;hpb=2bef82c644a9a68cc3aacb466396d72f8e9c755c diff --git a/dak/check_overrides.py b/dak/check_overrides.py index 62206787..31833198 100755 --- a/dak/check_overrides.py +++ b/dak/check_overrides.py @@ -115,20 +115,23 @@ def process(osuite, affected_suites, originosuite, component, otype, session): packages = {} # TODO: Fix to use placeholders (check how to with arrays) q = session.execute(""" -SELECT b.package FROM binaries b, bin_associations ba, files f, - location l, component c - WHERE b.type = :otype AND b.id = ba.bin AND f.id = b.file AND l.id = f.location - AND c.id = l.component AND ba.suite IN (%s) AND c.id = :component_id +SELECT b.package + FROM binaries b + JOIN bin_associations ba ON b.id = ba.bin + JOIN suite ON ba.suite = suite.id + JOIN files_archive_map af ON b.file = af.file_id AND suite.archive_id = af.archive_id + WHERE b.type = :otype AND ba.suite IN (%s) AND af.component_id = :component_id """ % (",".join([ str(i) for i in affected_suites ])), {'otype': otype, 'component_id': component_id}) for i in q.fetchall(): packages[i[0]] = 0 src_packages = {} q = session.execute(""" -SELECT s.source FROM source s, src_associations sa, files f, location l, - component c - WHERE s.id = sa.source AND f.id = s.file AND l.id = f.location - AND c.id = l.component AND sa.suite IN (%s) AND c.id = :component_id +SELECT s.source FROM source s + JOIN src_associations sa ON s.id = sa.source + JOIN suite ON sa.suite = suite.id + JOIN files_archive_map af ON s.file = af.file_id AND suite.archive_id = af.archive_id + WHERE sa.suite IN (%s) AND af.component_id = :component_id """ % (",".join([ str(i) for i in affected_suites])), {'component_id': component_id}) for i in q.fetchall(): src_packages[i[0]] = 0 @@ -321,8 +324,8 @@ def main (): for i in [ "help", "no-action" ]: if not cnf.has_key("Check-Overrides::Options::%s" % (i)): cnf["Check-Overrides::Options::%s" % (i)] = "" - apt_pkg.ParseCommandLine(cnf.Cnf, Arguments, sys.argv) - Options = cnf.SubTree("Check-Overrides::Options") + apt_pkg.parse_commandline(cnf.Cnf, Arguments, sys.argv) + Options = cnf.subtree("Check-Overrides::Options") if Options["Help"]: usage() @@ -345,26 +348,25 @@ def main (): else: Logger = daklog.Logger("check-overrides", 1) - for osuite in cnf.SubTree("Check-Overrides::OverrideSuites").List(): - if "1" != cnf["Check-Overrides::OverrideSuites::%s::Process" % osuite]: - continue - - osuite = osuite.lower() - + for suite in session.query(Suite).filter(Suite.overrideprocess==True): originosuite = None - originremark = "" - try: - originosuite = cnf["Check-Overrides::OverrideSuites::%s::OriginSuite" % osuite] - originosuite = originosuite.lower() + originremark = '' + + if suite.overrideorigin is not None: + originosuite = get_suite(suite.overrideorigin, session) + if originosuite is None: + utils.fubar("%s has an override origin suite of %s but it doesn't exist!" % (suite.suite_name, suite.overrideorigin)) + originosuite = originosuite.suite_name originremark = " taking missing from %s" % originosuite - except KeyError: - pass - print "Processing %s%s..." % (osuite, originremark) - suiteobj = get_suite(osuite) - # Get a list of all suites that use the override file of 'osuite' - ocodename = suiteobj.codename + print "Processing %s%s..." % (suite.suite_name, originremark) + + # Get a list of all suites that use the override file of 'suite.suite_name' as + # well as the suite + ocodename = suite.codename suiteids = [x.suite_id for x in session.query(Suite).filter(Suite.overridecodename == ocodename).all()] + if suite.suite_id not in suiteids: + suiteids.append(suite.suite_id) if len(suiteids) < 1: utils.fubar("Couldn't find id's of all suites: %s" % suiteids) @@ -381,9 +383,9 @@ def main (): for otype in otypes: print "Processing %s [%s - %s]" \ - % (osuite, component_name, otype) + % (suite.suite_name, component_name, otype) sys.stdout.flush() - process(osuite, suiteids, originosuite, component_name, otype, session) + process(suite.suite_name, suiteids, originosuite, component_name, otype, session) Logger.close()