[Libvirt-cim] [PATCH V2 5/5] Virt_Device: Add a device class for controllers

Xu Wang gesaint at linux.vnet.ibm.com
Tue Mar 25 07:21:00 UTC 2014


Signed-off-by: Xu Wang <gesaint at linux.vnet.ibm.com>
---
 Makefile.am                         |    2 ++
 libvirt-cim.spec.in                 |    2 ++
 schema/Controller.mof               |   16 ++++++++++++++++
 schema/Controller.registration      |    5 +++++
 src/Virt_Device.c                   |    4 +++-
 src/Virt_ElementAllocatedFromPool.c |    6 ++++++
 src/Virt_ElementSettingData.c       |    3 +++
 src/Virt_ServiceAffectsElement.c    |    6 +++++-
 src/Virt_SettingsDefineState.c      |    6 ++++++
 src/Virt_SystemDevice.c             |    3 +++
 src/Virt_VSSDComponent.c            |    3 +++
 11 files changed, 54 insertions(+), 2 deletions(-)
 create mode 100644 schema/Controller.mof
 create mode 100644 schema/Controller.registration

diff --git a/Makefile.am b/Makefile.am
index 69b65cf..f38c8fc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -52,6 +52,7 @@ MOFS = \
 	$(top_srcdir)/schema/ServiceAffectsElement.mof \
 	$(top_srcdir)/schema/KVMRedirectionSAP.mof \
 	$(top_srcdir)/schema/DisplayController.mof \
+	$(top_srcdir)/schema/Controller.mof \
 	$(top_srcdir)/schema/PointingDevice.mof \
 	$(top_srcdir)/schema/GraphicsPool.mof \
 	$(top_srcdir)/schema/InputPool.mof \
@@ -142,6 +143,7 @@ REGS = \
 	$(top_srcdir)/schema/ServiceAffectsElement.registration \
 	$(top_srcdir)/schema/KVMRedirectionSAP.registration \
 	$(top_srcdir)/schema/DisplayController.registration \
+	$(top_srcdir)/schema/Controller.registration \
 	$(top_srcdir)/schema/PointingDevice.registration \
 	$(top_srcdir)/schema/GraphicsPool.registration \
 	$(top_srcdir)/schema/InputPool.registration \
diff --git a/libvirt-cim.spec.in b/libvirt-cim.spec.in
index 01ee329..809b9db 100644
--- a/libvirt-cim.spec.in
+++ b/libvirt-cim.spec.in
@@ -121,6 +121,7 @@ rm -fr $RPM_BUILD_ROOT
     %{_datadir}/%{name}/EntriesInFilterList.registration \\\
     %{_datadir}/%{name}/NestedFilterList.registration \\\
     %{_datadir}/%{name}/AppliedFilterList.registration \\\
+    %{_datadir}/%{name}/Controller.registration \\\
     %{_datadir}/%{name}/HostedFilterList.registration
 
 %define SCHEMA %{_datadir}/%{name}/ComputerSystem.mof \\\
@@ -182,6 +183,7 @@ rm -fr $RPM_BUILD_ROOT
     %{_datadir}/%{name}/EntriesInFilterList.mof \\\
     %{_datadir}/%{name}/NestedFilterList.mof \\\
     %{_datadir}/%{name}/AppliedFilterList.mof \\\
+    %{_datadir}/%{name}/Controller.mof \\\
     %{_datadir}/%{name}/HostedFilterList.mof
 
 %define INTEROP_REG %{_datadir}/%{name}/RegisteredProfile.registration \\\
diff --git a/schema/Controller.mof b/schema/Controller.mof
new file mode 100644
index 0000000..91475a9
--- /dev/null
+++ b/schema/Controller.mof
@@ -0,0 +1,16 @@
+// Copyright IBM Corp. 2014
+
+[ Provider("cmpi::Virt_Device") ]
+class Xen_Controller : CIM_Controller
+{
+};
+
+[ Provider("cmpi::Virt_Device") ]
+class KVM_Controller : CIM_Controller
+{
+};
+
+[ Provider("cmpi::Virt_Device") ]
+class LXC_Controller : CIM_Controller
+{
+};
diff --git a/schema/Controller.registration b/schema/Controller.registration
new file mode 100644
index 0000000..cc73b7a
--- /dev/null
+++ b/schema/Controller.registration
@@ -0,0 +1,5 @@
+# Copyright IBM Corp. 2014
+# Classname Namespace ProviderName ProviderModule ProviderTypes
+Xen_Controller root/virt Virt_Device Virt_Device instance
+KVM_Controller root/virt Virt_Device Virt_Device instance
+LXC_Controller root/virt Virt_Device Virt_Device instance
diff --git a/src/Virt_Device.c b/src/Virt_Device.c
index f100f6b..3f73a76 100644
--- a/src/Virt_Device.c
+++ b/src/Virt_Device.c
@@ -381,7 +381,7 @@ static CMPIInstance *controller_instance(const CMPIBroker *broker,
                                   ns,
                                   true);
         if (inst == NULL) {
-                CU_DEBUG("Failed to get instance of ControllerDevice");
+                CU_DEBUG("Failed to get instance of Controller");
                 return NULL;
         }
 
@@ -587,6 +587,8 @@ uint16_t res_type_from_device_classname(const char *classname)
                 return CIM_RES_TYPE_GRAPHICS;
         else if (strstr(classname, "PointingDevice"))
                 return CIM_RES_TYPE_INPUT;
+        else if (strstr(classname, "Controller"))
+                return CIM_RES_TYPE_CONTROLLER;
         else
                 return CIM_RES_TYPE_UNKNOWN;
 }
diff --git a/src/Virt_ElementAllocatedFromPool.c b/src/Virt_ElementAllocatedFromPool.c
index 2c2f2d1..7ba3a53 100644
--- a/src/Virt_ElementAllocatedFromPool.c
+++ b/src/Virt_ElementAllocatedFromPool.c
@@ -269,18 +269,21 @@ static char* device[] = {
         "Xen_LogicalDisk",
         "Xen_DisplayController",
         "Xen_PointingDevice",
+        "Xen_Controller",
         "KVM_Processor",
         "KVM_Memory",
         "KVM_NetworkPort",
         "KVM_LogicalDisk",
         "KVM_DisplayController",
         "KVM_PointingDevice",
+        "KVM_Controller",
         "LXC_Processor",
         "LXC_Memory",
         "LXC_NetworkPort",
         "LXC_LogicalDisk",
         "LXC_DisplayController",
         "LXC_PointingDevice",
+        "LXC_Controller",
         NULL
 };
 
@@ -291,18 +294,21 @@ static char* device_or_pool[] = {
         "Xen_LogicalDisk",
         "Xen_DisplayController",
         "Xen_PointingDevice",
+        "Xen_Controller",
         "KVM_Processor",
         "KVM_Memory",
         "KVM_NetworkPort",
         "KVM_LogicalDisk",
         "KVM_DisplayController",
         "KVM_PointingDevice",
+        "KVM_Controller",
         "LXC_Processor",
         "LXC_Memory",
         "LXC_NetworkPort",
         "LXC_LogicalDisk",
         "LXC_DisplayController",
         "LXC_PointingDevice",
+        "LXC_Controller",
         "Xen_ProcessorPool",
         "Xen_MemoryPool",
         "Xen_NetworkPool",
diff --git a/src/Virt_ElementSettingData.c b/src/Virt_ElementSettingData.c
index c088e49..38d7821 100644
--- a/src/Virt_ElementSettingData.c
+++ b/src/Virt_ElementSettingData.c
@@ -130,6 +130,7 @@ static char* resource_allocation_setting_data[] = {
         "Xen_GraphicsResourceAllocationSettingData",
         "Xen_ConsoleResourceAllocationSettingData",
         "Xen_InputResourceAllocationSettingData",
+        "Xen_ControllerResourceAllocationSettingData",
         "KVM_DiskResourceAllocationSettingData",
         "KVM_MemResourceAllocationSettingData",
         "KVM_NetResourceAllocationSettingData",
@@ -137,6 +138,7 @@ static char* resource_allocation_setting_data[] = {
         "KVM_GraphicsResourceAllocationSettingData",
         "KVM_ConsoleResourceAllocationSettingData",
         "KVM_InputResourceAllocationSettingData",
+        "KVM_ControllerResourceAllocationSettingData",
         "LXC_DiskResourceAllocationSettingData",
         "LXC_MemResourceAllocationSettingData",
         "LXC_NetResourceAllocationSettingData",
@@ -144,6 +146,7 @@ static char* resource_allocation_setting_data[] = {
         "LXC_GraphicsResourceAllocationSettingData",
         "LXC_ConsoleResourceAllocationSettingData",
         "LXC_InputResourceAllocationSettingData",
+        "LXC_ControllerResourceAllocationSettingData",
         NULL
 };
 
diff --git a/src/Virt_ServiceAffectsElement.c b/src/Virt_ServiceAffectsElement.c
index 9810e02..ff63ab2 100644
--- a/src/Virt_ServiceAffectsElement.c
+++ b/src/Virt_ServiceAffectsElement.c
@@ -102,7 +102,8 @@ static CMPIStatus validate_cs_or_dev_ref(const CMPIContext *context,
         if (STREQC(classname, "ComputerSystem")) {
                 s = get_domain_by_ref(_BROKER, ref, &inst);
         } else if ((STREQC(classname, "PointingDevice"))  || 
-                   (STREQC(classname, "DisplayController"))) {
+                   (STREQC(classname, "DisplayController")) ||
+                   (STREQC(classname, "Controller"))) {
                 s = get_device_by_ref(_BROKER, ref, &inst);        
         }
 
@@ -146,6 +147,9 @@ static char* affected_ele[] = {
         "Xen_DisplayController",
         "KVM_DisplayController",
         "LXC_DisplayController",
+        "Xen_Controller",
+        "KVM_Controller",
+        "LXC_Controller",
         NULL
 };
 
diff --git a/src/Virt_SettingsDefineState.c b/src/Virt_SettingsDefineState.c
index c8cda97..9024fda 100644
--- a/src/Virt_SettingsDefineState.c
+++ b/src/Virt_SettingsDefineState.c
@@ -329,6 +329,7 @@ static char* logical_device[] = {
         "Xen_DisplayController",
         "Xen_ConsoleDisplayController",
         "Xen_PointingDevice",
+        "Xen_Controller",
         "KVM_Processor",
         "KVM_Memory",
         "KVM_NetworkPort",
@@ -336,6 +337,7 @@ static char* logical_device[] = {
         "KVM_DisplayController",
         "KVM_ConsoleDisplayController",
         "KVM_PointingDevice",
+        "KVM_Controller",
         "LXC_Processor",
         "LXC_Memory",
         "LXC_NetworkPort",
@@ -343,6 +345,7 @@ static char* logical_device[] = {
         "LXC_DisplayController",
         "LXC_ConsoleDisplayController",
         "LXC_PointingDevice",
+        "LXC_Controller",
         NULL
 };
 
@@ -354,6 +357,7 @@ static char* resource_allocation_setting_data[] = {
         "Xen_GraphicsResourceAllocationSettingData",
         "Xen_InputResourceAllocationSettingData",
         "Xen_ConsoleResourceAllocationSettingData",
+        "Xen_ControllerResourceAllocationSettingData",
         "KVM_DiskResourceAllocationSettingData",
         "KVM_MemResourceAllocationSettingData",
         "KVM_NetResourceAllocationSettingData",
@@ -361,6 +365,7 @@ static char* resource_allocation_setting_data[] = {
         "KVM_GraphicsResourceAllocationSettingData",
         "KVM_InputResourceAllocationSettingData",
         "KVM_ConsoleResourceAllocationSettingData",
+        "KVM_ControllerResourceAllocationSettingData",
         "LXC_DiskResourceAllocationSettingData",
         "LXC_MemResourceAllocationSettingData",
         "LXC_NetResourceAllocationSettingData",
@@ -368,6 +373,7 @@ static char* resource_allocation_setting_data[] = {
         "LXC_GraphicsResourceAllocationSettingData",
         "LXC_InputResourceAllocationSettingData",
         "LXC_ConsoleResourceAllocationSettingData",
+        "LXC_ControllerResourceAllocationSettingData",
         NULL
 };
 
diff --git a/src/Virt_SystemDevice.c b/src/Virt_SystemDevice.c
index d2e526d..92dfe19 100644
--- a/src/Virt_SystemDevice.c
+++ b/src/Virt_SystemDevice.c
@@ -137,6 +137,7 @@ static char* part_component[] = {
         "Xen_DisplayController",
         "Xen_ConsoleDisplayController",
         "Xen_PointingDevice",
+        "Xen_Controller",
         "KVM_Processor",
         "KVM_Memory",
         "KVM_NetworkPort",
@@ -144,6 +145,7 @@ static char* part_component[] = {
         "KVM_DisplayController",
         "KVM_ConsoleDisplayController",
         "KVM_PointingDevice",
+        "KVM_Controller",
         "LXC_Processor",
         "LXC_Memory",
         "LXC_NetworkPort",
@@ -151,6 +153,7 @@ static char* part_component[] = {
         "LXC_DisplayController",
         "LXC_ConsoleDisplayController",
         "LXC_PointingDevice",
+        "LXC_Controller",
         NULL
 };
 
diff --git a/src/Virt_VSSDComponent.c b/src/Virt_VSSDComponent.c
index 35bffde..1fd1221 100644
--- a/src/Virt_VSSDComponent.c
+++ b/src/Virt_VSSDComponent.c
@@ -134,6 +134,7 @@ static char* part_component[] = {
         "Xen_GraphicsResourceAllocationSettingData",
         "Xen_ConsoleResourceAllocationSettingData",
         "Xen_InputResourceAllocationSettingData",
+        "Xen_ControllerResourceAllocationSettingData",
         "KVM_DiskResourceAllocationSettingData",
         "KVM_MemResourceAllocationSettingData",
         "KVM_NetResourceAllocationSettingData",
@@ -141,6 +142,7 @@ static char* part_component[] = {
         "KVM_GraphicsResourceAllocationSettingData",
         "KVM_InputResourceAllocationSettingData",
         "KVM_ConsoleResourceAllocationSettingData",
+        "KVM_ControllerResourceAllocationSettingData",
         "LXC_DiskResourceAllocationSettingData",
         "LXC_MemResourceAllocationSettingData",
         "LXC_NetResourceAllocationSettingData",
@@ -148,6 +150,7 @@ static char* part_component[] = {
         "LXC_GraphicsResourceAllocationSettingData",
         "LXC_InputResourceAllocationSettingData",
         "LXC_ConsoleResourceAllocationSettingData",
+        "LXC_ControllerResourceAllocationSettingData",
         NULL
 };
 
-- 
1.7.1




More information about the Libvirt-cim mailing list