|
From: <jc...@us...> - 2008-11-07 15:37:52
|
Revision: 1156
http://omc.svn.sourceforge.net/omc/?rev=1156&view=rev
Author: jcarey
Date: 2008-11-07 15:37:40 +0000 (Fri, 07 Nov 2008)
Log Message:
-----------
Added code to avoid validation of properties if they are NULL
Modified Paths:
--------------
contrib/xen-vm-builder/trunk/src/providers/vm-builder/vmcreation-data.c
Modified: contrib/xen-vm-builder/trunk/src/providers/vm-builder/vmcreation-data.c
===================================================================
--- contrib/xen-vm-builder/trunk/src/providers/vm-builder/vmcreation-data.c 2008-11-07 11:03:43 UTC (rev 1155)
+++ contrib/xen-vm-builder/trunk/src/providers/vm-builder/vmcreation-data.c 2008-11-07 15:37:40 UTC (rev 1156)
@@ -326,25 +326,29 @@
}
/*****************************************************************************/
-static void
+static int
add_u8_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance,
const char* prop_name)
{
+ int cc = 0;
CMPIData data = CMGetProperty(instance, prop_name, NULL);
if (!CMIsNullValue(data)) {
char wkbfr[32];
snprintf(wkbfr, sizeof(wkbfr), "%u,", data.value.uint8);
cmpiutilStrBuf_cat(pstrbuf, wkbfr, 0);
+ cc = 1;
} else {
cmpiutilStrBuf_cat(pstrbuf, "NULL,", 0);
}
+ return cc;
}
/*****************************************************************************/
-static void
+static int
add_u16_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance,
const char* prop_name, CMPIData *pdata, int endstmt)
{
+ int cc = 0;
CMPIData data;
const char* pnnfmt;
const char* pnullfmt;
@@ -364,16 +368,19 @@
char wkbfr[32];
snprintf(wkbfr, sizeof(wkbfr), pnnfmt, pdata->value.uint16);
cmpiutilStrBuf_cat(pstrbuf, wkbfr, 0);
+ cc = 1;
} else {
cmpiutilStrBuf_cat(pstrbuf, pnullfmt, 0);
}
+ return cc;
}
/*****************************************************************************/
-static void
+static int
add_u32_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance,
const char* prop_name, CMPIData* pdata)
{
+ int cc = 0;
CMPIData data;
if (!pdata) {
pdata = &data;
@@ -384,16 +391,19 @@
char wkbfr[32];
snprintf(wkbfr, sizeof(wkbfr), "%u,", pdata->value.uint32);
cmpiutilStrBuf_cat(pstrbuf, wkbfr, 0);
+ cc = 1;
} else {
cmpiutilStrBuf_cat(pstrbuf, "NULL,", 0);
}
+ return cc;
}
/*****************************************************************************/
-static void
+static int
add_str_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance,
const char* prop_name, int endstmt)
{
+ int cc = 0;
CMPIData data;
const char* pnnfmt;
const char* pnullfmt;
@@ -408,16 +418,19 @@
if (!CMIsNullValue(data)) {
char *p = (char*) CMGetCharPtr(data.value.string);
db_sql_insert(pstrbuf, pnnfmt, p);
+ cc = 1;
} else {
cmpiutilStrBuf_cat(pstrbuf, pnullfmt, 0);
}
+ return cc;
}
/*****************************************************************************/
-static void
+static int
add_stra_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance,
const char* prop_name)
{
+ int cc = 0;
CMPIData data = CMGetProperty(instance, prop_name, NULL);
if (!CMIsNullValue(data)) {
cmpiutilStrBuf* lstrbuf = stringArray2Str(_broker, data.value.array);
@@ -427,9 +440,11 @@
} else {
cmpiutilStrBuf_cat(pstrbuf, "NULL,", 0);
}
+ cc = 1;
} else {
cmpiutilStrBuf_cat(pstrbuf, "NULL,", 0);
}
+ return cc;
}
@@ -708,7 +723,7 @@
/*****************************************************************************/
-void
+int
mod_add_u16_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance,
const char* prop_name, const char** properties, CMPIData* pdata)
{
@@ -719,7 +734,7 @@
pdata = &data;
}
if (!get_mod_property(modified_instance, prop_name, properties, pdata)) {
- return;
+ return 0;
}
if (!CMIsNullValue((*pdata))) {
snprintf(wkbfr, sizeof(wkbfr), "%s=%u", prop_name, pdata->value.uint16);
@@ -727,17 +742,18 @@
snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name);
}
cmpiutilStrArray_append(pstra, wkbfr);
+ return 1;
}
/*****************************************************************************/
-void
+int
mod_add_u8_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance,
const char* prop_name, const char** properties)
{
char wkbfr[256];
CMPIData data;
if (!get_mod_property(modified_instance, prop_name, properties, &data)) {
- return;
+ return 0;
}
if (!CMIsNullValue(data)) {
snprintf(wkbfr, sizeof(wkbfr), "%s=%u", prop_name, data.value.uint8);
@@ -745,16 +761,17 @@
snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name);
}
cmpiutilStrArray_append(pstra, wkbfr);
+ return 1;
}
/*****************************************************************************/
-void
+int
mod_add_str_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance,
const char* prop_name, const char** properties)
{
CMPIData data;
if (!get_mod_property(modified_instance, prop_name, properties, &data)) {
- return;
+ return 0;
}
if (!CMIsNullValue(data)) {
char *p = (char*) CMGetCharPtr(data.value.string);
@@ -766,16 +783,17 @@
snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name);
cmpiutilStrArray_append(pstra, wkbfr);
}
+ return 1;
}
/*****************************************************************************/
-void
+int
mod_add_stra_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance,
const char* prop_name, const char** properties)
{
CMPIData data;
if (!get_mod_property(modified_instance, prop_name, properties, &data)) {
- return;
+ return 0;
}
if (!CMIsNullValue(data)) {
cmpiutilStrBuf* lstrbuf = stringArray2Str(_broker, data.value.array);
@@ -794,10 +812,11 @@
snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name);
cmpiutilStrArray_append(pstra, wkbfr);
}
+ return 1;
}
/*****************************************************************************/
-void
+int
mod_add_u32_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance,
const char* prop_name, const char** properties, CMPIData* pdata)
{
@@ -808,7 +827,7 @@
pdata = &data;
}
if (!get_mod_property(modified_instance, prop_name, properties, pdata)) {
- return;
+ return 0;
}
if (!CMIsNullValue((*pdata))) {
snprintf(wkbfr, sizeof(wkbfr), "%s=%u", prop_name, pdata->value.uint32);
@@ -816,6 +835,7 @@
snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name);
}
cmpiutilStrArray_append(pstra, wkbfr);
+ return 1;
}
/******************************************************************************
@@ -897,20 +917,23 @@
return status;
}
- mod_add_u16_prop(pstra, modified_instance, "AutoMaticRecoveryAction", properties, &data);
- if (valid_automatic_recovery_action(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u16_prop(pstra, modified_instance, "AutoMaticRecoveryAction", properties, &data)) {
+ if (valid_automatic_recovery_action(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
- mod_add_u16_prop(pstra, modified_instance, "AutoMaticShutdownAction", properties, &data);
- if (valid_automatic_shutdown_action(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u16_prop(pstra, modified_instance, "AutoMaticShutdownAction", properties, &data)) {
+ if (valid_automatic_shutdown_action(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
- mod_add_u16_prop(pstra, modified_instance, "AutoMaticStartupAction", properties, &data);
- if (valid_automatic_startup_action(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u16_prop(pstra, modified_instance, "AutoMaticStartupAction", properties, &data)) {
+ if (valid_automatic_startup_action(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
if (get_mod_property(modified_instance, "AutoMaticStartupActionDelay", properties, &data)) {
if (!CMIsNullValue(data)) {
@@ -932,10 +955,11 @@
"AutomaticStartupActionSequenceNumber", properties, NULL);
mod_add_str_prop(pstra, modified_instance, "CPUArchitecture", properties);
mod_add_str_prop(pstra, modified_instance, "Caption", properties);
- mod_add_u16_prop(pstra, modified_instance, "ChangeableType", properties, &data);
- if (valid_changeable_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u16_prop(pstra, modified_instance, "ChangeableType", properties, &data)) {
+ if (valid_changeable_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
mod_add_str_prop(pstra, modified_instance, "ConfigurationDataRoot", properties);
mod_add_str_prop(pstra, modified_instance, "ConfigurationFile", properties);
@@ -962,15 +986,17 @@
mod_add_str_prop(pstra, modified_instance, "ElementName", properties);
mod_add_stra_prop(pstra, modified_instance, "ExtraConfigInfo", properties);
mod_add_str_prop(pstra, modified_instance, "ExtraInstallArgs", properties);
- mod_add_u32_prop(pstra, modified_instance, "GraphicsType", properties, &data);
- if (valid_graphics_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u32_prop(pstra, modified_instance, "GraphicsType", properties, &data)) {
+ if (valid_graphics_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
- mod_add_u32_prop(pstra, modified_instance, "GraphicsViewerType", properties, &data);
- if (valid_graphics_viewer_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u32_prop(pstra, modified_instance, "GraphicsViewerType", properties, &data)) {
+ if (valid_graphics_viewer_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
mod_add_str_prop(pstra, modified_instance, "LogDataRoot", properties);
mod_add_u32_prop(pstra, modified_instance, "MaxMemory", properties, NULL);
@@ -978,10 +1004,11 @@
mod_add_stra_prop(pstra, modified_instance, "Nics", properties);
mod_add_stra_prop(pstra, modified_instance, "Notes", properties);
mod_add_u8_prop(pstra, modified_instance, "NumVCPUs", properties);
- mod_add_u32_prop(pstra, modified_instance, "OSType", properties, &data);
- if (valid_os_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u32_prop(pstra, modified_instance, "OSType", properties, &data)) {
+ if (valid_os_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
mod_add_str_prop(pstra, modified_instance, "RecoveryFile", properties);
mod_add_str_prop(pstra, modified_instance, "ResponseFile", properties);
@@ -991,32 +1018,32 @@
mod_add_str_prop(pstra, modified_instance, "SwapFileDataRoot", properties);
mod_add_u32_prop(pstra, modified_instance, "VNCPort", properties, NULL);
mod_add_str_prop(pstra, modified_instance, "VNCPassword", properties);
- mod_add_u32_prop(pstra, modified_instance, "VirtType", properties, &data);
- if (valid_virt_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u32_prop(pstra, modified_instance, "VirtType", properties, &data)) {
+ if (valid_virt_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
mod_add_str_prop(pstra, modified_instance, "VirtualSystemIdentifier", properties);
mod_add_str_prop(pstra, modified_instance, "VirtualSystemType", properties);
-
- mod_add_u16_prop(pstra, modified_instance, "OnPowerOff", properties, &data);
- if (valid_on_power_off(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u16_prop(pstra, modified_instance, "OnPowerOff", properties, &data)) {
+ if (valid_on_power_off(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
-
- mod_add_u16_prop(pstra, modified_instance, "OnReboot", properties, &data);
- if (valid_on_reboot(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u16_prop(pstra, modified_instance, "OnReboot", properties, &data)) {
+ if (valid_on_reboot(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
-
- mod_add_u16_prop(pstra, modified_instance, "OnCrash", properties, &data);
- if (valid_on_crash(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrArray_destroy(pstra);
- return status;
+ if (mod_add_u16_prop(pstra, modified_instance, "OnCrash", properties, &data)) {
+ if (valid_on_crash(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrArray_destroy(pstra);
+ return status;
+ }
}
-
pstrbuf = cmpiutilStrBuf_create();
if (!pstrbuf) {
CMSetStatusWithChars(_broker, &status, CMPI_RC_ERROR_SYSTEM,
@@ -1106,20 +1133,23 @@
cmpiutilStrBuf_cat(pstrbuf, ") VALUES (", 0);
db_sql_insert(pstrbuf, "%Q,", iid);
- add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticRecoveryAction", &data, 0);
- if (valid_automatic_recovery_action(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticRecoveryAction", &data, 0)) {
+ if (valid_automatic_recovery_action(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
- add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticShutdownAction", &data, 0);
- if (valid_automatic_shutdown_action(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticShutdownAction", &data, 0)) {
+ if (valid_automatic_shutdown_action(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
- add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticStartupAction", &data, 0);
- if (valid_automatic_startup_action(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticStartupAction", &data, 0)) {
+ if (valid_automatic_startup_action(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
data = CMGetProperty(newinstance, "AutoMaticStartupActionDelay", NULL);
if (!CMIsNullValue(data)) {
@@ -1141,10 +1171,11 @@
add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticStartupActionSequenceNumber", NULL, 0);
add_str_prop_to_query(pstrbuf, newinstance, "CPUArchitecture", 0);
add_str_prop_to_query(pstrbuf, newinstance, "Caption", 0);
- add_u16_prop_to_query(pstrbuf, newinstance, "ChangeableType", &data, 0);
- if (valid_changeable_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u16_prop_to_query(pstrbuf, newinstance, "ChangeableType", &data, 0)) {
+ if (valid_changeable_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
add_str_prop_to_query(pstrbuf, newinstance, "ConfigurationDataRoot", 0);
add_str_prop_to_query(pstrbuf, newinstance, "ConfigurationFile", 0);
@@ -1173,15 +1204,17 @@
add_str_prop_to_query(pstrbuf, newinstance, "ElementName", 0);
add_stra_prop_to_query(pstrbuf, newinstance, "ExtraConfigInfo");
add_str_prop_to_query(pstrbuf, newinstance, "ExtraInstallArgs", 0);
- add_u32_prop_to_query(pstrbuf, newinstance, "GraphicsType", &data);
- if (valid_graphics_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u32_prop_to_query(pstrbuf, newinstance, "GraphicsType", &data)) {
+ if (valid_graphics_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
- add_u32_prop_to_query(pstrbuf, newinstance, "GraphicsViewerType", &data);
- if (valid_graphics_viewer_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u32_prop_to_query(pstrbuf, newinstance, "GraphicsViewerType", &data)) {
+ if (valid_graphics_viewer_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
add_str_prop_to_query(pstrbuf, newinstance, "LogDataRoot", 0);
add_u32_prop_to_query(pstrbuf, newinstance, "MaxMemory", NULL);
@@ -1189,10 +1222,11 @@
add_stra_prop_to_query(pstrbuf, newinstance, "Nics");
add_stra_prop_to_query(pstrbuf, newinstance, "Notes");
add_u8_prop_to_query(pstrbuf, newinstance, "NumVCPUs");
- add_u32_prop_to_query(pstrbuf, newinstance, "OSType", &data);
- if (valid_os_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u32_prop_to_query(pstrbuf, newinstance, "OSType", &data)) {
+ if (valid_os_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
add_str_prop_to_query(pstrbuf, newinstance, "RecoveryFile", 0);
add_str_prop_to_query(pstrbuf, newinstance, "ResponseFile", 0);
@@ -1202,27 +1236,31 @@
add_str_prop_to_query(pstrbuf, newinstance, "SwapFileDataRoot", 0);
add_u32_prop_to_query(pstrbuf, newinstance, "VNCPort", NULL);
add_str_prop_to_query(pstrbuf, newinstance, "VNCPassword", 0);
- add_u32_prop_to_query(pstrbuf, newinstance, "VirtType", &data);
- if (valid_virt_type(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u32_prop_to_query(pstrbuf, newinstance, "VirtType", &data)) {
+ if (valid_virt_type(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
add_str_prop_to_query(pstrbuf, newinstance, "VirtualSystemIdentifier", 0);
add_str_prop_to_query(pstrbuf, newinstance, "VirtualSystemType", 0);
- add_u16_prop_to_query(pstrbuf, newinstance, "OnPowerOff", &data, 0);
- if (valid_on_power_off(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u16_prop_to_query(pstrbuf, newinstance, "OnPowerOff", &data, 0)) {
+ if (valid_on_power_off(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
- add_u16_prop_to_query(pstrbuf, newinstance, "OnReboot", &data, 0);
- if (valid_on_reboot(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u16_prop_to_query(pstrbuf, newinstance, "OnReboot", &data, 0)) {
+ if (valid_on_reboot(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
- add_u16_prop_to_query(pstrbuf, newinstance, "OnCrash", &data, 1);
- if (valid_on_crash(&data, &status) != CMPI_RC_OK) {
- cmpiutilStrBuf_destroy(pstrbuf);
- return status;
+ if (add_u16_prop_to_query(pstrbuf, newinstance, "OnCrash", &data, 1)) {
+ if (valid_on_crash(&data, &status) != CMPI_RC_OK) {
+ cmpiutilStrBuf_destroy(pstrbuf);
+ return status;
+ }
}
cmpiutilStrBuf_cat(pstrbuf, ");", 0);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|