FYI, having _get_host_numa_topology() not generate an exception on reporting is the least of our worries here. The scheduling placement code for NUMA guests assumes that all NUMA cells have both memory & cpus. So with the proposed patch you will have silenced the exception, but Nova will still be broken in practice, because it'll never schedule guests on 1/2 of the CPUs in this host - ie the ones without local memory will never get used. Fixing this is a far more invasive problem.
FYI, having _get_host_ numa_topology( ) not generate an exception on reporting is the least of our worries here. The scheduling placement code for NUMA guests assumes that all NUMA cells have both memory & cpus. So with the proposed patch you will have silenced the exception, but Nova will still be broken in practice, because it'll never schedule guests on 1/2 of the CPUs in this host - ie the ones without local memory will never get used. Fixing this is a far more invasive problem.