[openstack-dev] [nova] placement/resource providers update 8
Chris Dent
cdent+os at anticdent.org
Fri Jan 13 17:15:16 UTC 2017
Hi, more resource providers and placement information for your reading
pleasure. Things continue to move along, with plenty of stuff to
review and a new bug that someone could work on.
# What Matters Most
The main priority remains the same: Getting the scheduler using a
filtered list of resource providers. That work is in progress near
here:
https://review.openstack.org/#/c/392569/
# Stuff that's Different Now
Discussion about the upgrade process from newton (where placement is
optional) to ocata (where we _really_ want it to be required) has led
the placement client in the resource tracker (and eventually the
scheduler) to change from trying the placement API and not retrying on
failure to retrying with a log warning:
https://review.openstack.org/#/c/418590/
The aggregates api will now return the uuid of an aggreate in the JSON
representation.
# Stuff Needing a Plan
# can_host, aggregates in filtering
See:
http://lists.openstack.org/pipermail/openstack-dev/2017-January/109971.html
in which I go an at some length on this topic in response to last
week's update, but no one has yet confirmed or denied the concerns.
# Pending Planned Work
## Dev Documentation
Work has started on documentation for developers of the placement API.
It is under review starting at
https://review.openstack.org/#/c/411946/
## Handling Aggregates in Placement Server and Clients
Resource tracker handling of aggregates is the last big piece for
aggregate handling:
https://review.openstack.org/#/c/407309/
The server side change has merged, after some stumbling over the
proper handling of mircoversions: there was a non-microversioned
code on master that enabled the `member_of` feature to exist, but
not actually work.
The link to the archive above is about the when of arggegate handling
for the scheduler.
## Resource Tracker Cleanup and Use of Resource Classes For Ironic
The cleanup to the resource tracker so that it can be more effective
and efficient and work correctly with Ironic continues in the
custom-resource-classes topic:
https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:bp/custom-resource-classes
# Stuff Happening Outside of Nova
* Neutron IPV4 Inventory
https://review.openstack.org/#/c/358658/
* Continued puppet/tripleo work with placement
https://review.openstack.org/#/c/406309/
# Bugs, Pick up Work, and Miscellaneous
* Allocation bad input handling and dead code fixing
https://review.openstack.org/#/c/419137/
This has turned out to be a goldmine for finding bugs. In addition
to fixing how allocations are created and removing dead code, it
also exposed that resource provider objects were not having their
generation being updated in the right places at the right times and
a bug in gabbi related to exposing failures in fixtures.
* Update the generic resource pools spec to reflect reality
https://review.openstack.org/#/c/407562/
* [WIP] Placement api: Add json_error_formatter to defaults
https://review.openstack.org/#/c/395194/
This is an effort to avoid boilerplate, but no good solution has
been determined yet. Reviewers can help us figure a good way to
handle things.
* Demo inventory update script:
https://review.openstack.org/#/c/382613/
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:
https://review.openstack.org/#/c/392891/
* Better debug logging on inventory update failures
https://review.openstack.org/#/c/414230/
The request-id wasn't being recorded, which makes it difficult to
associate client side logs with server side logs.
* Capacity exceeded logging is in the wrong place
https://review.openstack.org/#/c/410128/
* Python3 fixes that include changes in placement
https://review.openstack.org/#/c/419476/
JSON bodies need to be bytes in python3. The code was written
assuming webob would take care of this but it doesn't. The plan is
for code like this to merge, and then a follow up to back it out in
favor of an `EncodeUTF8` middleware, removing the need for
boilerplate on all handlers.
* Backports to Newton
https://review.openstack.org/#/q/owner:mriedem%2540us.ibm.com+status:open+branch:stable/newton
MattR has a passel of backports to newton, several of which are
placement but fixes.
* NEW BUG: DiscoveryFailure when trying to get resource providers
https://bugs.launchpad.net/nova/+bug/1656075
This is a newly discovered bug of yet another exception raised
by keystoneauth1 that is not being handled.
# Post Ocata
## Resource Provider Traits
Proof of concept work on resource provider traits is seeing plenty of
activity lately. This is the functionality that will allow people to
express requirements and preferences about qualitative aspects of
resources.
https://review.openstack.org/#/q/status:open+branch:master+topic:bp/resource-provider-tags
Spec:
https://review.openstack.org/#/c/345138/
## Nested Resource Providers
This is moving along at:
https://review.openstack.org/#/c/377138/
## Delete all Inventory
Working with the placement API from the resource tracker identified an
inefficient with the API: it's hard to delete all of one resource
provider's inventory in one request if it has more than one class of
resource. Work is planned to fix it:
spec: https://review.openstack.org/#/c/415885/
imp: https://review.openstack.org/416669
## Detailed error information for placement API
4xx responses from the Placement API can sometimes mean different
things for the same response code, especially with 409 responses. A
spec has been started to more fully implement the errors guideline
from the API-WG so that a unique code is associated with particular
error situations:
spec: https://review.openstack.org/#/c/418393/
# End
Despite efforts to avoid it I seem to be getting ill, so if this is
missing something I blame that (and society, man) and I hope anyone
who notices will followup with a correction. Thanks.
--
Chris Dent ¯\_(ツ)_/¯ https://anticdent.org/
freenode: cdent tw: @anticdent
More information about the OpenStack-dev
mailing list