Repository :
http://git.fedorahosted.org/cgit/cura-tools.git
On branch : openlmi-tools-lmiwbem
---------------------------------------------------------------
commit 2e1e2d0592ecbb0b5b3627494290c292b48b12db
Author: Peter Hatina <phatina(a)redhat.com>
Date: Thu Jun 26 14:40:39 2014 +0200
unwrap assigned LMIInstance(Name) to LMIInstanceName keybinding
---------------------------------------------------------------
cli/lmi/shell/LMIInstanceName.py | 9 ++++++++-
cli/lmi/shell/LMIUtil.py | 3 +--
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/cli/lmi/shell/LMIInstanceName.py b/cli/lmi/shell/LMIInstanceName.py
index 038da0d..db344dd 100644
--- a/cli/lmi/shell/LMIInstanceName.py
+++ b/cli/lmi/shell/LMIInstanceName.py
@@ -17,6 +17,7 @@ import sys
from lmi.shell.compat import *
+from lmi.shell.LMIObjectFactory import LMIObjectFactory
from lmi.shell.LMIBaseObject import LMIWrapperBaseObject
from lmi.shell.LMIUtil import lmi_transform_to_lmi
@@ -80,9 +81,15 @@ class LMIInstanceName(LMIWrapperBaseObject):
:param value: new value to assign
"""
if name in self._cim_instance_name.keys():
- # Convert string value into unicode
if isinstance(value, str):
+ # Convert string value into unicode
value = unicode(value, "utf-8")
+ elif isinstance(
+ value,
+ (LMIObjectFactory().LMIInstanceName,
+ LMIObjectFactory().LMIInstance)):
+ # Unpack wrapped LMI object
+ value = value.wrapped_object
self._cim_instance_name[name] = value
else:
self.__dict__[name] = value
diff --git a/cli/lmi/shell/LMIUtil.py b/cli/lmi/shell/LMIUtil.py
index 957a957..18ad377 100644
--- a/cli/lmi/shell/LMIUtil.py
+++ b/cli/lmi/shell/LMIUtil.py
@@ -199,8 +199,7 @@ def lmi_cast_to_cim(t, value):
"sint64": lambda x: wbem.Sint64(x),
"uint64": lambda x: wbem.Uint64(x),
"string": lambda x: unicode(x, "utf-8") if isinstance(x, str)
else x,
- "reference": lambda x: x.path
- if isinstance(x, LMIObjectFactory().LMIInstance) else x
+ "reference": lambda x: lmi_instance_to_path(x)
}
return _lmi_do_cast(t, value, cast)