
On 09/05/2013 11:36 AM, Viktor Mihajlovski wrote:
Motivation: the current libvirt-cim support for consoles is very limited in that it doesn't allow to specify the target and source types supported by libvirt. Having full support of the libvirt console feature is however mandatory for architectures like s390.
The current implementation using a Graphics_RASD to represent consoles cannot easily be extended without breaking the existing implementation (or without being entirely unusable).
Therefore a new RASD class is added to represent consoles in the model. Since there's no SVPC resource type for a console we use the combination of ResourceType = 1 (Other) and OtherResourceType = "console" for the new RASD instances.
In order to be backward compatible, the only console type supported by older libvirt-cim versions (target type 'pty') will still be returned as Graphics_RASD. In the long run, this should be deprecated.
Thilo Boehm (6): schema: Add CIM_ResourceAllocationSettingData for console resources schema: New SVPC types for chardev/consoles libxkutil: Console Support RASD: Provider Support for Console RASDs VSMS: Support for domains with console devices VSMS: add default console
Viktor Mihajlovski (2): VSMS: Set resource types for default devices Device: CIM_LogicalDevice for consoles
libxkutil/device_parsing.c | 316 ++++++++++++++++++- libxkutil/device_parsing.h | 43 ++- libxkutil/xmlgen.c | 191 +++++++++++- schema/ResourceAllocationSettingData.mof | 247 ++++++++++++++- schema/ResourceAllocationSettingData.registration | 5 +- src/Virt_Device.c | 33 ++ src/Virt_RASD.c | 148 ++++++++- src/Virt_VirtualSystemManagementService.c | 336 +++++++++++++++++++-- src/svpc_types.h | 102 ++++++- 9 files changed, 1384 insertions(+), 37 deletions(-)
Not quite sure where it is, but there is a bug somewhere in patches 2->5 as the cimtest 'RASD' for '03_rasd_errs.py' fails to find/add the console device. The error message is "Expected 7 RASDs, got 6". I also think there's an ordering problem. If I add the patches 1 at a time, patch #2 will cause the same cimtest to return 0 (zero) RASD's (as found through debugging the cimtest test) if patches 3 and 4 are applied. I decided to try an experiment to see if I could narrow things down. The experiment was add each patch 1 at a time, then add patch 2 to the set. 1,3 -> Returns found 6, then add patch 2 and returns found 0 RASD's 1,3,4 -> Returns found 6, then add patch 2 and returns found 0 RASD's 1,3,4,5 -> Returns found 6, then add patch 2 and returns expected 7 found 6 At the very least patch 2 needs to go after patch 5 or be merged with patch 5 since it seems that's where the connection/implementation occurs. I didn't dig deep into that test to try and figure out why the console device was "missing". John