Repository :
http://git.fedorahosted.org/cgit/cura-tools.git
On branch : master
---------------------------------------------------------------
commit 55f751f53bf22de4360af1084046694d19d033cc
Author: Peter Hatina <phatina(a)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: