Repository : http://git.fedorahosted.org/cgit/cura-tools.git
On branch : master
commit 4cc66dc157b9bcffa4591e25124ae979ce81298b Author: Peter Hatina phatina@redhat.com Date: Mon Jun 24 14:39:21 2013 +0200
use query language for _LmiClass::first_instance() filtering
cli-tools/lmi/lmi_client_shell.py | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/cli-tools/lmi/lmi_client_shell.py b/cli-tools/lmi/lmi_client_shell.py index 6de7273..48a93df 100644 --- a/cli-tools/lmi/lmi_client_shell.py +++ b/cli-tools/lmi/lmi_client_shell.py @@ -545,14 +545,20 @@ class _LmiClass(BaseObject): return [] return map(lambda inst: _LmiInstance(self._client, self, inst), instance_list)
- # NOTE: filtering is done only by key properties def first_instance(self, **kwargs): - inst_name = self.first_instance_name(**kwargs) - if not inst_name: - if LmiBaseClient._get_use_exceptions(): - raise - return None - return inst_name.to_instance() + result = None + keys = [k.lower() for k in kwargs.keys()] + if "value" in keys: + (instance_list, _, errorstr) = self._client._get_instances( + self._cim_classname, self._namespace.name, **kwargs) + if instance_list: + result = _LmiInstance(self._client, self, instance_list[0]) + else: + inst_name = self.first_instance_name(**kwargs) + result = inst_name.to_instance() if inst_name else None + if not result and LmiBaseClient._get_use_exceptions(): + raise + return result
@lmi_class_fetch_lazy @lmi_return_val_if_fail("_namespace", [])
cura-tools-devel@lists.fedorahosted.org