'Higher weights win. We want to keep PCI hosts free unless needed.
Prefer hosts with the least number of PCI devices. If the instance
requests PCI devices, this will ensure a stacking behavior and reserve
as many totally free PCI hosts as possible. If PCI devices are not
requested, this will ensure hosts with PCI devices are avoided
completely, if possible.'

def _weigh_object(self, host_state, request_spec):

    pools = (host_state.pci_stats.pools if host_state.pci_stats else [])
    free = (sum((pool['count'] for pool in pools)) or 0)
    weight = (MAX_DEVS - min(free, (MAX_DEVS - 1)))
    return weight
