PR#4311: kojivmd: refuse tasks instead of ignoring them

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

Fixes: #4312
https://pagure.io/koji/issue/4312
kojivmd: refuse tasks instead of ignoring them
This commit is contained in:
Mike McLean 2025-06-26 14:31:19 -04:00
commit c60830797d
2 changed files with 4 additions and 2 deletions

View file

@ -1432,6 +1432,7 @@ class TaskManager(object):
# we do not trap these
raise
except koji.tasks.RefuseTask as refuse:
self.logger.warning("Refusing task %s: %s", handler.id, str(refuse))
self.session.host.refuseTask(handler.id, msg=str(refuse))
return
except koji.tasks.ServerRestart:

View file

@ -50,6 +50,7 @@ from koji.daemon import SCM, TaskManager
from koji.tasks import ( # noqa: F401
BaseTaskHandler,
MultiPlatformTask,
RefuseTask,
RestartTask, # handle restarted vm tasks
RestartVerifyTask, # handle restarted vm tasks
ServerExit,
@ -1084,8 +1085,8 @@ class VMTaskManager(TaskManager):
if e.get_error_code() == libvirt.VIR_ERR_NO_DOMAIN:
# if this builder does not have the requested VM,
# we can't handle the task
self.logger.debug('VM %s not available, ignoring task %i', vm_name, task['id'])
return False
msg = 'VM %s not available' % vm_name
raise RefuseTask(msg)
else:
raise
return super(VMTaskManager, self).takeTask(task)