FROM %s
WHERE id = :id
""" % table
- session.execute(query, [{'id': id} for id in idList])
+ params = [{'id': id} for id in idList]
+ if len(params) == 0:
+ return
+ session.execute(query, params)
def doDaDoDa(suite, session):
# keep this part disabled because it is too dangerous
('s', "suite", "Obsolete::Options::Suite", "HasArg"),
('n', "no-action", "Obsolete::Options::No-Action"),
('f', "force", "Obsolete::Options::Force")]
- query_suites = DBConn().session().query(Suite)
- suites = [suite.suite_name for suite in query_suites.all()]
- if not cnf.has_key('Obsolete::Options::Suite'):
- cnf['Obsolete::Options::Suite'] = ','.join(suites)
cnf['Obsolete::Options::Help'] = ''
cnf['Obsolete::Options::No-Action'] = ''
cnf['Obsolete::Options::Force'] = ''
- apt_pkg.ParseCommandLine(cnf.Cnf, Arguments, sys.argv)
- Options = cnf.SubTree("Obsolete::Options")
+ apt_pkg.parse_commandline(cnf.Cnf, Arguments, sys.argv)
+ Options = cnf.subtree("Obsolete::Options")
if Options['Help']:
usage()
- Logger = daklog.Logger(cnf.Cnf, "dominate")
+ if 'Suite' not in Options:
+ query_suites = DBConn().session().query(Suite)
+ suites = [suite.suite_name for suite in query_suites]
+ cnf['Obsolete::Options::Suite'] = str(','.join(suites))
+
+ Logger = daklog.Logger("dominate")
session = DBConn().session()
for suite_name in utils.split_args(Options['Suite']):
suite = session.query(Suite).filter_by(suite_name = suite_name).one()
+
+ # Skip policy queues. We don't want to remove obsolete packages from those.
+ policy_queue = session.query(PolicyQueue).filter_by(suite=suite).first()
+ if policy_queue is not None:
+ continue
+
if not suite.untouchable or Options['Force']:
doDaDoDa(suite.suite_id, session)
if Options['No-Action']:
session.rollback()
else:
session.commit()
+ Logger.close()
if __name__ == '__main__':
main()