[nova][ptg] Summary: Using Forbidden Aggregates
- TL;DR: Allows you to say "You can't land on a host that does X unless
you specifically require X". Example: Keep my Windows-licensed hosts for
- Exploit placement enablement for forbidden aggregates  in Nova
- Set (nova) aggregate metadata with a syntax similar/identical to that
of extra_specs for required traits (e.g. 'trait:CUSTOM_WINDOWS_ONLY':
- During scheduling, nova will discover all aggregates with metadata of
this form. For each:
- Construct a list of the traits in the aggregate metadata
- Subtract traits required by the server request's flavor+image.
- If any traits from the aggregate remain, add this aggregate's UUID
(which corresponds to a placement aggregate) to the list of "forbidden
aggregates" for the GET /allocation_candidates request.
- The "discover all aggregates" bit has the potential to be slow, but is
better than the alternative, which was having the admin supply the same
information in a confusing conf syntax. And if performance becomes a
problem, we can deal with it later; this does not paint us into a corner.
- Spec has overall support, but a few open questions. Answer those, and
we're good to approve and move forward.