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