You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
236 lines
8.6 KiB
236 lines
8.6 KiB
From 58d6e30844573de15aa597ab184e5720a08528ba Mon Sep 17 00:00:00 2001 |
|
From: John Ferlan <jferlan@redhat.com> |
|
Date: Thu, 27 Mar 2014 16:39:47 -0400 |
|
Subject: [PATCH 57/60] Add code and associations for ControllerPool |
|
|
|
Add the code and make adjustments to have ControllerPool support |
|
|
|
Signed-off-by: John Ferlan <jferlan@redhat.com> |
|
--- |
|
src/Virt_DevicePool.c | 55 +++++++++++++++++++++++- |
|
src/Virt_ElementAllocatedFromPool.c | 2 + |
|
src/Virt_ElementCapabilities.c | 4 +- |
|
src/Virt_HostedResourcePool.c | 3 +- |
|
src/Virt_ResourceAllocationFromPool.c | 2 + |
|
src/Virt_ResourcePoolConfigurationCapabilities.c | 2 +- |
|
src/Virt_ResourcePoolConfigurationService.c | 2 + |
|
7 files changed, 66 insertions(+), 4 deletions(-) |
|
|
|
diff --git a/src/Virt_DevicePool.c b/src/Virt_DevicePool.c |
|
index aae7ed4..6c61b64 100644 |
|
--- a/src/Virt_DevicePool.c |
|
+++ b/src/Virt_DevicePool.c |
|
@@ -1,5 +1,5 @@ |
|
/* |
|
- * Copyright IBM Corp. 2007 |
|
+ * Copyright IBM Corp. 2007-2014 |
|
* |
|
* Authors: |
|
* Dan Smith <danms@us.ibm.com> |
|
@@ -797,6 +797,8 @@ char *pool_member_of(const CMPIBroker *broker, |
|
poolid = strdup("GraphicsPool/0"); |
|
else if (type == CIM_RES_TYPE_INPUT) |
|
poolid = strdup("InputPool/0"); |
|
+ else if (type == CIM_RES_TYPE_CONTROLLER) |
|
+ poolid = strdup("ControllerPool/0"); |
|
else |
|
return NULL; |
|
|
|
@@ -817,6 +819,8 @@ uint16_t res_type_from_pool_classname(const char *classname) |
|
return CIM_RES_TYPE_GRAPHICS; |
|
else if (strstr(classname, "InputPool")) |
|
return CIM_RES_TYPE_INPUT; |
|
+ else if (strstr(classname, "ControllerPool")) |
|
+ return CIM_RES_TYPE_CONTROLLER; |
|
else |
|
return CIM_RES_TYPE_UNKNOWN; |
|
} |
|
@@ -835,6 +839,8 @@ uint16_t res_type_from_pool_id(const char *id) |
|
return CIM_RES_TYPE_GRAPHICS; |
|
else if (strstr(id, "InputPool")) |
|
return CIM_RES_TYPE_INPUT; |
|
+ else if (strstr(id, "ControllerPool")) |
|
+ return CIM_RES_TYPE_CONTROLLER; |
|
else |
|
return CIM_RES_TYPE_UNKNOWN; |
|
} |
|
@@ -1502,6 +1508,43 @@ static CMPIStatus inputpool_instance(virConnectPtr conn, |
|
return s; |
|
} |
|
|
|
+static CMPIStatus controllerpool_instance(virConnectPtr conn, |
|
+ struct inst_list *list, |
|
+ const char *ns, |
|
+ const char *_id, |
|
+ const CMPIBroker *broker) |
|
+{ |
|
+ const char *id = "ControllerPool/0"; |
|
+ CMPIInstance *inst; |
|
+ CMPIStatus s = {CMPI_RC_OK, NULL}; |
|
+ |
|
+ if ((_id != NULL) && (!STREQC(_id, "0"))) { |
|
+ cu_statusf(broker, &s, |
|
+ CMPI_RC_ERR_FAILED, |
|
+ "No such controller pool `%s'", id); |
|
+ return s; |
|
+ } |
|
+ |
|
+ inst = get_typed_instance(broker, |
|
+ pfx_from_conn(conn), |
|
+ "ControllerPool", |
|
+ ns, |
|
+ false); |
|
+ if (inst == NULL) { |
|
+ cu_statusf(broker, &s, |
|
+ CMPI_RC_ERR_FAILED, |
|
+ "Failed to get instance of %s_ControllerPool", |
|
+ pfx_from_conn(conn)); |
|
+ return s; |
|
+ } |
|
+ |
|
+ set_params(inst, CIM_RES_TYPE_CONTROLLER, id, NULL, NULL, true); |
|
+ |
|
+ inst_list_add(list, inst); |
|
+ |
|
+ return s; |
|
+} |
|
+ |
|
static CMPIStatus _get_pools(const CMPIBroker *broker, |
|
const CMPIObjectPath *reference, |
|
const uint16_t type, |
|
@@ -1563,6 +1606,14 @@ static CMPIStatus _get_pools(const CMPIBroker *broker, |
|
id, |
|
broker); |
|
|
|
+ if ((type == CIM_RES_TYPE_CONTROLLER) || |
|
+ (type == CIM_RES_TYPE_ALL)) |
|
+ s = controllerpool_instance(conn, |
|
+ list, |
|
+ NAMESPACE(reference), |
|
+ id, |
|
+ broker); |
|
+ |
|
if (type == CIM_RES_TYPE_UNKNOWN) |
|
cu_statusf(broker, &s, |
|
CMPI_RC_ERR_NOT_FOUND, |
|
@@ -1712,6 +1763,8 @@ CMPIInstance *parent_device_pool(const CMPIBroker *broker, |
|
id = "GraphicsPool/0"; |
|
} else if (type == CIM_RES_TYPE_INPUT) { |
|
id = "InputPool/0"; |
|
+ } else if (type == CIM_RES_TYPE_CONTROLLER) { |
|
+ id = "ControllerPool/0"; |
|
} else { |
|
cu_statusf(broker, s, |
|
CMPI_RC_ERR_INVALID_PARAMETER, |
|
diff --git a/src/Virt_ElementAllocatedFromPool.c b/src/Virt_ElementAllocatedFromPool.c |
|
index 262c9b9..a5fef12 100644 |
|
--- a/src/Virt_ElementAllocatedFromPool.c |
|
+++ b/src/Virt_ElementAllocatedFromPool.c |
|
@@ -253,6 +253,7 @@ static char* pool[] = { |
|
"KVM_DiskPool", |
|
"KVM_GraphicsPool", |
|
"KVM_InputPool", |
|
+ "KVM_ControllerPool", |
|
"LXC_ProcessorPool", |
|
"LXC_MemoryPool", |
|
"LXC_NetworkPool", |
|
@@ -317,6 +318,7 @@ static char* device_or_pool[] = { |
|
"KVM_DiskPool", |
|
"KVM_GraphicsPool", |
|
"KVM_InputPool", |
|
+ "KVM_ControllerPool", |
|
"LXC_ProcessorPool", |
|
"LXC_MemoryPool", |
|
"LXC_NetworkPool", |
|
diff --git a/src/Virt_ElementCapabilities.c b/src/Virt_ElementCapabilities.c |
|
index 77aad9a..0cb3e1e 100644 |
|
--- a/src/Virt_ElementCapabilities.c |
|
+++ b/src/Virt_ElementCapabilities.c |
|
@@ -1,5 +1,5 @@ |
|
/* |
|
- * Copyright IBM Corp. 2007 |
|
+ * Copyright IBM Corp. 2007-2014 |
|
* |
|
* Authors: |
|
* Dan Smith <danms@us.ibm.com> |
|
@@ -416,6 +416,7 @@ static char* host_sys_and_service_and_rp[] = { |
|
"KVM_DiskPool", |
|
"KVM_GraphicsPool", |
|
"KVM_InputPool", |
|
+ "KVM_ControllerPool", |
|
"LXC_ProcessorPool", |
|
"LXC_MemoryPool", |
|
"LXC_NetworkPool", |
|
@@ -553,6 +554,7 @@ static char* resource_pool[] = { |
|
"KVM_DiskPool", |
|
"KVM_GraphicsPool", |
|
"KVM_InputPool", |
|
+ "KVM_ControllerPool", |
|
"LXC_ProcessorPool", |
|
"LXC_MemoryPool", |
|
"LXC_NetworkPool", |
|
diff --git a/src/Virt_HostedResourcePool.c b/src/Virt_HostedResourcePool.c |
|
index 0863853..e0459c5 100644 |
|
--- a/src/Virt_HostedResourcePool.c |
|
+++ b/src/Virt_HostedResourcePool.c |
|
@@ -1,5 +1,5 @@ |
|
/* |
|
- * Copyright IBM Corp. 2007 |
|
+ * Copyright IBM Corp. 2007-2014 |
|
* |
|
* Authors: |
|
* Dan Smith <danms@us.ibm.com> |
|
@@ -113,6 +113,7 @@ static char* part_component[] = { |
|
"KVM_DiskPool", |
|
"KVM_GraphicsPool", |
|
"KVM_InputPool", |
|
+ "KVM_ControllerPool", |
|
"LXC_ProcessorPool", |
|
"LXC_MemoryPool", |
|
"LXC_NetworkPool", |
|
diff --git a/src/Virt_ResourceAllocationFromPool.c b/src/Virt_ResourceAllocationFromPool.c |
|
index 7bee729..98bd24e 100644 |
|
--- a/src/Virt_ResourceAllocationFromPool.c |
|
+++ b/src/Virt_ResourceAllocationFromPool.c |
|
@@ -194,6 +194,7 @@ static char* antecedent[] = { |
|
"KVM_DiskPool", |
|
"KVM_GraphicsPool", |
|
"KVM_InputPool", |
|
+ "KVM_ControllerPool", |
|
"LXC_ProcessorPool", |
|
"LXC_MemoryPool", |
|
"LXC_NetworkPool", |
|
@@ -216,6 +217,7 @@ static char* dependent[] = { |
|
"KVM_ProcResourceAllocationSettingData", |
|
"KVM_GraphicsResourceAllocationSettingData", |
|
"KVM_InputResourceAllocationSettingData", |
|
+ "KVM_ControllerResourceAllocationSettingData", |
|
"LXC_DiskResourceAllocationSettingData", |
|
"LXC_MemResourceAllocationSettingData", |
|
"LXC_NetResourceAllocationSettingData", |
|
diff --git a/src/Virt_ResourcePoolConfigurationCapabilities.c b/src/Virt_ResourcePoolConfigurationCapabilities.c |
|
index 63045bf..28a5de2 100644 |
|
--- a/src/Virt_ResourcePoolConfigurationCapabilities.c |
|
+++ b/src/Virt_ResourcePoolConfigurationCapabilities.c |
|
@@ -1,5 +1,5 @@ |
|
/* |
|
- * Copyright IBM Corp. 2007 |
|
+ * Copyright IBM Corp. 2007-2014 |
|
* |
|
* Authors: |
|
* Dan Smith <danms@us.ibm.com> |
|
diff --git a/src/Virt_ResourcePoolConfigurationService.c b/src/Virt_ResourcePoolConfigurationService.c |
|
index 02de834..ab83beb 100644 |
|
--- a/src/Virt_ResourcePoolConfigurationService.c |
|
+++ b/src/Virt_ResourcePoolConfigurationService.c |
|
@@ -431,6 +431,8 @@ static char *get_pool_id(int res_type, |
|
pool = "GraphicsPool"; |
|
else if (res_type == CIM_RES_TYPE_INPUT) |
|
pool = "InputPool"; |
|
+ else if (res_type == CIM_RES_TYPE_CONTROLLER) |
|
+ pool = "ControllerPool"; |
|
else |
|
pool = "Unknown"; |
|
|
|
-- |
|
2.1.0
|
|
|