[Libvirt-cim] [PATCH] [TEST] LXC support using DefineSystem & VSMS.01
Zhengang Li
zli at linux.vnet.ibm.com
Wed May 28 12:44:59 UTC 2008
My SFCB setup already segfault when VSMS.DefineSystem is invoked. Can
someone with a pegasus setup on LXC try this out?
zli at linux.vnet.ibm.com wrote:
> # HG changeset patch
> # User Zhengang Li <lizg at cn.ibm.com>
> # Date 1212085020 -28800
> # Node ID 555aeb0c467907a683e208d87ec67bb083d3d9e0
> # Parent 9520aaa2b61210bb2038b5bf3be5bed3b711c78e
> [TEST] LXC support using DefineSystem & VSMS.01
>
> Signed-off-by: Zhengang Li <lizg at cn.ibm.com>
>
> diff -r 9520aaa2b612 -r 555aeb0c4679 suites/libvirt-cim/cimtest/VirtualSystemManagementService/01_definesystem_name.py
> --- a/suites/libvirt-cim/cimtest/VirtualSystemManagementService/01_definesystem_name.py Fri May 30 00:30:02 2008 +0800
> +++ b/suites/libvirt-cim/cimtest/VirtualSystemManagementService/01_definesystem_name.py Fri May 30 02:17:00 2008 +0800
> @@ -30,7 +30,7 @@
> from CimTest.Globals import do_main
> from CimTest.Globals import logger
>
> -SUPPORTED_TYPES = ['Xen', 'KVM', 'XenFV']
> +SUPPORTED_TYPES = ['Xen', 'KVM', 'XenFV', 'LXC']
> default_dom = 'test_domain'
>
> @do_main(SUPPORTED_TYPES)
> diff -r 9520aaa2b612 -r 555aeb0c4679 suites/libvirt-cim/lib/XenKvmLib/const.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/const.py Fri May 30 00:30:02 2008 +0800
> +++ b/suites/libvirt-cim/lib/XenKvmLib/const.py Fri May 30 02:17:00 2008 +0800
> @@ -85,3 +85,4 @@
> #vxml.LXCXML
> LXC_init_path = os.path.join(_image_dir, 'cimtest_lxc_init')
> LXC_default_tty = '/dev/ptmx'
> +LXC_default_mp = '/tmp'
> diff -r 9520aaa2b612 -r 555aeb0c4679 suites/libvirt-cim/lib/XenKvmLib/vsms.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/vsms.py Fri May 30 00:30:02 2008 +0800
> +++ b/suites/libvirt-cim/lib/XenKvmLib/vsms.py Fri May 30 02:17:00 2008 +0800
> @@ -66,6 +66,9 @@
> class KVM_VirtualSystemManagementService(CIM_VirtualSystemManagementService):
> pass
>
> +class LXC_VirtualSystemManagementService(CIM_VirtualSystemManagementService):
> + pass
> +
> @eval_cls('VirtualSystemManagementService')
> def get_vsms_class(virt):
> pass
> @@ -99,6 +102,8 @@
> self.isFullVirt = (type == 'KVM' or virt == 'XenFV')
> if self.isFullVirt:
> self.BootDevice = 'hd'
> + elif type == 'LXC':
> + self.InitPath = const.LXC_init_path
> else:
> self.Bootloader = live.bootloader(Globals.CIM_IP, 0)
> self.BootloaderArgs = ''
> @@ -110,6 +115,9 @@
> pass
>
> class KVM_VirtualSystemSettingData(CIM_VirtualSystemSettingData):
> + pass
> +
> +class LXC_VirtualSystemSettingData(CIM_VirtualSystemSettingData):
> pass
>
> @eval_cls('VirtualSystemSettingData')
> @@ -131,6 +139,11 @@
>
> class KVM_DiskResourceAllocationSettingData(CIM_DiskResourceAllocationSettingData):
> pass
> +
> +class LXC_DiskResourceAllocationSettingData(CIMClassMOF):
> + def __init__(self, mountpoint, name):
> + self.MountPoint = mountpoint
> + self.InstanceID = '%s/%s' % (name, mountpoint)
>
> @eval_cls('DiskResourceAllocationSettingData')
> def get_dasd_class(virt):
> @@ -154,6 +167,9 @@
> class KVM_NetResourceAllocationSettingData(CIM_NetResourceAllocationSettingData):
> pass
>
> +class LXC_NetResourceAllocationSettingData(CIM_NetResourceAllocationSettingData):
> + pass
> +
> @eval_cls('NetResourceAllocationSettingData')
> def get_nasd_class(virt):
> pass
> @@ -172,6 +188,9 @@
> pass
>
> class KVM_ProcResourceAllocationSettingData(CIM_ProcResourceAllocationSettingData):
> + pass
> +
> +class LXC_ProcResourceAllocationSettingData(CIM_ProcResourceAllocationSettingData):
> pass
>
> @eval_cls('ProcResourceAllocationSettingData')
> @@ -194,6 +213,9 @@
> class KVM_MemResourceAllocationSettingData(CIM_MemResourceAllocationSettingData):
> pass
>
> +class LXC_MemResourceAllocationSettingData(CIM_MemResourceAllocationSettingData):
> + pass
> +
> @eval_cls('MemResourceAllocationSettingData')
> def get_masd_class(virt):
> pass
> @@ -208,18 +230,25 @@
> virt='Xen'):
> class_vssd = get_vssd_class(virt)
> vssd = class_vssd(name=dom_name, virt=virt)
> +
> + # LXC only takes disk and memory device for now.
> + # Only disk __init__ takes different params.
> + if virt == 'LXC':
> + d = LXC_DiskResourceAllocationSettingData(
> + mountpoint=const.LXC_default_mp, name=dom_name)
> + else:
> + class_dasd = get_dasd_class(virt)
> + if virt == 'KVM':
> + disk_dev = 'hda'
> + disk_source = const.KVM_disk_path
> + elif virt == 'XenFV':
> + disk_dev = 'hda'
> + disk_source = const.XenFV_disk_path
> + d = class_dasd(
> + dev=disk_dev,
> + source=disk_source,
> + name=dom_name)
>
> - class_dasd = get_dasd_class(virt)
> - if virt == 'KVM':
> - disk_dev = 'hda'
> - disk_source = const.KVM_disk_path
> - elif virt == 'XenFV':
> - disk_dev = 'hda'
> - disk_source = const.XenFV_disk_path
> - d = class_dasd(
> - dev=disk_dev,
> - source=disk_source,
> - name=dom_name)
> class_nasd = get_nasd_class(virt)
> if virt == 'KVM':
> net_mac= const.KVM_default_mac
> @@ -237,6 +266,6 @@
> m = class_masd(
> megabytes=mem_mb,
> name=dom_name)
> -
> +
> return vssd.mof(), [d.mof(), n.mof(), p.mof(), m.mof()]
>
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
--
- Zhengang
More information about the Libvirt-cim
mailing list