mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
VirtualDevice: Raise error if parsing addrstr fails
This commit is contained in:
parent
524d1047b1
commit
d9e82f984c
@ -780,7 +780,7 @@ class TestXMLConfig(unittest.TestCase):
|
|||||||
net3.macaddr = "22:22:22:22:22:22"
|
net3.macaddr = "22:22:22:22:22:22"
|
||||||
net3.network = "default"
|
net3.network = "default"
|
||||||
net3.model = "spapr-vlan"
|
net3.model = "spapr-vlan"
|
||||||
net3.set_address("spapr-vio")
|
net3.address.set_addrstr("spapr-vio")
|
||||||
g.add_device(net1)
|
g.add_device(net1)
|
||||||
g.add_device(net2)
|
g.add_device(net2)
|
||||||
g.add_device(net3)
|
g.add_device(net3)
|
||||||
|
@ -638,7 +638,7 @@ class vmmDomain(vmmLibvirtObject):
|
|||||||
return
|
return
|
||||||
|
|
||||||
editdev.address.clear()
|
editdev.address.clear()
|
||||||
editdev.set_address(addr)
|
editdev.address.set_addrstr(addr)
|
||||||
|
|
||||||
if oldprefix == editdev.get_target_prefix()[0]:
|
if oldprefix == editdev.get_target_prefix()[0]:
|
||||||
return
|
return
|
||||||
@ -707,7 +707,7 @@ class vmmDomain(vmmLibvirtObject):
|
|||||||
def change(editdev):
|
def change(editdev):
|
||||||
if editdev.model != newmodel:
|
if editdev.model != newmodel:
|
||||||
editdev.address.clear()
|
editdev.address.clear()
|
||||||
editdev.set_address(addr)
|
editdev.address.set_addrstr(addr)
|
||||||
editdev.model = newmodel
|
editdev.model = newmodel
|
||||||
return self._redefine_device(change, devobj)
|
return self._redefine_device(change, devobj)
|
||||||
|
|
||||||
|
@ -673,7 +673,6 @@ def populate_network_list(net_list, conn, show_direct_interfaces=True):
|
|||||||
|
|
||||||
def validate_network(err, conn, nettype, devname, macaddr, model=None):
|
def validate_network(err, conn, nettype, devname, macaddr, model=None):
|
||||||
net = None
|
net = None
|
||||||
addr = None
|
|
||||||
|
|
||||||
if nettype is None:
|
if nettype is None:
|
||||||
return None
|
return None
|
||||||
@ -723,9 +722,8 @@ def validate_network(err, conn, nettype, devname, macaddr, model=None):
|
|||||||
net.macaddr = macaddr
|
net.macaddr = macaddr
|
||||||
net.model = model
|
net.model = model
|
||||||
if net.model == "spapr-vlan":
|
if net.model == "spapr-vlan":
|
||||||
addr = "spapr-vio"
|
net.address.set_addrstr("spapr-vio")
|
||||||
|
|
||||||
net.set_address(addr)
|
|
||||||
|
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
return err.val_err(_("Error with network parameters."), e)
|
return err.val_err(_("Error with network parameters."), e)
|
||||||
|
@ -677,7 +677,7 @@ class Guest(XMLBuilder):
|
|||||||
def get_vscsi_ctrl_xml():
|
def get_vscsi_ctrl_xml():
|
||||||
ctrl = virtinst.VirtualController(self.conn)
|
ctrl = virtinst.VirtualController(self.conn)
|
||||||
ctrl.type = "scsi"
|
ctrl.type = "scsi"
|
||||||
ctrl.set_address("spapr-vio")
|
ctrl.address.set_addrstr("spapr-vio")
|
||||||
return ctrl.get_xml_config()
|
return ctrl.get_xml_config()
|
||||||
|
|
||||||
xml = self._get_emulator_xml()
|
xml = self._get_emulator_xml()
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
# MA 02110-1301 USA.
|
# MA 02110-1301 USA.
|
||||||
|
|
||||||
from virtinst.xmlbuilder import XMLBuilder, XMLProperty
|
from virtinst.xmlbuilder import XMLBuilder, XMLProperty
|
||||||
import logging
|
|
||||||
|
|
||||||
|
|
||||||
class VirtualDevice(XMLBuilder):
|
class VirtualDevice(XMLBuilder):
|
||||||
@ -104,9 +103,6 @@ class VirtualDevice(XMLBuilder):
|
|||||||
ignore = meter
|
ignore = meter
|
||||||
return
|
return
|
||||||
|
|
||||||
def set_address(self, addrstr):
|
|
||||||
self.address.set_addrstr(addrstr)
|
|
||||||
|
|
||||||
|
|
||||||
class VirtualDeviceAlias(XMLBuilder):
|
class VirtualDeviceAlias(XMLBuilder):
|
||||||
_XML_ROOT_NAME = "alias"
|
_XML_ROOT_NAME = "alias"
|
||||||
@ -140,22 +136,21 @@ class VirtualDeviceAddress(XMLBuilder):
|
|||||||
_XML_PROP_ORDER = ["type", "domain", "bus", "slot", "function"]
|
_XML_PROP_ORDER = ["type", "domain", "bus", "slot", "function"]
|
||||||
|
|
||||||
def set_addrstr(self, addrstr):
|
def set_addrstr(self, addrstr):
|
||||||
try:
|
if addrstr is None:
|
||||||
if addrstr.count(":") in [1, 2] and addrstr.count("."):
|
return
|
||||||
self.type = self.ADDRESS_TYPE_PCI
|
|
||||||
addrstr, self.function = addrstr.split(".", 1)
|
if addrstr.count(":") in [1, 2] and addrstr.count("."):
|
||||||
addrstr, self.slot = addrstr.rsplit(":", 1)
|
self.type = self.ADDRESS_TYPE_PCI
|
||||||
self.domain = "0"
|
addrstr, self.function = addrstr.split(".", 1)
|
||||||
if addrstr.count(":"):
|
addrstr, self.slot = addrstr.rsplit(":", 1)
|
||||||
self.domain, self.bus = addrstr.split(":", 1)
|
self.domain = "0"
|
||||||
elif addrstr == "spapr-vio":
|
if addrstr.count(":"):
|
||||||
self.type = self.ADDRESS_TYPE_SPAPR_VIO
|
self.domain, self.bus = addrstr.split(":", 1)
|
||||||
else:
|
elif addrstr == "spapr-vio":
|
||||||
raise ValueError(_("Could not determine or unsupported "
|
self.type = self.ADDRESS_TYPE_SPAPR_VIO
|
||||||
"format of '%s'") % addrstr)
|
else:
|
||||||
except:
|
raise ValueError(_("Could not determine or unsupported "
|
||||||
logging.exception("Error parsing address.")
|
"format of '%s'") % addrstr)
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
|
@ -1657,7 +1657,7 @@ def parse_controller(guest, optstring, dev=None):
|
|||||||
set_param("index", "index")
|
set_param("index", "index")
|
||||||
set_param("master_startport", "master")
|
set_param("master_startport", "master")
|
||||||
if address:
|
if address:
|
||||||
dev.set_address(address)
|
dev.address.set_addrstr(address)
|
||||||
|
|
||||||
if opts:
|
if opts:
|
||||||
raise ValueError(_("Unknown options %s") % opts.keys())
|
raise ValueError(_("Unknown options %s") % opts.keys())
|
||||||
|
Loading…
Reference in New Issue
Block a user