'Sync the pci device tracker with hypervisor information.
To support pci device hot plug, we sync with the hypervisor
periodically, fetching all devices information from hypervisor,
update the tracker and sync the DB information.
Devices should not be hot-plugged when assigned to a guest,
but possibly the hypervisor has no such guarantee. The best
we can do is to give a warning if a device is changed
or removed while assigned.
:param devices_json: The JSON-ified string of device information
that is returned from the virt driver\'s
get_available_resource() call in the
pci_passthrough_devices key.'

def update_devices_from_hypervisor_resources(self, devices_json):

    devices = []
    for dev in jsonutils.loads(devices_json):
        if self.dev_filter.device_assignable(dev):
            devices.append(dev)
    self._set_hvdevs(devices)
