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)

------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to