PR#2889: kojihub - Use parse_task_params rather than manual task parsing.

Merges #2889
https://pagure.io/koji/pull-request/2889

Fixes: #2875
https://pagure.io/koji/issue/2875
SourceTest should use parse_task_params
This commit is contained in:
Tomas Kopecek 2021-06-21 13:54:46 +02:00
commit 0ad0da3ac4

View file

@ -56,6 +56,7 @@ import koji.plugin
import koji.policy
import koji.rpmdiff
import koji.tasks
from koji.tasks import parse_task_params
import koji.xmlrpcplus
from koji.context import context
from koji.daemon import SCM
@ -9772,18 +9773,26 @@ class SourceTest(koji.policy.MatchTest):
else:
# crack open the build task
task = Task(build['task_id'])
info = task.getInfo()
params = task.getRequest()
info = task.getInfo(request=True)
method = info['method']
request = info['request']
params = parse_task_params(method, request)
# signatures:
# build - (src, target, opts=None)
# maven - (url, target, opts=None)
# winbuild - (name, source_url, target, opts=None)
if info['method'] == 'winbuild':
data[self.field] = params[1]
data[self.field] = params['source_url']
elif info['method'] == 'indirectionimage':
return False
elif 'src' in params:
data[self.field] = params['src']
elif 'url' in params:
data[self.field] = params['url']
else:
data[self.field] = params[0]
print("Unable to determine source from task '{}'".format(
build['task_id']))
return False
else:
return False
return super(SourceTest, self).run(data)