diff --git a/pillar/cli/maintenance.py b/pillar/cli/maintenance.py index ee953d1c..b0f3f943 100644 --- a/pillar/cli/maintenance.py +++ b/pillar/cli/maintenance.py @@ -605,9 +605,13 @@ def find_orphan_files(proj_url): if proj_url == 'all': log.warning('Iterating over ALL projects, may take a while') orphans = set() - for project in projects_coll.find({'_deleted': {'$ne': True}}, projection={'_id': 1}): - proj_orphans = _find_orphan_files(project['_id']) - orphans.update(proj_orphans) + try: + for project in projects_coll.find({'_deleted': {'$ne': True}}, projection={'_id': 1}): + proj_orphans = _find_orphan_files(project['_id']) + orphans.update(proj_orphans) + except KeyboardInterrupt: + log.warning('Keyboard interrupt received, stopping now ' + 'and showing intermediary results.') else: project = projects_coll.find_one({'url': proj_url}, projection={'_id': 1}) if not project: