[Libvirt-cim] [PATCH] [TEST]Fix HostSystem-01_enum.py with sblim cmpi base provider installed, add Linux_ComputerSystem to enumclass
Guo Lian Yun
yunguol at cn.ibm.com
Tue Sep 23 06:55:15 UTC 2008
libvirt-cim-bounces at redhat.com wrote on 2008-09-23 08:46:00:
> > @@ -43,27 +44,35 @@ def main():
> >
> > status = FAIL
> > keys = ['Name', 'CreationClassName']
> > - try:
> > - hs = enumclass.enumerate(options.ip, 'HostSystem', keys,
> options.virt)
> > - name = get_typed_class(options.virt, 'HostSystem')
> > +
> > + linux_cs = enumclass.enumerate(options.ip, 'ComputerSystem',
> keys, 'Linux')
>
> I think this would be a good chance to fix the behavior of the
> enumerate() function. Instead of passing in both the base name and the
> virtualization type, the test itself should call get_typed_class() to
> get the proper classname. That way, this function only needs to take a
> classname param.
Good idea. But a lot of tests have to update with the behavior of
enumerate() function fix.
At now, I put fixing HostSystem-01_enum.py with sblim cmpi base provider
installed in high
priority, so I sill use current enumereate() in my patch. Once it
applied, I will start
to cook up new enumerate() function and update all related tests.
Thanks!
>
> You'll also need to set the namespace appropriately before calling this
> function. Since you'll need to do this in several places, you could
> create a function that checks whether the system has the SBLIM providers
> or not. A function that returns a True if the enum of Linux_CS returns
> an instance or returns False if Linux_CS returns an error / 0 instances.
>
> > + hs = enumclass.enumerate(options.ip, 'HostSystem', keys,
options.virt)
> > + if len(linux_cs) == 1 and len(hs) == 0:
> > + return PASS
> > + if len(linux_cs) == 0 and len(hs) == 0:
>
> A debug statement here would be good.
>
> > + return XFAIL_RC(bug)
> > + elif len(linux_cs) == 0 and len(hs)== 1:
>
> What about the case where len(linux_cs) == 1 and len(hs) == 1? This
> scenario should be an error.
>
> So fixing this if / else block would be good. You could have something
> like:
>
> ret = using_sblim()
> if ret:
> #verify HostSystem enum didn't return an instance and return
> accordingly
>
> try:
> #rest of the test here
>
> > + try:
> > + hs = enumclass.enumerate(options.ip, 'HostSystem',
> keys, options.virt)
>
> This is no longer needed - you already called enumerate() above.
>
> >
> > diff -r 892ce3fce234 -r 83e6f32be2ae suites/libvirt-
> cim/lib/XenKvmLib/classes.py
> > --- a/suites/libvirt-cim/lib/XenKvmLib/classes.py Fri Sep 12 14:
> 35:12 2008 -0700
> > +++ b/suites/libvirt-cim/lib/XenKvmLib/classes.py Sun Sep 21 22:
> 54:28 2008 -0700
> > @@ -23,6 +23,8 @@ virt_types = ['Xen', 'KVM', 'XenFV', 'LX
> >
> > def get_typed_class(virt, basename):
> > if virt not in virt_types:
>
> I'd remove this if statement.
>
> > + if virt == "Linux" and basename == "ComputerSystem":
> > + return 'Linux_ComputerSystem'
>
> Which would make this part unnecessary.
>
> > if virt != "Virt" and basename != "MigrationJob":
> > raise ValueError('Invalid class type')
>
> This is obsolete now - so we need a separate patch to remove this piece.
>
Follow patch I will sent out later.
> >
> > diff -r 892ce3fce234 -r 83e6f32be2ae suites/libvirt-
> cim/lib/XenKvmLib/enumclass.py
> > --- a/suites/libvirt-cim/lib/XenKvmLib/enumclass.py Fri Sep 12
> 14:35:12 2008 -0700
> > +++ b/suites/libvirt-cim/lib/XenKvmLib/enumclass.py Sun Sep 21
> 22:54:28 2008 -0700
> > @@ -68,6 +68,9 @@ class CIM_ComputerSystem(CIM_MyClass):
> > pass
> >
> > class CIM_System(CIM_MyClass):
> > + pass
> > +
> > +class Linux_ComputerSystem(CIM_MyClass):
> > pass
>
> The MyClass extension is very useful, but I concerned that the list will
> just continue to grow. I don't think it's very scalable at this point.
> and I'd like to keep the amount of SBLIM specific bits to a minimum.
>
> This test case doesn't make use of the CIM_MyClass pieces from what I
> can tell. So I think it's safe to remove this.
>
> --
> Kaitlin Rupert
> IBM Linux Technology Center
> kaitlin at linux.vnet.ibm.com
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-cim/attachments/20080923/b9e2b514/attachment.htm>
More information about the Libvirt-cim
mailing list