
Please find below a patch to Virt_SettingsDefineCapabilities.c to fix a couple issues I found: - The CIM_AllocationCapabilities for 'Default' RASDs have the incorrect ValueRole. per DSP1043 "Allocation Capabilities Profile", Section 10.5 "CIM_SettingsDefineCapabilities – Default" the ValueRole should be 0 ("Default") - Fixed mistake with usage of strstr() swapping the arguments; should be: char *strstr(const char *haystack, const char *needle); This may not have mattered before when both strings were always exactly same or didnt match, but now for new 'Point' instances the instanceid has a prefix. [Thnx Sharad for catching this] Please excuse the fact the patch is not in the correct format - I am still setting up my mercurial to correctly format and post patches, thnx. # User Dr. Gareth S. Bestor <bestor@us.ibm.com> # diff -r 395f2d684c10 src/Virt_SettingsDefineCapabilities.c --- a/src/Virt_SettingsDefineCapabilities.c Tue Jul 05 15:52:31 2011 -0300 +++ b/src/Virt_SettingsDefineCapabilities.c Mon Jul 18 04:11:35 2011 -0700 @@ -2054,20 +2188,21 @@ goto out; } - if (strstr("Default", iid) != NULL) + if (strstr(iid, "Default") != NULL) { valuerange = SDC_RANGE_POINT; - else if (strstr("Increment", iid) != NULL) + valuerole = SDC_ROLE_DEFAULT; + } + else if (strstr(iid, "Point") != NULL) + valuerange = SDC_RANGE_POINT; + else if (strstr(iid, "Increment") != NULL) valuerange = SDC_RANGE_INC; - else if (strstr("Maximum", iid) != NULL) + else if (strstr(iid, "Maximum") != NULL) valuerange = SDC_RANGE_MAX; - else if (strstr("Minimum", iid) != NULL) + else if (strstr(iid, "Minimum") != NULL) valuerange = SDC_RANGE_MIN; else CU_DEBUG("Unknown default RASD type: `%s'", iid); - if (valuerange == SDC_RANGE_POINT) - valuerole = SDC_ROLE_DEFAULT; - CMSetProperty(ref_inst, "ValueRole", (CMPIValue *)&valuerole, CMPI_uint16); CMSetProperty(ref_inst, "ValueRange", Dr. Gareth S. Bestor IBM Senior Software Engineer Systems & Technology Group - Systems Management Standards 971-285-6375 (mobile) bestor@us.ibm.com