mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-17 04:18:07 +00:00
Remove update_event as a single event loop for the system (#160)
This commit is contained in:
@ -118,9 +118,6 @@ class Task(BASE_TASK, ORMMixin):
|
||||
self.state = TaskState.stopped
|
||||
self.save()
|
||||
|
||||
def queue_stop(self) -> None:
|
||||
self.queue(method=self.stopping)
|
||||
|
||||
@classmethod
|
||||
def search_states(
|
||||
cls, *, job_id: Optional[UUID] = None, states: Optional[List[TaskState]] = None
|
||||
@ -165,7 +162,7 @@ class Task(BASE_TASK, ORMMixin):
|
||||
task_pool = task.get_pool()
|
||||
if not task_pool:
|
||||
continue
|
||||
if pool_name == task_pool.name and task.state in TaskState.available():
|
||||
if pool_name == task_pool.name:
|
||||
pool_tasks.append(task)
|
||||
|
||||
return pool_tasks
|
||||
|
@ -7,17 +7,34 @@ import logging
|
||||
from typing import Dict, List
|
||||
from uuid import UUID
|
||||
|
||||
from onefuzztypes.enums import OS, TaskState
|
||||
from onefuzztypes.enums import OS, PoolState, TaskState
|
||||
from onefuzztypes.models import WorkSet, WorkUnit
|
||||
|
||||
from ..azure.containers import blob_exists, get_container_sas_url, save_blob
|
||||
from ..azure.creds import get_func_storage
|
||||
from ..pools import Pool
|
||||
from .config import build_task_config, get_setup_container
|
||||
from .main import Task
|
||||
|
||||
HOURS = 60 * 60
|
||||
|
||||
|
||||
def schedule_workset(workset: WorkSet, pool: Pool, count: int) -> bool:
|
||||
if pool.state not in PoolState.available():
|
||||
logging.info(
|
||||
"pool not available for work: %s state: %s", pool.name, pool.state.name
|
||||
)
|
||||
return False
|
||||
|
||||
for _ in range(count):
|
||||
if not pool.schedule_workset(workset):
|
||||
logging.error(
|
||||
"unable to schedule workset. pool:%s workset:%s", pool.name, workset
|
||||
)
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def schedule_tasks() -> None:
|
||||
to_schedule: Dict[UUID, List[Task]] = {}
|
||||
|
||||
@ -82,7 +99,7 @@ def schedule_tasks() -> None:
|
||||
)
|
||||
|
||||
# For now, only offer singleton work sets.
|
||||
work_set = WorkSet(
|
||||
workset = WorkSet(
|
||||
reboot=reboot,
|
||||
script=(setup_script is not None),
|
||||
setup_url=setup_url,
|
||||
@ -94,7 +111,6 @@ def schedule_tasks() -> None:
|
||||
logging.info("unable to find pool for task: %s", task.task_id)
|
||||
continue
|
||||
|
||||
for _ in range(count):
|
||||
pool.schedule_workset(work_set)
|
||||
task.state = TaskState.scheduled
|
||||
task.save()
|
||||
if schedule_workset(workset, pool, count):
|
||||
task.state = TaskState.scheduled
|
||||
task.save()
|
||||
|
Reference in New Issue
Block a user