Chris Dent 978408b900 Add gabbits using a DeepNUMANetworkFixture
Modify the NUMANetworkFixture so we make a subclass
that pre-creates cn1 and cn2 and puts them under distinct parents and a
shared grandparent. This helps to model a deeply nested but sparse
topology where providers that contribute to the solution are low down
in the tree.

This provides a deeper topology to test the same_subtree and
_merge_candidates changes that come in the following patches.

The added gabbit intentionally uses yaml anchors to indicate that the
expected response on each test is the same.

Understanding the structure of the available resource providers and
the UUIDs in use can be super painful, but osc_placement_tree [1] can
help. In my own tetsing I added the following to the end of
make_entities to trigger it to dump:

        from osc_placement_tree import utils as placement_visual
        from placement import direct
        import time

        with direct.PlacementDirect(
              self.conf_fixture.conf, latest_microversion=True) as client:
            placement_visual.dump_placement_db_to_dot(
                    placement_visual.PlacementDirectAsClientWrapper(client),
                    '/tmp/dump.%s.dot' % time.time(),
                    hidden_fields=['inventories', 'generation', 'aggregates', 'resource_provider_generation'])

[1] https://pypi.org/project/osc-placement-tree/

Change-Id: I2aedac0ce3a4f5a40de796bb9f74824541a95a65
2019-08-16 10:44:37 +01:00
..
2018-11-30 14:51:23 +00:00
2018-09-07 20:10:06 +00:00
2018-11-30 14:51:23 +00:00