Repository : http://git.fedorahosted.org/cgit/cura-tools.git
On branch : master
commit 55f751f53bf22de4360af1084046694d19d033cc Author: Peter Hatina phatina@redhat.com Date: Tue Mar 12 12:30:22 2013 +0100
optimize instances filtering in LmiBaseClient::_get_instances()
cli-tools/lmi/lmi_client_base.py | 20 ++++++-------------- 1 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/cli-tools/lmi/lmi_client_base.py b/cli-tools/lmi/lmi_client_base.py index 267d55b..cf96987 100644 --- a/cli-tools/lmi/lmi_client_base.py +++ b/cli-tools/lmi/lmi_client_base.py @@ -142,21 +142,13 @@ class LmiBaseClient(object): if "Value" in kwargs: filter_value = kwargs["Value"] kwargs.pop("Value") - try: - inst_list_not_filtered = self._cliconn.EnumerateInstances(class_name, namespace, **kwargs) - except pywbem.cim_operations.CIMError, e: - raise_or_dump_exception(e) - return LmiReturnValue(rval = None, errorstr = e.args[1]) - except pywbem.cim_http.AuthError, e: - raise_or_dump_exception(e) - return LmiReturnValue(rval = None, errorstr = e.args[0]) - inst_list = [] - for inst in inst_list_not_filtered: - if not filter_value or filter_key in inst and inst[filter_key] == filter_value: - inst_list.append(inst) + query = "select * from %s" % class_name + if filter_value: + query += " where %s = "%s"" % (filter_key, filter_value) + (inst_list, _, errorstr) = self._exec_query("WQL", query, namespace) if not inst_list: - return LmiReturnValue(rval = None, errorstr = "Not found" if not "ErrorMsg" in kwargs else kwargs["ErrorMsg"]) - return LmiReturnValue(rval = inst_list, errorstr = "") + return LmiReturnValue(rval = None, errorstr = errorstr) + return LmiReturnValue(rval = inst_list)
def _get_class_names(self, namespace = None, **kwargs): try:
cura-tools-devel@lists.fedorahosted.org