Provision physical machines based on tags/search not just specific names.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
UTAH |
Triaged
|
Medium
|
Unassigned |
Bug Description
Provision physical machines based on tags/search not just specific names.
I would love to see a feature where you can request to provision a physical
machine based on a search query, tags or something similar.
I personally would like to be able to do is something like:
run_utah_tests.py -m physical --matches NVIDA,HE,
So I would imagine (with my limited experience with the Utah codebase) that
there will be the ability to store tag strings against a machine in the db.
i.e. add a 'tags' row to the database that holds the tags that is then used with
a full text search to grab (or not) a machine from said database.
(I simplify of course. I only include implementation details in attempt to
better describe my intentions).
I was also pondering the feature of waiting for the availability of a machine
(with a timeout until failure).
I mention this because in my specific need I might be contending for access to a
pool of machines (which will more than likely be provisioned by other Jenkins
jobs.).
For instance I might have setup a jenkins job that multi-config job that is
setup to run with machine tags=:
Nvidia, High-end
Nvidia, Low-end
Ati, High-end
Ati, Low-end
Intel, High-end
Intel, Low-end
etc.
So jenkins will attempt to fire up 6+ jobs that is wanting 6+ machines, that may
be already in use by a different job.
It would be a pain to have the job fail when 5 machines succeed after 1.5 hours
and one fail because one machine was unavailable, especially it would have been
available 5 minutes after we started :)
This means that I would like to do something similar to:
run_utah_tests.py -m physical --matches $tags --wait-
So that Utah waits something like 30 minutes or so polling until a machine
matching that tag is available (or otherwise fails).
Changed in utah: | |
status: | New → Triaged |
importance: | Undecided → Medium |
We'll make the wait time configurable, but in general, I think we'll want it longer than 30 minutes, since our test runs currently take longer than that. The "wait-for- available" will be separate work from the more advanced inventory system. Is there one you'd prefer to have first?