Thanks for restarting this, Chris. I've always found it informative and helpful.
* Microversion 1.31 adds `in_tree` and `in_treeN` query parameters to GET /allocation_candidates. This is useful in a variety of nested resource provider scenarios, including the big bandwidth QoS changes that are in progress in nova and neutron.
To expand on this: The bandwidth-related use case would be for e.g. adding new QoS'd vifs to an existing instance. We would want to GET /allocation_candidates from only those providers associated with the compute node on which the instance already resides. However, the original motivation for this effort was for the force_hosts bug [1]. TL;DR: if you force_hosts in a big cloud, GET /allocation_candidates either returns you an untenably long list; or you can `?limit` it, but then there's a possibility that your desired host won't be represented in the limited list. With ?in_tree, you can specify the UUID of the host RP you're forcing and get back a very small number of results (usually one, until you have bandwidth/VGPU/cyborg/etc. in your provider tree) that are already filtered to the host you want. in_tree may also help us (partially) resolve the famous "doubled allocations on resize-to-same-host" bug [2]. But I don't fully understand that one, so I'll leave it as a teaser :) [1] https://bugs.launchpad.net/nova/+bug/1777591 [2] https://bugs.launchpad.net/nova/+bug/1790204 -efried