placement/releasenotes/notes/placement-granular-resource-requests-944f9b73f306429f.yaml
Eric Fried a501f6e0ef placement: Granular GET /allocation_candidates
In a new microversion, the GET /allocation_candidates API now accepts
granular resource request syntax:
?resourcesN=...&requiredN=...&member_ofN=...&group_policy={isolate|none}

Change-Id: I4e99974443aa513fd9f837a6057f67d744caf1b4
blueprint: granular-resource-requests
2018-05-08 11:54:30 -05:00

32 lines
1.9 KiB
YAML

---
features:
- |
In version 1.25 of the Placement API, ``GET /allocation_candidates`` is
enhanced to accept numbered groupings of resource, required/forbidden
trait, and aggregate association requests. A ``resources`` query parameter
key with a positive integer suffix (e.g. ``resources42``) will be logically
associated with ``required`` and/or ``member_of`` query parameter keys with
the same suffix (e.g. ``required42``, ``member_of42``). The resources,
required/forbidden traits, and aggregate associations in that group will be
satisfied by the same resource provider in the response. When more than one
numbered grouping is supplied, the ``group_policy`` query parameter is
required to indicate how the groups should interact. With
``group_policy=none``, separate groupings - numbered or unnumbered - may or
may not be satisfied by the same provider. With ``group_policy=isolate``,
numbered groups are guaranteed to be satisfied by *different* providers -
though there may still be overlap with the unnumbered group. In all cases,
each ``allocation_request`` will be satisfied by providers in a single
non-sharing provider tree and/or sharing providers associated via aggregate
with any of the providers in that tree.
The ``required`` and ``member_of`` query parameters for a given group are
optional. That is, you may specify ``resources42=XXX`` without a
corresponding ``required42=YYY`` or ``member_of42=ZZZ``. However, the
reverse (specifying ``required42=YYY`` or ``member_of42=ZZZ`` without
``resources42=XXX``) will result in an error.
The semantic of the (unnumbered) ``resources``, ``required``, and
``member_of`` query parameters is unchanged: the resources, traits, and
aggregate associations specified thereby may be satisfied by any provider
in the same non-sharing tree or associated via the specified aggregate(s).