[omniORB] CosNotification.StructuredEvent printing

Anna Patil patilanna at hotmail.com
Mon Aug 31 11:41:21 UTC 2020


Thanks Duncan.

regards
Anna Patil

________________________________
From: Duncan Grisby <duncan at grisby.org>
Sent: Monday, August 17, 2020 8:03 PM
To: Anna Patil <patilanna at hotmail.com>; omniorb-list at omniorb-support.com <omniorb-list at omniorb-support.com>
Subject: Re: [omniORB] CosNotification.StructuredEvent printing

You have received a CosNotification::StructuredEvent struct, as defined in idl/COS/CosNotification.idl. It's a pretty complicated data structure, but you don't need to "parse" it -- it is already a collection of Python objects. You just need to access the members you want.

What are you actually trying to do?  Get particular data out of the structure, or dump the whole thing in a human-readable way?

StructuredEvent is defined as:


        struct StructuredEvent {

                EventHeader header;

                FilterableEventBody filterable_data;

                any remainder_of_body;

        };


So the Python object you have has corresponding members. e.g.


s_event         = # the value you received

header          = s_event.header

filterable_data = s_event.filterable_data


and then for example, filterable_data is defined as:


        struct Property {

                PropertyName name;

                PropertyValue value;

        };

        typedef sequence<Property> PropertySeq;


        // The following are the same, but serve different purposes.

        typedef PropertySeq FilterableEventBody;


So filterable_data is a list of Property structures:



for prop in filterable_data:

    name  = prop.name


    # value is an Any, so you can get its contents with value()

    value = prop.value.value()


    print(f"Property {name} = {value}")



You can access all the data in that sort of way.  Without more specific details about what you are trying to do, it's not possible to tell you exactly what code you might need.

Duncan.


On Sat, 2020-08-15 at 05:42 +0000, Anna Patil via omniORB-list wrote:
Hi All,


I am able to pull pull_structured_event() as below, however support required to parse these events.


Received event from nms
---------------------------------------------
CosNotification.StructuredEvent(header=CosNotification.EventHeader(fixed_header=CosNotification.FixedEventHeader(event_type=CosNotification.EventType(domain_name='tmf_mtnm', type_name='NT_ALARM'), event_name=''), variable_header=[]), filterable_data=[CosNotification.Property(name='notificationId', value=CORBA.Any(CORBA.TC_string, '2646127')), CosNotification.Property(name='objectName', value=CORBA.Any(CORBA.TypeCode("IDL:mtnm.tmforum.org/globaldefs/NVSList_T:1.0"), [globaldefs.NameAndStringValue_T(name='EMS', value='ECI/LightSoft_1'), globaldefs.NameAndStringValue_T(name='ManagedElement', value='ECI/EMS_STMS_40/9130'), globaldefs.NameAndStringValue_T(name='PTP', value='port-ub/0')])), CosNotification.Property(name='nativeEMSName', value=CORBA.Any(CORBA.TC_string, 'ge-ub/0.0')), CosNotification.Property(name='objectType', value=CORBA.Any(CORBA.TypeCode("IDL:mtnm.tmforum.org/notifications/ObjectType_T:1.0"), OT_PHYSICAL_TERMINATION_POINT)), CosNotification.Property(name='emsTime', value=CORBA.Any(CORBA.TC_string, '20200814132322.3')), CosNotification.Property(name='neTime', value=CORBA.Any(CORBA.TC_string, '20200814132319.470')), CosNotification.Property(name='isClearable', value=CORBA.Any(CORBA.TC_boolean, False)), CosNotification.Property(name='layerRate', value=CORBA.Any(CORBA.TC_short, 87)), CosNotification.Property(name='perceivedSeverity', value=CORBA.Any(CORBA.TypeCode("IDL:mtnm.tmforum.org/notifications/PerceivedSeverity_T:1.0"), PS_INDETERMINATE)), CosNotification.Property(name='nativeProbableCause', value=CORBA.Any(CORBA.TC_string, 'OSPF If Config Error')), CosNotification.Property(name='probableCause', value=CORBA.Any(CORBA.TC_string, 'UNIDENTIFIED')), CosNotification.Property(name='probableCauseQualifier', value=CORBA.Any(CORBA.TC_string, 'ospfIfConfigError@@ge-ub/0.0@@0')), CosNotification.Property(name='serviceAffecting', value=CORBA.Any(CORBA.TypeCode("IDL:mtnm.tmforum.org/notifications/ServiceAffecting_T:1.0"), SA_NON_SERVICE_AFFECTING)), CosNotification.Property(name='affectedTPList', value=CORBA.Any(CORBA.TypeCode("IDL:mtnm.tmforum.org/globaldefs/NamingAttributesList_T:1.0"), [])), CosNotification.Property(name='rcaiIndicator', value=CORBA.Any(CORBA.TC_boolean, False)), CosNotification.Property(name='additionalText', value=CORBA.Any(CORBA.TC_string, 'ospfIfConfigError: OSPF interface configuration error 7 received from ')), CosNotification.Property(name='additionalInfo', value=CORBA.Any(CORBA.TypeCode("IDL:mtnm.tmforum.org/globaldefs/NVSList_T:1.0"), [globaldefs.NameAndStringValue_T(name='LSNExt_NativeProbableCause', value='OSPF If Config Error'), globaldefs.NameAndStringValue_T(name='LSNExt_AckStatus', value='ALM_UNACKNOWLEDGED'), globaldefs.NameAndStringValue_T(name='LSNExt_MEName', value='Shapath_Bareja_8CH'), globaldefs.NameAndStringValue_T(name='LSNExt_GroupName', value='Apollo_Gujrat'), globaldefs.NameAndStringValue_T(name='LSNExt_ALCV', value='Unknown'), globaldefs.NameAndStringValue_T(name='LSNExt_AlarmUniqueString', value='EMS DN=ECI/EMS_STMS_40, EMS notifId=9183695, CAM ID=5')]))], remainder_of_body=CORBA.Any(CORBA.TC_null, None))

---------------------------------


would like to print like below
==========
Sample taken from https://docs.oracle.com/cd/E51879_01/doc.724/e59309/tmfin_nms_list_ref.htm#BABHIEAF


this is done in java, how can I parse in Python.


  name: notificationId value:29
           name: objectName value:
                           name: EMS value:ECI/LightSoft_1
                           name: ManagedElement value:LSN/EMS_XDM_121/1064
                           name: EquipmentHolder value:/rack=1/shelf=1/slot=1/sub_slot=4
           name: objectType value:OT_EQUIPMENT_HOLDER
           name: emsTime value:20140302141559.0
           name: neTime value:
           name: edgePointRelated value:FALSE
           name: remainder_of_body  value:
                   Name: attributeList value:
                           name: EMS value:ECI/LightSoft_1

                           name: ManagedElement value:LSN/EMS_XDM_121/1064
                           name: EquipmentHolder value:/rack=1/shelf=1/slot=1/sub_slot=4

                   name: userLabel value:I1 OTR1 4
                   name: nativeEMSName value:I1 OTR1 4
                   name: owner value:
                   name: alarmReportingIndicator value:TRUE
                   name: holderType value:sub_slot
                   name: expectedOrInstalledEquipment value:
                           name: EMS value:LSN/EMS_XDM_121

                           name: ManagedElement value:1064
                           name: EquipmentHolder value:/rack=1/shelf=1/slot=1/sub_slot=4

                           name: Equipment value:1
                   name: EquipmentObjectTypeList value:
                           NONE
                           ETR1
                           OTR1
                   name: holderState value:EXPECTED_AND_NOT_INSTALLED
                   name: additionalInfo value:
                           name: LSNExt_TimestampSignature value:20140302141559.8


regards
Anna Patil


_______________________________________________
omniORB-list mailing list
omniORB-list at omniorb-support.com<mailto:omniORB-list at omniorb-support.com>

https://www.omniorb-support.com/mailman/listinfo/omniorb-list


--
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.omniorb-support.com/pipermail/omniorb-list/attachments/20200831/641a2516/attachment-0001.html>


More information about the omniORB-list mailing list