TestNovaManagePlacementHealAllocations tests rely on the
CachingScheduler specifically because it does not use
placement and therefore does not create allocations during
scheduling, which gives us instances that need to heal
allocations.
However, we have a race in the test setup where the scheduler
is started before the compute services. The CachingScheduler
runs a periodic task on startup to fetch the hosts from the
DB to initialize it's cache, and then uses that during scheduling
until the periodic runs again. So what we can hit is the
scheduler starts, loads an empty cache, then we start the computes
and try to create an instance but because of the empty cache we
fail with a NoValidHost error.
This restarts and resets the CachingScheduler cache *after* we have
started the computes and asserted they are available in the API.
Change-Id: I32f607a436e9851a96877123ae3d1fe51f444f73
Closes-Bug: #1781648
(cherry picked from commit 4fe4fbe7a4)