diff options
author | Peter Schiffer <pschiffe@redhat.com> | 2014-06-19 14:27:09 +0200 |
---|---|---|
committer | Peter Schiffer <pschiffe@redhat.com> | 2014-06-20 13:03:37 +0200 |
commit | 2b968faef61f3506b44e27d5e92da5b5ec4a6003 (patch) | |
tree | 38226a183ec78775b57e866d6219d3986da8bd3d | |
parent | 40fcb8c32d92f8ee998f17b867b88acad5ad42cb (diff) | |
download | openlmi-providers-2b968faef61f3506b44e27d5e92da5b5ec4a6003.tar.gz openlmi-providers-2b968faef61f3506b44e27d5e92da5b5ec4a6003.tar.xz openlmi-providers-2b968faef61f3506b44e27d5e92da5b5ec4a6003.zip |
software-dbus: use is_elem_name_installed() in InstalledSWProvider
Use is_elem_name_installed() function in associators and references method of
LMI_InstalledSoftwareIdentityProvider instead of manually checking it.
-rw-r--r-- | src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c b/src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c index 823ac1c..1f61471 100644 --- a/src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c +++ b/src/software-dbus/LMI_InstalledSoftwareIdentityProvider.c @@ -230,10 +230,7 @@ static CMPIStatus associators( } } else if (CMClassPathIsA(_cb, cop, LMI_SoftwareIdentity_ClassName, &st)) { /* got SoftwareIdentity - InstalledSoftware */ - PkPackage *pk_pkg = NULL; - SwPackage sw_pkg; - - init_sw_package(&sw_pkg); + const char *elem_name; st = lmi_class_path_is_a(_cb, KNameSpace(cop), computer_system_name, resultClass); @@ -247,16 +244,11 @@ static CMPIStatus associators( } /* Is this SwIdentity installed? */ - if (get_sw_pkg_from_sw_identity_op(cop, &sw_pkg) != 0) { - goto done; - } - get_pk_pkg_from_sw_pkg(&sw_pkg, - pk_bitfield_value(PK_FILTER_ENUM_INSTALLED), &pk_pkg); - free_sw_package(&sw_pkg); - if (!pk_pkg) { + elem_name = get_elem_name_from_instance_id( + lmi_get_string_property_from_objectpath(cop, "InstanceID")); + if (!is_elem_name_installed(elem_name)) { goto done; } - g_object_unref(pk_pkg); if (names) { CMReturnObjectPath(cr, lmi_get_computer_system()); @@ -330,26 +322,18 @@ static CMPIStatus references( return enum_instances(cr, KNameSpace(cop), names); } else if (CMClassPathIsA(_cb, cop, LMI_SoftwareIdentity_ClassName, &st)) { /* got SoftwareIdentity - InstalledSoftware */ - PkPackage *pk_pkg = NULL; - SwPackage sw_pkg; - - init_sw_package(&sw_pkg); + const char *elem_name; if (role && strcmp(role, LMI_INSTALLED_SOFTWARE) != 0) { goto done; } /* Is this SwIdentity installed? */ - if (get_sw_pkg_from_sw_identity_op(cop, &sw_pkg) != 0) { - goto done; - } - get_pk_pkg_from_sw_pkg(&sw_pkg, - pk_bitfield_value(PK_FILTER_ENUM_INSTALLED), &pk_pkg); - free_sw_package(&sw_pkg); - if (!pk_pkg) { + elem_name = get_elem_name_from_instance_id( + lmi_get_string_property_from_objectpath(cop, "InstanceID")); + if (!is_elem_name_installed(elem_name)) { goto done; } - g_object_unref(pk_pkg); LMI_SoftwareIdentityRef si; LMI_SoftwareIdentityRef_InitFromObjectPath(&si, _cb, cop); |