Provision physical machines based on tags/search not just specific names.

Bug #1089759 reported by Christopher Lee
6
This bug affects 1 person
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,dual_monitor -i "$ISO" -p preseed.cfg master.run

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-for-available -i "$ISO" -p preseed.cfg master.run

So that Utah waits something like 30 minutes or so polling until a machine
matching that tag is available (or otherwise fails).

Tags: feature
Revision history for this message
Max Brustkern (nuclearbob) wrote :

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?

Changed in utah:
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
Christopher Lee (veebers) wrote :

Fair enough re: waiting longer.

I think the 'wait-for-available' would be more immediately beneficial (for me at least :-) ), would I be wrong in assuming that there is less work in that as well?

Would you like me to open another bug/feature request for that?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.