[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XEND] Refactoring device controllers to its own module so it can be used by both XendConfig and XendDomainInfo.
# HG changeset patch # User Alastair Tse <atse@xxxxxxxxxxxxx> # Node ID ea65d8be211f8531db307c14f6f63dddd052280e # Parent 59f3891b94b88da40c885ffd2d21232acbc3f598 [XEND] Refactoring device controllers to its own module so it can be used by both XendConfig and XendDomainInfo. Signed-off-by: Alastair Tse <atse@xxxxxxxxxxxxx> --- tools/python/xen/xend/XendDevices.py | 68 +++++++++++++++++++++++++++++++++++ 1 files changed, 68 insertions(+) diff -r 59f3891b94b8 -r ea65d8be211f tools/python/xen/xend/XendDevices.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/python/xen/xend/XendDevices.py Thu Oct 05 17:29:19 2006 +0100 @@ -0,0 +1,68 @@ +#=========================================================================== +# This library is free software; you can redistribute it and/or +# modify it under the terms of version 2.1 of the GNU Lesser General Public +# License as published by the Free Software Foundation. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#============================================================================ +# Copyright (C) 2006 XenSource Ltd +#============================================================================ + +# +# A collection of DevControllers +# + +from xen.xend.server import blkif, netif, tpmif, pciif, iopif, irqif, usbif +from xen.xend.server.BlktapController import BlktapController + +class XendDevices: + """ An ugly halfway point between the module local device name + to class map we used to have in XendDomainInfo and something + slightly more managable. + + This class should contain all the functions that have to do + with managing devices in Xend. Right now it is only a factory + function. + """ + + controllers = { + 'vbd': blkif.BlkifController, + 'vif': netif.NetifController, + 'vtpm': tpmif.TPMifController, + 'pci': pciif.PciController, + 'ioports': iopif.IOPortsController, + 'irq': irqif.IRQController, + 'usb': usbif.UsbifController, + 'tap': BlktapController, + } + + #@classmethod + def valid_devices(cls): + return cls.controllers.keys() + valid_devices = classmethod(valid_devices) + + #@classmethod + def make_controller(cls, name, domain): + """Factory function to make device controllers per domain. + + @param name: device class name in L{VALID_DEVICES} + @type name: String + @param domain: domain this controller is handling devices for. + @type domain: XendDomainInfo + @return: DevController of class 'name' or None + @rtype: subclass of DevController + """ + if name in cls.controllers.keys(): + cls.controllers[name].deviceClass = name + return cls.controllers[name](domain) + return None + + make_controller = classmethod(make_controller) + _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |