osbs: Fresh koji session for getting metadata
The task can take a while to finish, and it's possible for the authenticated session to expire in the mean time. Watching the task will work, because that happens by spawning `koji watch-task` as subprocess. We can work around this by creating a fresh unauthenticated session for getting the task results. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
parent
004ef31917
commit
fa92e54c22
@ -73,18 +73,23 @@ class OSBSThread(WorkerThread):
|
|||||||
% (task_id, log_file))
|
% (task_id, log_file))
|
||||||
|
|
||||||
scratch = config.get('scratch', False)
|
scratch = config.get('scratch', False)
|
||||||
self._add_metadata(koji.koji_proxy, variant, task_id, compose, scratch)
|
self._add_metadata(variant, task_id, compose, scratch)
|
||||||
|
|
||||||
self.pool.log_info('[DONE ] %s' % msg)
|
self.pool.log_info('[DONE ] %s' % msg)
|
||||||
|
|
||||||
def _add_metadata(self, koji_proxy, variant, task_id, compose, is_scratch):
|
def _add_metadata(self, variant, task_id, compose, is_scratch):
|
||||||
|
# Create new Koji session. The task could take so long to finish that
|
||||||
|
# our session will expire. This second session does not need to be
|
||||||
|
# authenticated since it will only do reading operations.
|
||||||
|
koji = kojiwrapper.KojiWrapper(compose.conf['koji_profile'])
|
||||||
|
|
||||||
# Create metadata
|
# Create metadata
|
||||||
metadata = {
|
metadata = {
|
||||||
'compose_id': compose.compose_id,
|
'compose_id': compose.compose_id,
|
||||||
'koji_task': task_id,
|
'koji_task': task_id,
|
||||||
}
|
}
|
||||||
|
|
||||||
result = koji_proxy.getTaskResult(task_id)
|
result = koji.koji_proxy.getTaskResult(task_id)
|
||||||
if is_scratch:
|
if is_scratch:
|
||||||
metadata.update({
|
metadata.update({
|
||||||
'repositories': result['repositories'],
|
'repositories': result['repositories'],
|
||||||
@ -95,8 +100,8 @@ class OSBSThread(WorkerThread):
|
|||||||
variant.uid, {}).setdefault('scratch', []).append(metadata)
|
variant.uid, {}).setdefault('scratch', []).append(metadata)
|
||||||
else:
|
else:
|
||||||
build_id = int(result['koji_builds'][0])
|
build_id = int(result['koji_builds'][0])
|
||||||
buildinfo = koji_proxy.getBuild(build_id)
|
buildinfo = koji.koji_proxy.getBuild(build_id)
|
||||||
archives = koji_proxy.listArchives(build_id)
|
archives = koji.koji_proxy.listArchives(build_id)
|
||||||
|
|
||||||
metadata.update({
|
metadata.update({
|
||||||
'name': buildinfo['name'],
|
'name': buildinfo['name'],
|
||||||
|
Loading…
Reference in New Issue
Block a user