def _restore_sriov_config(): persistent_config = PersistentConfig() current_sriov_pci_devs = sriov.list_sriov_pci_devices() desired_sriov_pci_devs = { sriov.devname2pciaddr(devname) for devname, devattrs in six.viewitems(persistent_config.devices) if 'sriov' in devattrs } non_persisted_devs = current_sriov_pci_devs - desired_sriov_pci_devs if non_persisted_devs: logging.info( 'Non persisted SRIOV devices found: %s', non_persisted_devs ) missing_current_devs = desired_sriov_pci_devs - current_sriov_pci_devs if missing_current_devs: logging.error( 'Persisted SRIOV devices could not be found: %s', missing_current_devs, ) for sriov_devpci in current_sriov_pci_devs & desired_sriov_pci_devs: devname = sriov.pciaddr2devname(sriov_devpci) numvfs = persistent_config.devices[devname]['sriov']['numvfs'] try: change_numvfs(sriov_devpci, numvfs, devname) except Exception: logging.exception( 'Restoring VF configuration for device %s failed. ' 'Persisted nets built on this device will fail to restore.', devname, )
def _restore_sriov_config(): persistent_config = PersistentConfig() current_sriov_pci_devs = sriov.list_sriov_pci_devices() desired_sriov_pci_devs = { sriov.devname2pciaddr(devname) for devname, devattrs in six.viewitems(persistent_config.devices) if 'sriov' in devattrs } non_persisted_devs = current_sriov_pci_devs - desired_sriov_pci_devs if non_persisted_devs: logging.info('Non persisted SRIOV devices found: %s', non_persisted_devs) missing_current_devs = desired_sriov_pci_devs - current_sriov_pci_devs if missing_current_devs: logging.error('Persisted SRIOV devices could not be found: %s', missing_current_devs) for sriov_devpci in (current_sriov_pci_devs & desired_sriov_pci_devs): devname = sriov.pciaddr2devname(sriov_devpci) numvfs = persistent_config.devices[devname]['sriov']['numvfs'] try: change_numvfs(sriov_devpci, numvfs, devname) except Exception: logging.exception( 'Restoring VF configuration for device %s failed. ' 'Persisted nets built on this device will fail to restore.', devname )