[openstack-dev] [nova][placement] placement update 18-28

Jay Pipes jaypipes at gmail.com
Mon Jul 16 13:16:51 UTC 2018

This is placement update 18-28, a weekly update of ongoing development 
related to the [OpenStack](https://www.openstack.org/) [placement 

This week I'm trying to fill Chris' esteemable shoes while he's away.

# Most Important

## Reshape Provider Trees

Code series: 

There are at least four different contributors working on various parts 
of the "reshape provider trees" spec implementation 
<https://review.openstack.org/#/c/572583/>. Three of the four were 
blocked on work I was supposed to complete around the single DB 
transaction for modifying inventory and allocation records atomically. 
So, this was the focus of work for week 28, in order to unblock other 

Work on the primary patch in the series 
<https://review.openstack.org/#/c/582383/> is ongoing, with excellent 
feedback and code additions from Eric Fried, Tetsuro Nakamura, Balasz 
Gibizer and Chris Dent. We hope to have this code merged in the next day 
or two.

There are WIPs for the HTTP parts and the resource tracker parts, on 
that topic, but both of those are dependent on the DB work merging.

# Important bug categories

In week 27 we discovered a set of bugs related to consumers and the 
handling of consumer generations. Most of these have now been fixed. 
Here is a list of these bugs along with their status:

* No ability to update consumer's project/user external ID
* Possible race updating consumer's project/user
* default missing project/user in placement is invalid UUID
* Consumers with no allocations should be auto-deleted
* Auto-created consumer record not clean up after fail allocation
* Making new allocation for one consumer and multiple providers gives 
409 Conflict
* AllocationList.delete_all() incorrectly assumes a single consumer
* Consumers never get deleted
* ensure-consumer gabbi test uses invalid consumer id
* return 404 when no consumer found in allocs
IN PROGRESS (lower priority now that consumers
with no allocations are auto-deleted)

**DECISION MADE**: The team made a decision to automatically remove any 
consumer record when there were no more allocations for that consumer. 
Remember that for the Nova use case, a consumer is either an instance or 
an on-going migration. So, when an instance is terminated, the consumer 
record that stores attributes about the instance -- such as the project 
and user IDs -- is now removed.

The other area of bugginess that was uncovered in week 27 and addressed 
in week 18 was related to various ways in which managing parents of 
nested providers was incorrect. Those were:

* placement allows RP parent loop in PUT resource_providers/{uuid}
* Child's root provider is not updated

Both of those, as you can see, have been fixed.

# Bugs

* Placement related [bugs not yet in progress](https://goo.gl/TgiPXb): 
15, -1 on last week.
* [In progress placement bugs](https://goo.gl/vzGGDQ) 14, -3 on last week.

# Other

The following continue to remain from the previous week and are copied 
verbatim from Chris' week 27 update.

* <https://review.openstack.org/#/c/546660/>
   Purge comp_node and res_prvdr records during deletion of

* <https://review.openstack.org/#/c/527791/>
   Get resource provider by uuid or name (osc-placement)

* <https://review.openstack.org/#/c/556669/>
   Tighten up ReportClient use of generation

* <https://review.openstack.org/#/c/537614/>
   Add unit test for non-placement resize

* <https://review.openstack.org/#/c/535517/>
   Move refresh time from report client to prov tree

* <https://review.openstack.org/#/c/561770/>
   PCPU resource class

* <https://review.openstack.org/#/c/566166/>
   rework how we pass candidate request information

* <https://review.openstack.org/#/c/564876/>
   add root parent NULL online migration

* <https://review.openstack.org/#/q/topic:bp/bandwidth-resource-provider>
   add resource_requests field to RequestSpec

* <https://review.openstack.org/#/c/538498/>
   Convert driver supported capabilities to compute node provider

* <https://review.openstack.org/#/c/568639/>
   Use placement.inventory.inuse in report client

* <https://review.openstack.org/#/c/517921/>
   ironic: Report resources as reserved when needed

* <https://review.openstack.org/#/c/568713/>
   Test for multiple limit/group_policy qparams

* <https://review.openstack.org/#/c/578048/>
   [placement] api-ref: add traits parameter

* <https://review.openstack.org/#/c/578826/>
   Convert 'placement_api_docs' into a Sphinx extension

* <https://review.openstack.org/#/c/568713/>
   Test for multiple limit/group_policy qparams

* <https://review.openstack.org/#/c/576693/>
   Disable limits if force_hosts or force_nodes is set

* <https://review.openstack.org/#/c/576820/>
   Rename auth_uri to www_authenticate_uri

   Blazar's work on using placement


More information about the OpenStack-dev mailing list