Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In MDONS use case, prior to subscribing to topics to get event notifications. We manually register 'DCAE' in the domain controller (DC). Once registration is successful, system can subscribe to different topics of DC to get event notification. It is mandatory to pass 'notification URL' to DC so that when event occurs it posts notification to that URL.

Alarm Notification
  • TAPI Alarm Notification[TAPI format]
Code Block
titleTAPI Alarm Notification
collapsetrue
{
  "notification": [
    {
      "notification-type": "ALARM_EVENT",
      "target-object-name": [
        {
          "value-name": "node-id",
          "value": "S100-NODE2"
        },
        {
          "value-name": "entity-type",
          "value": "slot"
        },
        {
          "value-name": "entity-id",
          "value": "Slot-1/4"
        }
      ],
      "source-indicator": "RESOURCE_OPERATION",
      "uuid": "76234954-30a2-11e9-a785-dd6c51454c4e",
      "event-time-stamp": "20190208220426.3Z",
      "additional-text": "Equipment Removed:Type=PIS1-PG31",
      "alarm-info": {
        "service-affecting": "SERVICE_AFFECTING",
        "probable-cause": "al-types:equipmentRemoved",
        "is-transient": false,
        "pervceived-severity": "CRITICAL"
      },
      "additional-info": [
        {
          "value-name": "location",
          "value": "NEND"
        },
        {
          "value-name": "direction",
          "value": "NA"
        }
      ],
      "target-object-identifier": "S100-NODE2:slot:Slot-1/4",
      "name": [
        {
          "value-name": "alarm-id",
          "value": "S100-NODE2slotal-types:equipmentRemovedSlot-1/4NANEND"
        }
      ]
    },
     
     ...
     ... 
  ]
}

MSA
  • OpenRoadM Alarm Notification[VES format]

...

Since MSA notification is already in VES format, it could be posted directly on to DMAAP with relevant topic to be consumed by Hulmes directly. If RCC does not support such configuration, then a 1n1 attribute mirroring mapping xml file need to be designed to feed the data into the existing flow. Thus, VES Mapper plays the role of VES event validation as it is required functionality in VES collector.

MS Blueprint

This is the RCC blueprint which defines the initial configuration for alarm collection in MDONS close loop. RCC supports multiple DC connections.

Code Block
languagetext
titleconfiguration parameters
collapsetrue
rcc_policy:

rcc_policy: '[{"controller_name":"VirtuoraNC","controller_restapiUrl":"167.254.204.181:8443","controller_restapiUser":"admin","controller_restapiPassword":"admin","controller_accessTokenUrl":"/rest/plat/smapp/v1/oauth/token","controller_accessTokenFile":"./etc/access-token.json","controller_accessTokenMethod":"put","controller_subsMethod":"post","controller_subscriptionUrl":"/cxf/subscriptions","controller_disableSsl":"true","event_details":[{"event_name":"MSA_Alarm_Subscription","event_description":"AlarmEvent","event_sseventUrlEmbed":"false","event_sseventsField":"null","event_sseventsUrl":"null","event_subscriptionTemplate":"./etc/MSA_Alarm_Subscription_template.json","event_unSubscriptionTemplate":"./etc/MSA_Alarm_Unsubscription_template.json","modifyData": "true","modifyMethod": "modifyMSAEvent"]}]'

RCC_Output

...

Event

This event is the output to be posted on Dmaap by RCC and will be consumed by VES Mapper.

Code Block
languagetext
titleRCC Event
collapsetrue
{
 "tapi-notifyid":"example-mappingfile-id.x.1",

  "notification": [
    {
      "notification-type": "ALARM_EVENT",
      "target-object-name": [
        {
          "value-name": "node-id",
          "value": "S100-NODE2"
        },
        {
          "value-name": "entity-type",
          "value": "slot"
        },
        {
          "value-name": "entity-id",
          "value": "Slot-1/4"
        }
      ],
      "source-indicator": "RESOURCE_OPERATION",
      "uuid": "76234954-30a2-11e9-a785-dd6c51454c4e",
      "event-time-stamp": "20190208220426.3Z",
      "additional-text": "Equipment Removed:Type=PIS1-PG31",
      "alarm-info": {
        "service-affecting": "SERVICE_AFFECTING",
        "probable-cause": "al-types:equipmentRemoved",
        "is-transient": false,
        "pervceived-severity": "CRITICAL"
      },
      "additional-info": [
        {
          "value-name": "location",
          "value": "NEND"
        },
        {
          "value-name": "direction",
          "value": "NA"
        }
      ],
      "target-object-identifier": "S100-NODE2:slot:Slot-1/4",
      "name": [
        {
          "value-name": "alarm-id",
          "value": "S100-NODE2slotal-types:equipmentRemovedSlot-1/4NANEND"
        }
      ]
    },
     
     ...
     ... 
  ]
}

VES Mapper

Mapping File
  • TAPI Alarm to VES Mapping template
Code Block
languagetext
titleTapiAlarm2VES
collapsetrue
<?xml version="1.0" encoding="UTF-8"?><smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.4.xsd" xmlns:json="http://www.milyn.org/xsd/smooks/json-1.1.xsd">
  <json:reader rootName="vesevent" keyWhitspaceReplacement="-">
     <json:keyMap>
        <json:key from="date&time" to="date-and-time" />
     </json:keyMap>
  </json:reader>
  <jb:bean class="org.onap.dcaegen2.ves.domain.ves54.VesEvent" beanId="vesEvent" createOnElement="vesevent">
     <jb:wiring property="event" beanIdRef="event" />
  </jb:bean>
  <jb:bean class="org.onap.dcaegen2.ves.domain.ves54.Event" beanId="event" createOnElement="vesevent">
     <jb:wiring property="commonEventHeader" beanIdRef="commonEventHeader" />
     <jb:wiring property="faultFields" beanIdRef="faultFields" />
  </jb:bean>
  <jb:bean class="org.onap.dcaegen2.ves.domain.ves54.CommonEventHeader" beanId="commonEventHeader" createOnElement="vesevent">
     <jb:expression property="version">'1.0'</jb:expression>
     <jb:expression property="eventType">'fault_OWB-RDM-NE1_equipmentFault'</jb:expression>
     <jb:expression property="eventId" execOnElement="vesevent">'QWB-RDM-NE1 23'</jb:expression>
     <jb:expression property="functionalRole">'NA'</jb:expression>
     <jb:expression property="reportingEntityName">'emf171195Cluster'</jb:expression>
     <jb:expression property="reportingEntityId">'10.249.26.175'</jb:expression>
     <jb:expression property="domain">'fault'</jb:expression>
     <jb:value property="sequence" data="0" default="0" decoder="Long" />
     <jb:value property="lastEpochMicrosec" data="1487894721807000"/>
     <jb:value property="startEpochMicrosec" data="1487894721807000"/>
     <jb:expression property="priority">'Medium'</jb:expression>
     <jb:expression property="sourceName">'OWB-RDM-NE1'</jb:expression>
     <jb:expression property="sourceId">'OWB-RDM-NE1'</jb:expression>
  </jb:bean>
  <jb:bean class="org.onap.dcaegen2.ves.domain.ves54.FaultFields" beanId="faultFields" createOnElement="vesevent">
     <jb:value property="faultFieldsVersion" data="1.0" default="1.0" decoder="Double" />
     <jb:value property="alarmCondition" data="equipmentFault" />
     <jb:Value property="alarmInterfaceA" data="2"/>
     <jb:expression property="specificProblem">'equipmentFault'</jb:expression>
     <jb:expression property="vfStatus">'Active'</jb:expression>
     <jb:expression property="eventSeverity">'MAJOR'</jb:expression>
     <jb:expression property="eventSourcTeype">'Shelf'</jb:expression>
     <jb:wiring property="alarmAdditionalInformation" beanIdRef="alarmAdditionalInformationroot" />
  </jb:bean>
  <jb:bean class="java.util.ArrayList" beanId="alarmAdditionalInformationroot" createOnElement="vesevent">
     <jb:wiring beanIdRef="alarmAdditionalInformation" />
  </jb:bean>
  <jb:bean class="org.onap.dcaegen2.ves.domain.ves54.AlarmAdditionalInformation" beanId="alarmAdditionalInformation" createOnElement="varbinds/element">
     <jb:value property="name" data="direction" />
     <jb:value property="value" data="tx" />
     <jb:value property="name" data="location" />
     <jb:value property="value" data="NEND" />
     <jb:value property="name" data="type" />
     <jb:value property="value" data="equipment" />
     <jb:value property="name" data="circuit-id" />
     <jb:value property="value" data="" />
  </jb:bean></smooks-resource-list>
  • MSA Data are already in VES format.  If VES Collector supports Rest API notification mode, MDONS can use VES collector for OpenRoadM data collection from domain controller.
VES Event

Mapper output as an VES event is posted back to Dmaap.

Code Block
languagetext
titleConverted VES Event

HOLMES

Drools Rule - Alarm Correlation

...