def __init__(self, conf, log, **kwargs): super(HostDevice, self).__init__(conf, log, **kwargs) self._deviceParams = get_device_params(self.device) self.macAddr = self.specParams.get('macAddr') self.vlanId = self.specParams.get('vlanId')
def getXML(self): """ Create domxml for network interface. <interface type="bridge"> <mac address="aa:bb:dd:dd:aa:bb"/> <model type="virtio"/> <source bridge="engine"/> [<driver name="vhost/qemu" queues="int"/>] [<filterref filter='filter name'/>] [<tune><sndbuf>0</sndbuf></tune>] [<link state='up|down'/>] [<bandwidth> [<inbound average="int" [burst="int"] [peak="int"]/>] [<outbound average="int" [burst="int"] [peak="int"]/>] </bandwidth>] </interface> -- or -- a slightly different SR-IOV network interface <interface type='hostdev' managed='no'> <driver name='vfio'/> <source> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </source> <mac address='52:54:00:6d:90:02'/> <vlan> <tag id=100/> </vlan> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> <boot order='1'/> </interface> """ iface = self.createXmlElem("interface", self.device, ["address"]) if self.is_hostdevice: iface.setAttrs(managed="no") iface.appendChildWithArgs("mac", address=self.macAddr) if hasattr(self, "nicModel"): iface.appendChildWithArgs("model", type=self.nicModel) if self.is_hostdevice: host_address = get_device_params(self.hostdev)["address"] source = iface.appendChildWithArgs("source") source.appendChildWithArgs("address", type="pci", **host_address) else: iface.appendChildWithArgs("source", bridge=self.network) if self.vlanId is not None: vlan = iface.appendChildWithArgs("vlan") vlan.appendChildWithArgs("tag", id=str(self.vlanId)) if hasattr(self, "filter"): iface.appendChildWithArgs("filterref", filter=self.filter) if hasattr(self, "linkActive"): iface.appendChildWithArgs("link", state="up" if utils.tobool(self.linkActive) else "down") if hasattr(self, "bootOrder"): iface.appendChildWithArgs("boot", order=self.bootOrder) if self.driver: iface.appendChildWithArgs("driver", **self.driver) elif self.is_hostdevice: iface.appendChildWithArgs("driver", name="vfio") if self.sndbufParam: tune = iface.appendChildWithArgs("tune") tune.appendChildWithArgs("sndbuf", text=self.sndbufParam) if "inbound" in self.specParams or "outbound" in self.specParams: iface.appendChild(self.paramsToBandwidthXML(self.specParams)) return iface
def __init__(self, conf, log, **kwargs): super(HostDevice, self).__init__(conf, log, **kwargs) self._deviceParams = get_device_params(self.device) self.hostAddress = self._deviceParams.get('address')
def __init__(self, conf, log, **kwargs): super(HostDevice, self).__init__(conf, log, **kwargs) self._deviceParams = get_device_params(self.device)
def getXML(self): """ Create domxml for network interface. <interface type="bridge"> <mac address="aa:bb:dd:dd:aa:bb"/> <model type="virtio"/> <source bridge="engine"/> [<driver name="vhost/qemu" queues="int"/>] [<filterref filter='filter name'/>] [<tune><sndbuf>0</sndbuf></tune>] [<link state='up|down'/>] [<bandwidth> [<inbound average="int" [burst="int"] [peak="int"]/>] [<outbound average="int" [burst="int"] [peak="int"]/>] </bandwidth>] </interface> -- or -- a slightly different SR-IOV network interface <interface type='hostdev' managed='no'> <driver name='vfio'/> <source> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </source> <mac address='52:54:00:6d:90:02'/> <vlan> <tag id=100/> </vlan> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> <boot order='1'/> </interface> """ iface = self.createXmlElem('interface', self.device, ['address']) if self.is_hostdevice: iface.setAttrs(managed='no') iface.appendChildWithArgs('mac', address=self.macAddr) if hasattr(self, 'nicModel'): iface.appendChildWithArgs('model', type=self.nicModel) if self.is_hostdevice: host_address = get_device_params(self.hostdev)['address'] source = iface.appendChildWithArgs('source') source.appendChildWithArgs('address', type='pci', **host_address) else: iface.appendChildWithArgs('source', bridge=self.network) if self.vlanId is not None: vlan = iface.appendChildWithArgs('vlan') vlan.appendChildWithArgs('tag', id=str(self.vlanId)) if hasattr(self, 'filter'): iface.appendChildWithArgs('filterref', filter=self.filter) if hasattr(self, 'linkActive'): iface.appendChildWithArgs('link', state='up' if utils.tobool(self.linkActive) else 'down') if hasattr(self, 'bootOrder'): iface.appendChildWithArgs('boot', order=self.bootOrder) if self.driver: iface.appendChildWithArgs('driver', **self.driver) elif self.is_hostdevice: iface.appendChildWithArgs('driver', name='vfio') if self.sndbufParam: tune = iface.appendChildWithArgs('tune') tune.appendChildWithArgs('sndbuf', text=self.sndbufParam) if 'inbound' in self.specParams or 'outbound' in self.specParams: iface.appendChild(self.paramsToBandwidthXML(self.specParams)) return iface
def getXML(self): """ Create domxml for network interface. <interface type="bridge"> <mac address="aa:bb:dd:dd:aa:bb"/> <model type="virtio"/> <source bridge="engine"/> [<driver name="vhost/qemu" queues="int"/>] [<filterref filter='filter name'/>] [<tune><sndbuf>0</sndbuf></tune>] [<link state='up|down'/>] [<bandwidth> [<inbound average="int" [burst="int"] [peak="int"]/>] [<outbound average="int" [burst="int"] [peak="int"]/>] </bandwidth>] </interface> -- or -- a slightly different SR-IOV network interface <interface type='hostdev' managed='no'> <driver name='vfio'/> <source> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </source> <mac address='52:54:00:6d:90:02'/> <vlan> <tag id=100/> </vlan> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> <boot order='1'/> </interface> """ iface = self.createXmlElem('interface', self.device, ['address']) if self.is_hostdevice: iface.setAttrs(managed='no') iface.appendChildWithArgs('mac', address=self.macAddr) if hasattr(self, 'nicModel'): iface.appendChildWithArgs('model', type=self.nicModel) if self.is_hostdevice: host_address = get_device_params(self.hostdev)['address'] source = iface.appendChildWithArgs('source') source.appendChildWithArgs('address', type='pci', **host_address) else: iface.appendChildWithArgs('source', bridge=self.network) if self.vlanId is not None: vlan = iface.appendChildWithArgs('vlan') vlan.appendChildWithArgs('tag', id=str(self.vlanId)) if hasattr(self, 'filter'): iface.appendChildWithArgs('filterref', filter=self.filter) if hasattr(self, 'linkActive'): iface.appendChildWithArgs( 'link', state='up' if utils.tobool(self.linkActive) else 'down') if hasattr(self, 'bootOrder'): iface.appendChildWithArgs('boot', order=self.bootOrder) if self.driver: iface.appendChildWithArgs('driver', **self.driver) elif self.is_hostdevice: iface.appendChildWithArgs('driver', name='vfio') if self.sndbufParam: tune = iface.appendChildWithArgs('tune') tune.appendChildWithArgs('sndbuf', text=self.sndbufParam) if 'inbound' in self.specParams or 'outbound' in self.specParams: iface.appendChild(self.paramsToBandwidthXML(self.specParams)) return iface