
# HG changeset patch # User Dan Smith <danms@us.ibm.com> # Date 1196465546 28800 # Node ID e6be7823c8e90c1f4b722ce1b33d6d15db123029 # Parent 41b88691861933c0fa5b0ead6f27bd1b9730985d Make ElementCapabilities not assume a devid-style InstanceID For the cap_to_sys case, grab the host_cs and use cu_compare_ref() instead of inspecting the InstanceID directly. Signed-off-by: Dan Smith <danms@us.ibm.com> diff -r 41b886918619 -r e6be7823c8e9 src/Virt_ElementCapabilities.c --- a/src/Virt_ElementCapabilities.c Fri Nov 30 15:26:49 2007 -0800 +++ b/src/Virt_ElementCapabilities.c Fri Nov 30 15:32:26 2007 -0800 @@ -52,34 +52,22 @@ static CMPIStatus sys_to_cap(const CMPIO struct inst_list *list) { CMPIInstance *inst; - CMPIrc host_rc; - const char *host_name = NULL; - const char *sys_name = NULL; - CMPIStatus s = {CMPI_RC_OK, NULL}; + CMPIStatus s = {CMPI_RC_OK, NULL}; + const char *prop; s = get_host_cs(_BROKER, ref, &inst); if (s.rc != CMPI_RC_OK) goto out; - host_rc = cu_get_str_prop(inst, "Name", &host_name); - if (host_rc != CMPI_RC_OK) - goto out; - - if (cu_get_str_path(ref, "Name", &sys_name) != CMPI_RC_OK) { + prop = cu_compare_ref(ref, inst); + if (prop != NULL) { cu_statusf(_BROKER, &s, CMPI_RC_ERR_FAILED, - "Missing `Name' property"); - goto out; - } - - if (!STREQ(sys_name, host_name)) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "System '%s' is not a host system", sys_name); - goto out; - } - - s = get_vsm_cap(_BROKER, ref, sys_name, &inst); + "No such HostSystem (%s)", prop); + goto out; + } + + s = get_vsm_cap(_BROKER, ref, &inst); if (s.rc == CMPI_RC_OK) inst_list_add(list, inst); out: @@ -90,44 +78,16 @@ static CMPIStatus cap_to_sys(const CMPIO struct std_assoc_info *info, struct inst_list *list) { - const char *inst_id; - char *host; - char *device; - const char *host_name; - CMPIrc host_rc; - CMPIInstance *inst; - CMPIStatus s = {CMPI_RC_OK, NULL}; - - if (cu_get_str_path(ref, "InstanceID", &inst_id) != CMPI_RC_OK) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Could not get InstanceID"); - goto out; - } - - if (!parse_fq_devid(inst_id, &host, &device)) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Could not get system name"); - goto out; - } + CMPIInstance *inst; + CMPIStatus s = {CMPI_RC_OK, NULL}; s = get_host_cs(_BROKER, ref, &inst); if (s.rc != CMPI_RC_OK) goto out; - host_rc = cu_get_str_prop(inst, "Name", &host_name); - if (host_rc != CMPI_RC_OK) - goto out; - - if (!STREQ(host_name, host)) - goto out; - inst_list_add(list, inst); out: - free(host); - free(device); return s; }