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
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()
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)
- for component in cnf.SubTree("Component").List():
+ for component in session.query(Component).all():
# It is crucial for the dsc override creation based on binary
# overrides that 'dsc' goes first
+ component_name = component.component_name
otypes = ['dsc']
for ot in session.query(OverrideType):
if ot.overridetype == 'dsc':
for otype in otypes:
print "Processing %s [%s - %s]" \
- % (osuite, component, otype)
+ % (suite.suite_name, component_name, otype)
sys.stdout.flush()
- process(osuite, suiteids, originosuite, component, otype, session)
+ process(suite.suite_name, suiteids, originosuite, component_name, otype, session)
Logger.close()