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


The immom module contains decorated versions of the raw saImmOm functions that 
do automatic retries and raises exceptions on faults. Use them in 
immom/__init__.py.

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
@@ -76,25 +76,11 @@ saImmOmAdminOperationContinuationClear =
 def _initialize():
     ''' saImmOmInitialize with TRYAGAIN handling '''
     version = SaVersionT('A', 2, 15)
-    one_sec_sleeps = 0
-    err = saImmOm.saImmOmInitialize(HANDLE, None, version)
-    while err == eSaAisErrorT.SA_AIS_ERR_TRY_AGAIN:
-        if one_sec_sleeps == TRYAGAIN_CNT:
-            break
-        time.sleep(1)
-        one_sec_sleeps += 1
-        err = saImmOm.saImmOmInitialize(HANDLE, None, version)
 
-    if err != eSaAisErrorT.SA_AIS_OK:
-        raise SafException(err,
-                           "saImmOmInitialize: %s" % eSaAisErrorT.whatis(err))
+    err = saImmOmInitialize(HANDLE, None, version)
 
     # TODO TRYAGAIN handling? Is it needed?
-    err = saImmOm.saImmOmAccessorInitialize(HANDLE, ACCESSOR_HANDLE)
-    if err != eSaAisErrorT.SA_AIS_OK:
-        raise SafException(err,
-                           "saImmOmAccessorInitialize: %s" %
-                           eSaAisErrorT.whatis(err))
+    err = saImmOmAccessorInitialize(HANDLE, ACCESSOR_HANDLE)
 
 
 def get(object_name, attr_name_list=None):
@@ -105,25 +91,15 @@ def get(object_name, attr_name_list=None
 
     attributes = pointer(pointer(SaImmAttrValuesT_2()))
 
-    one_sec_sleeps = 0
-    err = saImmOm.saImmOmAccessorGet_2(ACCESSOR_HANDLE,
-                                       SaNameT(object_name),
-                                       attrib_names, attributes)
-    while err == eSaAisErrorT.SA_AIS_ERR_TRY_AGAIN:
-        if one_sec_sleeps == TRYAGAIN_CNT:
-            break
-        time.sleep(1)
-        one_sec_sleeps += 1
-        err = saImmOm.saImmOmAccessorGet_2(ACCESSOR_HANDLE,
-                                           SaNameT(object_name),
-                                           attrib_names, attributes)
-
-    if err == eSaAisErrorT.SA_AIS_ERR_NOT_EXIST:
-        return None
-
-    if err != eSaAisErrorT.SA_AIS_OK:
-        raise SafException(err,
-                           "saImmOmInitialize: %s" % eSaAisErrorT.whatis(err))
+    try:
+        err = saImmOmAccessorGet_2(ACCESSOR_HANDLE,
+                                   SaNameT(object_name),
+                                   attrib_names, attributes)
+    except SafException as err:
+        if err.value == eSaAisErrorT.SA_AIS_ERR_NOT_EXIST:
+            return None
+        else:
+            raise err
 
     attribs = {}
     attr_list = unmarshalNullArray(attributes)
@@ -147,13 +123,10 @@ def class_description_get(class_name):
 
     attr_defs = pointer(pointer(saImm.SaImmAttrDefinitionT_2()))
     category = saImm.SaImmClassCategoryT()
-    err = saImmOm.saImmOmClassDescriptionGet_2(HANDLE,
-                                               class_name,
-                                               category,
-                                               attr_defs)
-    if err != eSaAisErrorT.SA_AIS_OK:
-        raise SafException(err, "saImmOmClassDescriptionGet_2(%s)" %
-                           class_name)
+    err = saImmOmClassDescriptionGet_2(HANDLE,
+                                       class_name,
+                                       category,
+                                       attr_defs)
 
     return saAis.unmarshalNullArray(attr_defs)
 
@@ -162,23 +135,16 @@ def admin_op_invoke(dn, op_id, params=No
     ''' invokes admin op for dn '''
     owner_handle = saImmOm.SaImmAdminOwnerHandleT()
     owner_name = saImmOm.SaImmAdminOwnerNameT(os.getlogin())
-    err = saImmOm.saImmOmAdminOwnerInitialize(HANDLE,
-                                              owner_name,
-                                              saAis.eSaBoolT.SA_TRUE,
-                                              owner_handle)
-
-    if err != eSaAisErrorT.SA_AIS_OK:
-        print "saImmOmAdminOwnerInitialize: %s" % eSaAisErrorT.whatis(err)
-        raise SafException(err)
+    err = saImmOmAdminOwnerInitialize(HANDLE,
+                                      owner_name,
+                                      saAis.eSaBoolT.SA_TRUE,
+                                      owner_handle)
 
     idx = dn.rfind(",")
     parent_name = SaNameT(dn[idx+1:])
     object_names = [parent_name]
-    err = saImmOm.saImmOmAdminOwnerSet(owner_handle, object_names,
-                                       eSaImmScopeT.SA_IMM_SUBTREE)
-    if err != eSaAisErrorT.SA_AIS_OK:
-        print "saImmOmAdminOwnerInitialize: %s" % eSaAisErrorT.whatis(err)
-        raise SafException(err)
+    err = saImmOmAdminOwnerSet(owner_handle, object_names,
+                               eSaImmScopeT.SA_IMM_SUBTREE)
 
     if params is None:
         params = []
@@ -186,7 +152,7 @@ def admin_op_invoke(dn, op_id, params=No
     object_dn = SaNameT(dn)
     retval = saAis.SaAisErrorT()
 
-    err = saImmOm.saImmOmAdminOperationInvoke_2(
+    err = saImmOmAdminOperationInvoke_2(
         owner_handle,
         object_dn,
         0,
@@ -195,35 +161,9 @@ def admin_op_invoke(dn, op_id, params=No
         retval,
         saAis.saAis.SA_TIME_ONE_SECOND * 10)
 
-    if err != eSaAisErrorT.SA_AIS_OK:
-        print "saImmOmAdminOperationInvoke_2: %s" % eSaAisErrorT.whatis(err)
-        raise SafException(err)
-
-    one_sec_sleeps = 0
-    while retval.value == eSaAisErrorT.SA_AIS_ERR_TRY_AGAIN:
-        if one_sec_sleeps == TRYAGAIN_CNT:
-            break
-        time.sleep(0.1)
-        one_sec_sleeps += 1
-        err = saImmOm.saImmOmAdminOperationInvoke_2(
-            owner_handle,
-            object_dn,
-            0,
-            op_id,
-            params,
-            retval,
-            saAis.saAis.SA_TIME_ONE_SECOND * 10)
-
-    if err != eSaAisErrorT.SA_AIS_OK:
-        print "saImmOmAdminOperationInvoke_2: %s" % eSaAisErrorT.whatis(err)
-        raise SafException(err)
-
     if retval.value != eSaAisErrorT.SA_AIS_OK:
         print "saImmOmAdminOperationInvoke_2: %s" % \
             eSaAisErrorT.whatis(retval.value)
         raise SafException(retval.value)
 
-    error = saImmOm.saImmOmAdminOwnerFinalize(owner_handle)
-    if error != eSaAisErrorT.SA_AIS_OK:
-        print "saImmOmAdminOwnerFinalize: %s" % eSaAisErrorT.whatis(error)
-        raise SafException(error)
+    error = saImmOmAdminOwnerFinalize(owner_handle)

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

Reply via email to