python/pyosaf/utils/immom/__init__.py |  24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)


Add convenience function to immom utils to get error strings without handling 
marshalling of ctypes.

diff --git a/python/pyosaf/utils/immom/__init__.py 
b/python/pyosaf/utils/immom/__init__.py
--- a/python/pyosaf/utils/immom/__init__.py
+++ b/python/pyosaf/utils/immom/__init__.py
@@ -21,7 +21,7 @@
 
 import os
 import time
-from ctypes import pointer
+from ctypes import pointer, POINTER, cast, c_char_p
 
 from pyosaf import saAis
 from pyosaf.saAis import eSaAisErrorT, SaVersionT, SaNameT, unmarshalNullArray
@@ -65,6 +65,7 @@ saImmOmCcbObjectDelete    = decorate(saI
 saImmOmCcbObjectModify_2  = decorate(saImmOm.saImmOmCcbObjectModify_2)
 saImmOmCcbApply           = decorate(saImmOm.saImmOmCcbApply)
 saImmOmCcbFinalize        = decorate(saImmOm.saImmOmCcbFinalize)
+saImmOmCcbGetErrorStrings = decorate(saImmOm.saImmOmCcbGetErrorStrings)
 saImmOmAdminOperationInvoke_2 = decorate(saImmOm.saImmOmAdminOperationInvoke_2)
 saImmOmAdminOperationInvokeAsync_2 = 
decorate(saImmOm.saImmOmAdminOperationInvokeAsync_2)
 saImmOmAdminOperationContinue = decorate(saImmOm.saImmOmAdminOperationContinue)
@@ -174,3 +175,24 @@ def admin_op_invoke(dn, op_id, params=No
         raise SafException(retval.value)
 
     error = saImmOmAdminOwnerFinalize(owner_handle)
+
+
+def get_error_strings(ccb_handle):
+    ''' Returns the current error strings '''
+
+    c_strings = POINTER(saAis.SaStringT)()
+
+    saImmOmCcbGetErrorStrings(ccb_handle, c_strings)
+
+    strings = []
+
+    if c_strings:
+
+        for c_string in c_strings:
+
+            if c_string:
+                strings.append(cast(c_string, c_char_p).value)
+            else:
+                break
+
+    return strings

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to