Bug 1313416 - [RFE] support per-task hostRequires / distroRequires
Summary: [RFE] support per-task hostRequires / distroRequires
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Beaker
Classification: Retired
Component: scheduler
Version: 21
Hardware: All
OS: All
medium
medium vote
Target Milestone: ---
Assignee: beaker-dev-list
QA Contact: tools-bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-03-01 15:10 UTC by Jiri Jaburek
Modified: 2020-10-21 14:19 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-10-21 14:14:26 UTC


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 880526 1 None None None 2021-01-20 06:05:38 UTC

Internal Links: 880526

Description Jiri Jaburek 2016-03-01 15:10:45 UTC
Description of problem:

In some (though not rare) cases, a task itself has specific hardware requirements. These can be met, manually, by scheduling the task alone in a recipe, with hostRequires set to whatever the task requires.

However given multiple tasks, a union of the HW requirements needs to be made, to satisfy all tasks - this is fine as long as they don't specify conflicting or unsatisfiable requirements.

However when they do, the tasks need to be split into multiple (as few as possible) non-conflicting "groups" (recipes) based on what's available in the Beaker machine inventory. The issue with doing this externally is that only Beaker has database access to the inventory and can query what machines are available/suitable (and it also already has an API for it).

This RFE tries to propose a more generic approach - to invert the task/recipe XML tag logic, specifying tasks with distro/host requirements within a recipeSet, with Beaker grouping them to recipes (using a scheduler feature) based on common requirements.

As a practical example, consider the following task requirements:

 - testA: < 1GB RAM, < 2 CPU
 - testB: < 2GB RAM
 - testC: (no requirements)
 - testD: > 4GB RAM
 - testE: HVM support
 - testF: > 4GB RAM, < 2 CPU
 - testG: > 1TB HDD

These would be scheduled on (for example, multiple correct solutions)

machine 1: < 1GB RAM, < 2 CPU ; testA,testB
machine 2: > 6GB RAM, > 8 CPU , HVM support, > 1TB HDD ; testC,testD,testE,testG
machine 3: > 4GB RAM, < 2 CPU ; testF


The reason behind special HW requirements might be anything from running an upstream test suite (which requires ie. >1GB RAM) to tests verifying specific hardware functionality (ie. AES-NI).

I understand that this would be a major design decision and am very open to any alternative solutions or proposals.


Version-Release number of selected component (if applicable):
Beaker 22.1


Note You need to log in before you can comment on or make changes to this bug.