Overview

Diagram of the possible transactions between CM-Handle states

Notification details

Notification handling in code

The Event structure of the notification

Event schema

{

  "$schema": "https://json-schema.org/draft/2019-09/schema",
  "$id": "urn:cps:org.onap.ncmp.cmhandle.lcm-event:v1",

  "$ref": "#/definitions/LcmEvent",

  "definitions": {

    "Values": {
      "description": "Values that represents the state of a cmHandle",
      "type": "object",
      "properties": {
        "dataSyncEnabled":{
          "description": "Whether data sync enabled",
          "type": "boolean"
        },
        "cmHandleState": {
          "description": "State of cmHandle",
          "type": "string",
          "enum": ["ADVISED", "READY", "LOCKED", "DELETING", "DELETED"]
        },
        "cmHandleProperties": {
          "description": "cmHandle properties",
          "type": "object",
          "default": null,
          "existingJavaType": "java.util.List<java.util.Map<String,String>>",
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },

    "Event": {
      "description": "The Payload of an event",
      "type": "object",
      "properties": {
        "cmHandleId": {
          "description": "cmHandle id",
          "type": "string"
        },
        "oldValues": {
          "$ref": "#/definitions/Values"
        },
        "newValues": {
          "$ref": "#/definitions/Values"
        }
      },
      "required": [
        "cmHandleId"
      ],
      "additionalProperties": false
    },

    "LcmEvent": {
      "description": "The payload for LCM event",
      "type": "object",
      "javaType" : "org.onap.ncmp.cmhandle.event.lcm.LcmEvent",
      "properties": {
        "eventId": {
          "description": "The unique id identifying the event",
          "type": "string"
        },
        "eventCorrelationId": {
          "description": "The id identifying the event",
          "type": "string"
        },
        "eventTime": {
          "description": "The timestamp when original event occurred",
          "type": "string"
        },
        "eventSource": {
          "description": "The source of the event",
          "type": "string"
        },
        "eventType": {
          "description": "The type of the event",
          "type": "string"
        },
        "eventSchema": {
          "description": "The schema that this event adheres to",
          "type": "string"
        },
        "eventSchemaVersion": {
          "description": "The version of the schema that this event adheres to",
          "type": "string"
        },
        "event": {
          "$ref": "#/definitions/Event"
        }
      },
      "required": [
        "eventId",
        "eventCorrelationId",
        "eventTime",
        "eventSource",
        "eventType",
        "eventSchema",
        "eventSchemaVersion",
        "event"
      ],
      "additionalProperties": false
    }

  }
}


Event examples

Typical use cases which leads to state changes and trigger notification events

State changes after new cm Handle is registered

State changes after cm Handle update received

State changes during module-sync watchdog execution

State changes during data-sync watchdog execution

Source materials

Important links to related Spikes and Implementation proposals