From 3bbec5ff0c0e016a92ca3d521a8f42d5a8d2e7ca Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Mar 01 2024 10:13:32 +0000 Subject: [PATCH 1/2] Basic host data for scheduler Related: https://pagure.io/koji/issue/4030 --- diff --git a/koji/daemon.py b/koji/daemon.py index 2b8e700..14f2368 100644 --- a/koji/daemon.py +++ b/koji/daemon.py @@ -1025,9 +1025,21 @@ class TaskManager(object): else: self.logger.info("Lingering task %r (pid %r)" % (id, pid)) + def _get_host_data(self): + data = { + 'methods': list(self.handlers.keys()), + 'maxjobs': self.options.maxjobs, + # TODO: now it would be duplicated by updateHost + #'ready': self.ready, + #'task_load': self.task_load, + #cpu_load, free_mem, free_disk, ... + } + return data + def getNextTask(self): self.ready = self.readyForTask() self.session.host.updateHost(self.task_load, self.ready) + self.session.host.setHostData(self._get_host_data()) if not self.ready: self.logger.info("Not ready for task") return False From ed63d144237b088e1ac0bdba01671147227caa32 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Mar 01 2024 10:24:21 +0000 Subject: [PATCH 2/2] json conversion --- diff --git a/koji/daemon.py b/koji/daemon.py index 14f2368..1fab163 100644 --- a/koji/daemon.py +++ b/koji/daemon.py @@ -24,6 +24,7 @@ from __future__ import absolute_import, division import errno import hashlib +import json import logging import os import re @@ -1039,7 +1040,7 @@ class TaskManager(object): def getNextTask(self): self.ready = self.readyForTask() self.session.host.updateHost(self.task_load, self.ready) - self.session.host.setHostData(self._get_host_data()) + self.session.host.setHostData(json.dumps(self._get_host_data())) if not self.ready: self.logger.info("Not ready for task") return False