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