mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-08-25 21:49:35 +03:00
nodedev: Drop the non-standard .parse() handling
This commit is contained in:
@ -31,26 +31,7 @@ class TestNodeDev(unittest.TestCase):
|
||||
def _nodeDevFromName(self, devname):
|
||||
node = self.conn.nodeDeviceLookupByName(devname)
|
||||
xml = node.XMLDesc(0)
|
||||
return NodeDevice.parse(self.conn, xml)
|
||||
|
||||
def _testCompare(self, devname, vals):
|
||||
def _compare(dev, vals, root=""):
|
||||
for attr in list(vals.keys()):
|
||||
expect = vals[attr]
|
||||
actual = getattr(dev, attr)
|
||||
if isinstance(expect, list):
|
||||
for adev, exp in zip(actual, expect):
|
||||
_compare(adev, exp, attr + ".")
|
||||
else:
|
||||
if expect != actual:
|
||||
raise AssertionError("devname=%s attribute=%s%s did not match:\n"
|
||||
"expect=%s\nactual=%s" % (devname, root, attr, expect, actual))
|
||||
self.assertEqual(vals[attr], getattr(dev, attr))
|
||||
|
||||
dev = self._nodeDevFromName(devname)
|
||||
|
||||
_compare(dev, vals)
|
||||
return dev
|
||||
return NodeDevice(self.conn, xml)
|
||||
|
||||
def _testNode2DeviceCompare(self, nodename, devfile, nodedev=None):
|
||||
devfile = os.path.join("tests/nodedev-xml/devxml", devfile)
|
||||
@ -64,7 +45,7 @@ class TestNodeDev(unittest.TestCase):
|
||||
|
||||
def testFunkyChars(self):
|
||||
# Ensure parsing doesn't fail
|
||||
dev = NodeDevice.parse(self.conn, funky_chars_xml)
|
||||
dev = NodeDevice(self.conn, funky_chars_xml)
|
||||
self.assertEqual(dev.name, "L3B2616")
|
||||
self.assertEqual(dev.device_type, "LENOVO")
|
||||
self.assertEqual(dev.pretty_name(), dev.name)
|
||||
|
@ -9,13 +9,9 @@ from virtinst import NodeDevice
|
||||
from .libvirtobject import vmmLibvirtObject
|
||||
|
||||
|
||||
def _parse_convert(conn, parsexml=None):
|
||||
return NodeDevice.parse(conn, parsexml)
|
||||
|
||||
|
||||
class vmmNodeDevice(vmmLibvirtObject):
|
||||
def __init__(self, conn, backend, key):
|
||||
vmmLibvirtObject.__init__(self, conn, backend, key, _parse_convert)
|
||||
vmmLibvirtObject.__init__(self, conn, backend, key, NodeDevice)
|
||||
|
||||
def _conn_tick_poll_param(self):
|
||||
return "pollnodedev"
|
||||
|
@ -261,7 +261,7 @@ class VirtinstConnection(object):
|
||||
def _fetch_all_nodedevs_raw(self):
|
||||
ignore, ignore, ret = pollhelpers.fetch_nodedevs(
|
||||
self, {}, lambda obj, ignore: obj)
|
||||
return [NodeDevice.parse(weakref.ref(self), obj.XMLDesc(0))
|
||||
return [NodeDevice(weakref.ref(self), obj.XMLDesc(0))
|
||||
for obj in ret]
|
||||
|
||||
def fetch_all_nodedevs(self):
|
||||
|
@ -75,19 +75,6 @@ class NodeDevice(XMLBuilder):
|
||||
raise
|
||||
|
||||
|
||||
@staticmethod
|
||||
def parse(conn, xml):
|
||||
tmpdev = NodeDevice(conn, parsexml=xml, allow_node_instantiate=True)
|
||||
cls = _typeToDeviceClass(tmpdev.device_type)
|
||||
return cls(conn, parsexml=xml, allow_node_instantiate=True)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
instantiate = kwargs.pop("allow_node_instantiate", False)
|
||||
if self.__class__ is NodeDevice and not instantiate:
|
||||
raise RuntimeError("Can not instantiate NodeDevice directly")
|
||||
|
||||
XMLBuilder.__init__(self, *args, **kwargs)
|
||||
|
||||
XML_NAME = "device"
|
||||
|
||||
# Libvirt can generate bogus 'system' XML:
|
||||
@ -312,7 +299,3 @@ def _AddressStringToNodedev(conn, addrstr):
|
||||
elif count < 1:
|
||||
raise ValueError(_("Did not find a matching node device for '%s'") %
|
||||
addrstr)
|
||||
|
||||
|
||||
def _typeToDeviceClass(t):
|
||||
return NodeDevice
|
||||
|
Reference in New Issue
Block a user