On 1/17/2019 5:16 AM, Balázs Gibizer wrote:
There is a functional test [1] that uses a fake virt driver and simulates rehape. My first attempt was to add an extra instance creation after the end of the reshape. But this test reshapes the provider tree to a way that the resulting tree uses sharing disk provider and doesn't have inventory on the compute node RP any more (cpu and mem moved under NUMA). Unfortunately nova does not yet support scheduling against such tree.
That's probably the one I mentioned on the call then. It uses a fake virt driver but stubs out the update_provider_tree method (from what I remember) and wouldn't be an easy fit for doing what I think we need to do for a new functional test.
Shall I try to add a new functional test with the fake virt driver or try to add a functional test with the libvirt driver top of the VGPU reshaper patch?
I'm personally OK with a fake virt driver (it could even be special purpose like some of our fake virt drivers for testing things like live migration rollback and resize failure/reschedule). Writing anything on top of the libvirt driver is still going to require stubbing out large parts of the libvirt driver code, which essentially makes it a fake driver. I know we have some functional tests for the libvirt driver that stub other stuff (Stephen is familiar with these) so it might be possible, but if I were going to write a new test I'd just use a fake virt driver and have the test be more like our traditional functional tests where we use the API to create a server, then reshape to nested, and then schedule another server to the nested resource class and assert everything is OK, since I think what we're really trying to test here is the API and scheduler interaction more than the virt driver itself. -- Thanks, Matt