kojira: queue status file

Fixes: https://pagure.io/koji/issue/2023
This commit is contained in:
Tomas Kopecek 2020-02-19 17:40:06 +01:00
parent b3feacaffe
commit 539e024257

View file

@ -668,6 +668,14 @@ class RepoManager(object):
self.updateTagScores()
if self.options.queue_file:
with open(self.options.queue_file, "wt") as f:
fmt = "%-40s %7s %5s\n"
f.write(fmt % ("Tag", "Expired", "Score"))
for tag in sorted(self.needed_tags.values(), key=lambda t: t['score'], reverse=True):
time_expired = time.time() - tag['expire_ts']
f.write(fmt % (tag['taginfo']['name'], int(time_expired), int(tag['score'])))
# trigger deletes
n_deletes = 0
for repo in to_list(self.repos.values()):
@ -993,6 +1001,8 @@ def get_options():
parser.add_option("-s", "--server", help="URL of XMLRPC server")
parser.add_option("--topdir", help="Specify topdir")
parser.add_option("--logfile", help="Specify logfile")
parser.add_option("--queue-file",
help="If specified, queue is dumped to separate status file each cycle")
(options, args) = parser.parse_args()
config = koji.read_config_files(options.configFile)
@ -1036,6 +1046,7 @@ def get_options():
'cert': None,
'ca': '', # FIXME: unused, remove in next major release
'serverca': None,
'queue_file': None,
}
if config.has_section(section):
int_opts = ('deleted_repo_lifetime', 'max_repo_tasks', 'repo_tasks_limit',
@ -1044,7 +1055,7 @@ def get_options():
'delete_batch_size', 'dist_repo_lifetime', 'sleeptime',
'recent_tasks_lifetime')
str_opts = ('topdir', 'server', 'user', 'password', 'logfile', 'principal', 'keytab',
'krbservice', 'cert', 'ca', 'serverca', 'debuginfo_tags',
'krbservice', 'cert', 'ca', 'serverca', 'debuginfo_tags', 'queue_file',
'source_tags', 'separate_source_tags', 'ignore_tags') # FIXME: remove ca here
bool_opts = ('verbose', 'debug', 'ignore_stray_repos', 'offline_retry',
'krb_rdns', 'krb_canon_host', 'no_ssl_verify', 'check_external_repos')