Index ¦ Archives ¦ Atom

Placement Queens Summary

This is a summary of the main changes made to the Placement service in OpenStack, including only visible changes made to the placement service itself. This is cribbed from the commit history, but is only highlights, not a complete reckoning. There are plenty of other changes, both under the hood, and on the nova-side of the equation. Listing all that would make for a very long document. If a summary of the nova-side is desired, please ask.

Placement API Changes

A bug was fixed when updating allocations to prevent a 500 response if an empty set of resources was provided.

allocations was added to the list of links included in the resource providers representation. Initially identified by a bug.

The concept of a granular resource request syntax was partially implemented. This makes it possible to request resources in a more granular fashion as may be necessary in some situations with nested resource providers. The linked spec provides plenty of examples.

If a request does not provide an accept header, the service has been updated to default it to application/json. This ensures that all error responses have a standard (and structured) format. It was already the case that non-error responses would be JSON.

The format for GET and PUT of allocations was updated to be the same, and always be a dict-like structure. This allows easier and more consistent processing on the client side.

That new structure allowed for the creation of a POST to /allocations that allows an atomic action to manage allocations for multiple consumers in one request, supporting race-free migration allocations.

Nested resource provider information (root and parent) was added to the representation for /resource_providers and /resource_providers/{uuid} in a 1.14 microversion along with an in_tree query parameter to list the members of a tree of resource providers when provided with the UUID of one member of the tree.

The / URI in the Placement service no longer requires authentication. This helps support proper version discovery.

Entities in the Placement service now have minimal cache headers to prevent proxies and other HTTP clients doing inadvertent caching.

When requesting /allocation_candidates a limit parameter can be passed to constrain the number of allocation requests that are returned. This is designed to limit the amount of memory and bandwidth consumed by the scheduler. A config setting for the scheduler-side of the equation has been added.

A required parameter is added to GET /allocation_candidates enabling trait support. Resource providers will be filtered to only include those with the desired trait. Note: This functionality does not yet support reporting results in a form that is nested-resource-providers aware. That was something we hoped to get done in Queens but didn't quite make it.

© Chris Dent. Built using Pelican. Theme by Giulio Fidente on github.