[openstack-dev] [nova] placement/resource providers update 3

Chris Dent cdent+os at anticdent.org
Fri Nov 25 14:54:17 UTC 2016

More on what's happening in the resource provider and placement API

See the first message[0] for what this about.

If you have any additions or corrections please followup to this
message; this is being done to help keep things moving along, if it is
wrong we'll go the wrong way and that will be :(.

[0] http://lists.openstack.org/pipermail/openstack-dev/2016-November/107171.html

# Stuff What Merged

* Increased gabbi test coverage (stack of 3):

* Aggregates support in placement api (stack of 2):
     Review of this stack identified a race condition which has been
     fixed but now we're not sure how/if to test it.

* Spec for modifying the scheduler to query the api:

* Custom resource classes spec:

* Custom resource classes code:
     Some, but not all (see below) of the code has merged.

# Leftovers from Previous Work

This section describes work that was left unfinished for one reason or
another, was discovered as a result of doing other work, or is work on
a bug[1]. It included items from a newton leftovers etherpad[2]. That
etherpad lists additional work that needs to be picked up.

Ready for review:

* Improved 404 responses (1 merged, 1 pending):

* Demo inventory update script:
     This one might be considered a WIP because how it chooses to do
     things (rather simply and dumbly) may not be in line with expecations.

* CORS support in placement API:

Need response to reviews:

* Handle maximum limit in schema for int and float type parameters

* Return 400 when name is more than 200 characters

(Both of these are fixes for bugs with insufficient input validation.
There's some debate on the reviews about whether validation needs to
happen about both the API and the OVO level. I don't know, do you?)

Needs discussion to figure out the best solution:

* [WIP] Placement api: Add json_error_formatter to defaults

[1] https://bugs.launchpad.net/nova/+bugs?field.tag=placement
[2] https://etherpad.openstack.org/p/placement-newton-leftovers

# Filtering compute nodes with the placement API

This section is related to the collection of changes in both the
placement API, the resource tracker and nova-scheduler such that the
filtering of compute nodes by the scheduler can be augmented by the
placement API.

Specs for the placement API changes (to filter a list of resource
providers based on a set of resource requirements) have merged.

* Code that satisfies those two specs (stack of 2):

What's not yet been started is the work to change the scheduler.

As the get and set aggregate handling in the placement API has now
merged (see above) it's also time to start thinking about how
association with shared disk will be managed from the resource tracker
and in the filtering process.

# Custom Resource Classes

* Code to make them work in the api (stack of 3):
     Some of this code has merged (see above) but some bit still under

# Nested Resource Providers

* The spec

* Code to implement the object and HTTP API changes (stack of 4):
     This stuff was racing with aggregates for object and api
     microversions and aggregates won, so it's all had to be rebased.

# Allocations for generic PCI devices

* Code (stack of 3):

# Important stuff not in other categories

(Note that nothing has changed from here to the end of the message since
the previous message (except for footnote numbers) so you can stop here if
you already know it. It's here to keep it on the radar.)

This section is for lose ends that don't fit in elsewhere. Stuff
we're going to need to figure out at some point.

## Placement DB

No new discussion or progress on this. The etherpad[3] and related
code changes[4] remain the same. The todo here is to resolve the
questions on the etherpad and make an explicit plan.

[3] https://etherpad.openstack.org/p/placement-optional-db-spec
[4] https://review.openstack.org/#/c/362766/ (this is -2d pending
resolution of the stuff on the etherpad)

## Placement Docs

Matt R made a great start[5] to this setting the foundation for
the rest of us to build on. The major portion left as a TODO is
docs of the API. Because, for the time being, the API is relatively
simple, it has been decided that creating the docs by hand is okay.

So the todo here is: get started on the api-ref docs.

[5] https://review.openstack.org/#/c/396761/ which resulted in

## Placement Upgrade/Installation issues

In his response[6] to this topic Matt R pointed out todos for this

* get the placement-api enabled by default in the various bits of
    ocata CI 
* ensure that microversions are being used on both sides of the
    placement API transactions (that's true in pending changes to
    both the API and the resource tracker)

[6] http://lists.openstack.org/pipermail/openstack-dev/2016-November/107177.html

Chris Dent                 ¯\_(ツ)_/¯           https://anticdent.org/
freenode: cdent                                         tw: @anticdent

More information about the OpenStack-dev mailing list