nodedev: Drop the non-standard .parse() handling

This commit is contained in:
Cole Robinson
2019-06-05 16:21:00 -04:00
parent ab0c99057b
commit 50addfebca
4 changed files with 4 additions and 44 deletions

View File

@ -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)

View File

@ -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"

View File

@ -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):

View File

@ -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