def from_xml_tree(cls, log, dev, meta): params = { 'device': dev.tag, 'type': core.find_device_type(dev), } dev_type = params.get('type') try: dev_name = _get_device_name(dev, dev_type) except KeyError: raise NotImplementedError core.update_device_params(params, dev) _update_hostdev_params(params, dev) params['device'] = dev_name core.update_device_params_from_meta(params, meta) # We cannot access mdev device as it doesn't exist yet. if dev_type != 'mdev': device_params = get_device_params(dev_name) device_class = cls._DEVICE_MAPPING[device_params['capability']] else: params['mdev_type'] = None params['mdev_placement'] = MdevPlacement.COMPACT mdev_metadata = meta.get('mdevType') if mdev_metadata: mdev_info = mdev_metadata.split('|') params['mdev_type'] = mdev_info[0] if len(mdev_info) > 1: params['mdev_placement'] = mdev_info[1] device_class = MdevDevice return device_class(log, **params)
def __init__(self, log, **kwargs): # pyLint can't tell that the Device.__init__() will # set a nicModel attribute, so modify the kwarg list # prior to device init. for attr, value in kwargs.items(): if attr == 'nicModel' and value == 'pv': kwargs[attr] = 'virtio' elif attr == 'network' and value == '': kwargs[attr] = net_api.DUMMY_BRIDGE self.portMirroring = [] self.filter = None self.filterParameters = [] self.vm_custom = {} self.linkActive = True self.mtu = None self.port_isolated = None self.teaming = False super(Interface, self).__init__(log, **kwargs) self.sndbufParam = False self.is_hostdevice = self.device == hwclass.HOSTDEV self.vlanId = self.specParams.get('vlanid') self._customize() if self.is_hostdevice: self._device_params = get_device_params(self.hostdev) self.numa_node = self._device_params.get('numa_node', None)
def __init__(self, log, **kwargs): super(PciDevice, self).__init__(log, **kwargs) self._deviceParams = get_device_params(self.device) self.hostAddress = self._deviceParams.get('address') self.numa_node = self._deviceParams.get('numa_node', None) self.name = self.device self.is_hostdevice = True
def __init__(self, log, **kwargs): super(ScsiDevice, self).__init__(log, **kwargs) device_params = get_device_params(self.device) self.hostAddress = device_params.get('address') self.numa_node = None self.name = self.device self.bus_address, self.adapter = scsi_address_to_adapter( self.hostAddress) self.is_hostdevice = True
def __new__(cls, log, **kwargs): try: device_params = get_device_params(kwargs['device']) except libvirt.libvirtError: # TODO: MdevDevice is somewhat generic "UnknownDevice" really, but # at this point we don't expect any other device to fail. # In future, we should be more careful whether device is mdev or # some really unknown device. return MdevDevice(log, **kwargs) device = cls._DEVICE_MAPPING[ device_params['capability']](log, **kwargs) return device
def from_xml_tree(cls, log, dev, meta): params = { 'device': dev.tag, 'type': core.find_device_type(dev), } core.update_device_params(params, dev) _update_hostdev_params(params, dev) dev_type = params.get('type') dev_name = _get_device_name(dev, dev_type) params['device'] = dev_name device_params = get_device_params(dev_name) device_class = cls._DEVICE_MAPPING[device_params['capability']] return device_class(log, **params)
def from_xml_tree(cls, log, dev, meta): params = { 'device': dev.tag, 'type': core.find_device_type(dev), } dev_type = params.get('type') try: dev_name = _get_device_name(dev, dev_type) except KeyError: raise NotImplementedError core.update_device_params(params, dev) _update_hostdev_params(params, dev) params['device'] = dev_name core.update_device_params_from_meta(params, meta) device_params = get_device_params(dev_name) device_class = cls._DEVICE_MAPPING[device_params['capability']] return device_class(log, **params)