cli: More shared 'address.*' handling output VirtCLIParser

Make it a global function rather than complicating VirtCLIParser any
further with irrelevant functions
This commit is contained in:
Cole Robinson 2016-06-13 16:00:58 -04:00
parent 7bee927276
commit cb6853eea6

View File

@ -1102,30 +1102,6 @@ class VirtCLIParser(object):
self.set_param(None, "clearxml",
setter_cb=set_clearxml_cb, is_onoff=True)
def _add_device_address_params(self):
"""
Add VirtualDeviceAddress parameters if we are parsing for a device
"""
self.set_param("address.type", "address.type")
self.set_param("address.domain", "address.domain")
self.set_param("address.bus", "address.bus")
self.set_param("address.slot", "address.slot")
self.set_param("address.multifunction", "address.multifunction",
is_onoff=True)
self.set_param("address.function", "address.function")
self.set_param("address.controller", "address.controller")
self.set_param("address.unit", "address.unit")
self.set_param("address.port", "address.port")
self.set_param("address.target", "address.target")
self.set_param("address.reg", "address.reg")
self.set_param("address.cssid", "address.cssid")
self.set_param("address.ssid", "address.ssid")
self.set_param("address.devno", "address.devno")
self.set_param("address.iobase", "address.iobase")
self.set_param("address.irq", "address.irq")
self.set_param("address.base", "address.base")
def check_introspection(self, option):
for optstr in util.listify(option):
if optstr == "?" or optstr == "help":
@ -1245,6 +1221,30 @@ class VirtCLIParser(object):
raise NotImplementedError()
def _add_device_address_params(virtparser):
"""
Add VirtualDeviceAddress parameters if we are parsing for a device
"""
virtparser.set_param("address.type", "address.type")
virtparser.set_param("address.domain", "address.domain")
virtparser.set_param("address.bus", "address.bus")
virtparser.set_param("address.slot", "address.slot")
virtparser.set_param("address.multifunction", "address.multifunction",
is_onoff=True)
virtparser.set_param("address.function", "address.function")
virtparser.set_param("address.controller", "address.controller")
virtparser.set_param("address.unit", "address.unit")
virtparser.set_param("address.port", "address.port")
virtparser.set_param("address.target", "address.target")
virtparser.set_param("address.reg", "address.reg")
virtparser.set_param("address.cssid", "address.cssid")
virtparser.set_param("address.ssid", "address.ssid")
virtparser.set_param("address.devno", "address.devno")
virtparser.set_param("address.iobase", "address.iobase")
virtparser.set_param("address.irq", "address.irq")
virtparser.set_param("address.base", "address.base")
###################
# --check parsing #
###################
@ -1725,7 +1725,7 @@ class ParserDisk(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualDisk
self.remove_first = "path"
self._add_device_address_params()
_add_device_address_params(self)
def noset_cb(inst, val, cbdata):
ignore = inst, val, cbdata
@ -1871,7 +1871,7 @@ class ParserNetwork(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualNetworkInterface
self.remove_first = "type"
self._add_device_address_params()
_add_device_address_params(self)
def set_mac_cb(inst, val, cbdata):
ignore = cbdata
@ -1955,7 +1955,7 @@ class ParserGraphics(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualGraphics
self.remove_first = "type"
self._add_device_address_params()
_add_device_address_params(self)
def set_keymap_cb(inst, val, cbdata):
ignore = cbdata
@ -2035,7 +2035,7 @@ class ParserController(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualController
self.remove_first = "type"
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("type", "type")
self.set_param("model", "model")
@ -2065,7 +2065,7 @@ class ParserInput(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualInputDevice
self.remove_first = "type"
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("type", "type")
self.set_param("bus", "bus")
@ -2080,7 +2080,7 @@ class ParserSmartcard(VirtCLIParser):
self.objclass = VirtualSmartCardDevice
self.remove_first = "mode"
self.check_none = True
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("mode", "mode")
self.set_param("type", "type")
@ -2094,7 +2094,7 @@ class ParserRedir(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualRedirDevice
self.remove_first = "bus"
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("bus", "bus")
self.set_param("type", "type")
@ -2122,7 +2122,7 @@ class ParserTPM(VirtCLIParser):
self.objclass = VirtualTPMDevice
self.remove_first = "type"
self.check_none = True
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("type", "type")
self.set_param("model", "model")
@ -2143,7 +2143,7 @@ class ParserRNG(VirtCLIParser):
self.objclass = VirtualRNGDevice
self.remove_first = "type"
self.check_none = True
self._add_device_address_params()
_add_device_address_params(self)
def set_hosts_cb(inst, val, cbdata):
namemap = {}
@ -2211,7 +2211,7 @@ class ParserWatchdog(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualWatchdog
self.remove_first = "model"
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("model", "model")
self.set_param("action", "action")
@ -2225,7 +2225,7 @@ class ParserMemballoon(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualMemballoon
self.remove_first = "model"
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("model", "model")
@ -2238,7 +2238,7 @@ class ParserPanic(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualPanicDevice
self.remove_first = "iobase"
self._add_device_address_params()
_add_device_address_params(self)
def set_iobase_cb(inst, val, cbdata):
ignore = cbdata
@ -2255,7 +2255,7 @@ class ParserPanic(VirtCLIParser):
class _ParserChar(VirtCLIParser):
def _init_params(self):
self.remove_first = "char_type"
self._add_device_address_params()
_add_device_address_params(self)
def support_check(inst, attrname, cliname):
if type(attrname) is not str:
@ -2329,7 +2329,7 @@ class ParserFilesystem(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualFilesystem
self.remove_first = ["source", "target"]
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("type", "type")
self.set_param("accessmode", "accessmode", aliases=["mode"])
@ -2345,7 +2345,7 @@ class ParserVideo(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualVideoDevice
self.remove_first = "model"
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("model", "model", ignore_default=True)
self.set_param("accel3d", "accel3d", is_onoff=True)
@ -2377,7 +2377,7 @@ class ParserSound(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualAudio
self.remove_first = "model"
self._add_device_address_params()
_add_device_address_params(self)
self.set_param("model", "model", ignore_default=True)
@ -2396,7 +2396,7 @@ class ParserHostdev(VirtCLIParser):
def _init_params(self):
self.objclass = VirtualHostDevice
self.remove_first = "name"
self._add_device_address_params()
_add_device_address_params(self)
# If using the name_lookup_cb, this saves us repeatedly trying to
# lookup the nodedev