Ack from me. Not tested. /AndersBj
-----Original Message----- From: Johan Mårtensson O Sent: den 10 juli 2015 15:33 To: Hans Nordebäck; Anders Björnerstedt; [email protected]; Hung Nguyen D Cc: [email protected] 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
