| |
@@ -668,6 +668,14 @@
|
| |
|
| |
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 @@
|
| |
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 @@
|
| |
'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 @@
|
| |
'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')
|
| |
Fixes: https://pagure.io/koji/issue/2023