[Libvirt-cim] [PATCH V2 0/5] Add Controller Device Support

John Ferlan jferlan at redhat.com
Tue Mar 25 23:45:24 UTC 2014



On 03/25/2014 03:20 AM, Xu Wang wrote:
> These patches are based on V1. An unexpectable accident makes
> me only one hand could work now so sorry everything from me
> takes so long time.
> 

Sorry to hear that - I have co-worker who did the same thing this past
July.  Took him a while to be productive again.

Not sure if you followed along with the recent posts - I did try to take
what you've coded (in V1) and get things to work. There's patches from
me regarding Virtual Controller Device on the list.  Unfortunately it
seems I didn't get the exactly right, but I'm assuming that I can
further massage them in order to make a ControllerRASD as well as the
Controller Logical Device (I think we're going to need one anyway if I
read Boris' response correctly).

Also the cimtest failures below most assuredly have to do with not
having a KVM_Controller RASD in the list...  I think if you start with
'XenKvmLib/rasd.py' and start adding a ControllerRASD - you'll
eventually work your way through the tests.

HOWEVER, I am messing with cimtest right now.  Upstream libvirt added a
keyboard device which (unfortunately) resides in the /devices/input
list. That makes it parseable and placed into the PointingDevice RASD
resulting in two InputRASD's being present.  Now one can argue a
keyboard is not a PointingDevice - I get it, but what I found is the
cimtest tests have an inherent assumption that there's the Class Name
can be used as a key for a dictionary in python.  That fails if there's
two InputRASD devices.

I have a pile of fixes for that where I've changed the dictionary to a
list of tuples with the Class Name as the first element and whatever the
dictionary was referencing as the second element.

I have cimtest passing with top of trunk.  I have to test it on an older
libvirt to see what happens.

I also think that a keyboard shouldn't be a PointingDevice, but I'm
trying to "wait" to add that until we close on the Controller code.

So the short of it is - cimtest is going to be broken for a bit I think.

Now that I have my cimtest environment "working" I'll start looking at
this set of changes over the next day or so.

John
> Updates from V1:
>   1. Added 2 break logic in switch.
>   2. Changed CIM_RES_TYPE_CONTROLLER into 32771.
>   3. Added XEN/KVM/LXC_Controller classes for cimtest.
> 
> Most of cimtest testcases have passed except the following:
> --------------------------------------------------------------------
> HostSystem - 02_hostsystem_to_rasd.py: FAIL
> ERROR 	- Failed to get associators information for KVM_SettingsDefineState
> ERROR 	- Exception: u'KVM_Controller'
> --------------------------------------------------------------------
> --------------------------------------------------------------------
> RASD - 03_rasd_errs.py: FAIL
> ERROR 	- Expected 6 RASDs, got 7
> --------------------------------------------------------------------
> --------------------------------------------------------------------
> ResourceAllocationFromPool - 01_forward.py: FAIL
> ERROR 	- 7 RASD insts != 6 pool insts
> --------------------------------------------------------------------
> ResourceAllocationFromPool - 02_reverse.py: FAIL
> ERROR 	- 7 RASD insts != 6 pool insts
> --------------------------------------------------------------------
> --------------------------------------------------------------------
> SettingsDefine - 01_forward.py: FAIL
> ERROR 	- 6 device insts != 7 RASD insts
> --------------------------------------------------------------------
> SettingsDefine - 02_reverse.py: FAIL
> ERROR 	- u'KVM_Controller'
> --------------------------------------------------------------------
> --------------------------------------------------------------------
> SystemDevice - 01_forward.py: FAIL
> 01_forward.py:29: DeprecationWarning: the sets module is deprecated
>   from sets import Set
> ERROR 	- Device Class mismatch
> ERROR 	- Exception Expected Device class list: ['KVM_DisplayController', 'KVM_LogicalDisk', 'KVM_Memory', 'KVM_NetworkPort', 'KVM_PointingDevice', 'KVM_Processor'] 
>  	  Got: [u'KVM_Controller', u'KVM_DisplayController', u'KVM_LogicalDisk', u'KVM_Memory', u'KVM_NetworkPort', u'KVM_PointingDevice', u'KVM_Processor']
> --------------------------------------------------------------------
> --------------------------------------------------------------------
> VirtualSystemSettingDataComponent - 02_reverse.py: FAIL
> ERROR 	- Unexpected RASD instance type
> ERROR 	- Mistmatching association value
> --------------------------------------------------------------------
> I think they are caused by the parameter set of cimtest (such as KVM_Controller
> or ControllerResourceAllocationSettingData should be added into some arrays.
> But if you find they are caused by my coding errors, please let me know, thanks).
> I'll fix these issues of cimtest later.
> 
> Dear John and Boris, could you help me testing it on RHEL6.5? I just
> have an upgraded version and introduced some packages from CentOS source
> (I am worried about they may influence the testing result). I'll rebuild
> my developing environment later using pure RHEL 6.5 version.
> 
> Xu Wang (5):
>   libxutil: Controller Support
>   RASD: Schema and Provider Support for Controller RASDs
>   VSMS: Support for domains with controller devices
>   Device: CIM_LogicalDevice for controllers
>   Virt_Device: Add a device class for controllers
> 
>  Makefile.am                                       |    2 +
>  libvirt-cim.spec.in                               |    2 +
>  libxkutil/device_parsing.c                        |   70 ++++++++++++++++++++-
>  libxkutil/device_parsing.h                        |    9 +++
>  libxkutil/xmlgen.c                                |   30 +++++++++
>  schema/Controller.mof                             |   16 +++++
>  schema/Controller.registration                    |    5 ++
>  schema/ResourceAllocationSettingData.mof          |   27 ++++++++
>  schema/ResourceAllocationSettingData.registration |    3 +
>  src/Virt_Device.c                                 |   36 ++++++++++-
>  src/Virt_ElementAllocatedFromPool.c               |    6 ++
>  src/Virt_ElementSettingData.c                     |    3 +
>  src/Virt_RASD.c                                   |   24 +++++++
>  src/Virt_ServiceAffectsElement.c                  |    6 ++-
>  src/Virt_SettingsDefineState.c                    |    6 ++
>  src/Virt_SystemDevice.c                           |    3 +
>  src/Virt_VSSDComponent.c                          |    3 +
>  src/Virt_VirtualSystemManagementService.c         |   44 +++++++++++++
>  src/svpc_types.h                                  |    4 +-
>  19 files changed, 295 insertions(+), 4 deletions(-)
>  create mode 100644 schema/Controller.mof
>  create mode 100644 schema/Controller.registration
> 




More information about the Libvirt-cim mailing list