Hi Johan,
Ack from me.
Tested the patch.
Best Regards,
Hung Nguyen
DEK Technologies
------------------------------------------------------------------------
*From:* Johan Mårtensson O
*Sent:* Friday, July 10, 2015 8:33PM
*To:* Hans Nordeback, Anders Bjornerstedt, Mathivanan Naickan, Hung Nguyen
*Cc:* Opensaf-devel
*Subject:* [PATCH 1 of 1] pyosaf: Fix broken marshalling in
saImmOiRtObjectUpdate_2 in saImmOi.py [#1411]
python/pyosaf/saImmOi.py | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
Fix the broken marshalling of attribute modifications in
saImmOiRtObjectUpdate_2 in saImmOi.py. This fix can be verified by copy-paste
of the code below into a Python shell:
from pyosaf.saAis import SaVersionT
from pyosaf.saImmOi import SaImmOiImplementerNameT
from pyosaf.saImmOi import saImmOiImplementerSet
from pyosaf.saImm import SaImmClassNameT
from pyosaf.saImm import eSaImmValueTypeT
from pyosaf.saImm import SaImmAttrModificationT_2
from pyosaf.saImm import eSaImmAttrModificationTypeT
from pyosaf.saImm import SaImmAttrValuesT_2
from pyosaf.saImm import SaImmAttrNameT
from pyosaf.utils.immom.ccb import marshal_c_array
from pyosaf.saImmOi import SaImmOiHandleT
from pyosaf.saImmOi import saImmOiInitialize_2
from pyosaf.saImmOi import saImmOiRtObjectUpdate_2
from pyosaf.saAis import SaNameT
version = SaVersionT('A', 2, 11)
HANDLE = SaImmOiHandleT()
err = saImmOiInitialize_2(HANDLE, None, version)
impl_name = SaImmOiImplementerNameT('some_impl')
err = saImmOiImplementerSet(HANDLE, impl_name)
c_class_name = SaImmClassNameT('AnyClass')
attr_mods = []
attributes = {'a' : 'value'}
attr_type = eSaImmValueTypeT.SA_IMM_ATTR_SASTRINGT
c_attr_mod = SaImmAttrModificationT_2()
c_attr_mod.modType = eSaImmAttrModificationTypeT.SA_IMM_ATTR_VALUES_REPLACE
c_attr_mod.modAttr = SaImmAttrValuesT_2()
c_attr_mod.modAttr.attrName = SaImmAttrNameT('anyAttribute')
c_attr_mod.modAttr.attrValueType = attr_type
c_attr_mod.modAttr.attrValuesNumber = 1
c_attr_mod.modAttr.attrValues = marshal_c_array(attr_type, ['sdf'])
attr_mods.append(c_attr_mod)
err = saImmOiRtObjectUpdate_2(HANDLE, SaNameT('anyObject=2'), attr_mods)
diff --git a/python/pyosaf/saImmOi.py b/python/pyosaf/saImmOi.py
--- a/python/pyosaf/saImmOi.py
+++ b/python/pyosaf/saImmOi.py
@@ -338,16 +338,16 @@ def saImmOiRtObjectUpdate_2(immOiHandle,
SaAisErrorT
"""
-
+ c_attr_mods = marshalNullArray(attrMods)
oidll.saImmOiRtObjectUpdate_2.argtypes = [SaImmOiHandleT,
POINTER(SaNameT),
-
POINTER(SaImmAttrModificationT_2)]
+
POINTER(POINTER(SaImmAttrModificationT_2))]
oidll.saImmOiRtObjectUpdate_2.restype = SaAisErrorT
return oidll.saImmOiRtObjectUpdate_2(immOiHandle,
BYREF(objectName),
- BYREF(attrMods))
+ c_attr_mods)
def saImmOiAdminOperationResult(immOiHandle, invocation, result):
"""Respond to IMM with result of saImmOiAdminOperationCallback()
------------------------------------------------------------------------------
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