References
- - CPS-1104Getting issue details... STATUS
- CPS-858 Define Notifications on CM Handle Add (Ready) & Delete
Issues & Decisions
# | Issue | Notes | Decisions |
---|---|---|---|
1 | Use "Generic" Detail-fields or or more specific fields | kieran mccarthy prefer to use specific terms like 'orginalState' instead of generic 'details' | |
2 | how many event schema's for different events will there be? | e.g. 1 schema for state change, 1 other schema for public properties? | Need to discuss with kieran mccarthy One single schema for all cmhandle LCM events : org.onap.ncmp:cmhandle-lcm-event:v1 |
3 | what is the best term to use for change events 'original', 'previous' or something else | Team found term 'original' confusing and prefers 'previous' e.g. previousState | use 'oldValues' and 'newValues'. See analysis below. |
4 | Should public properties be part of (same) structure as state | Team feels state and properties are very different and should not be combined into same structure This also depends on open issue #2 | Agreed at team meeting that all cmhandle metadata attributes to be managed in the same manner whether that is state or properties. |
5 | Should the schema version be separate from 'eventSchema'? | The event schema is defined like this : org.onap.ncmp:cmhandle-lcm-event:v1 where version is at the end of the schema string. It would be better to split the schema version into its own header field. e.g. ”eventSchema” : “org.onap.ncmp:cmhandle-lcm-event", | Toine Siebelink Can we split the schema version into its own field or is it a standard way to reference schema versions like the way CPS do it for their events (at least I think this is what they do?) like this : 'org.onap.ncmp:cmhandle-lcm-event:v1'
//priyank : Agreed to use the specified format in the notes in LCM Schema and also create a user story to handle the async schema on similar grounds. |
6 | Mentioning the mandatory and optional fields in our schemas. | Mandatory(M) and Optional(O) Schema Sample : { "eventId" : "00001", (M) "eventCorrelationId : "cmhandle-001" (M) "eventTime" : "2021-11-16T16:42:25-04:00", (M) "eventSource" : "org.onap.ncmp", (M) "eventType" : "org.onap.ncmp.cmhandle-lcm-event.create", (M) ”eventSchema” : “org.onap.ncmp:cmhandle-lcm-event", (M) "eventSchemaVersion" : "1.0" (M) "event": { “cmHandleId” : “cmhandle-001”,(M) "newValues" : { (O) “cmHandleState” : “READY”, (O) “dataSyncEnabled” : “TRUE”, (O) “cmhandleProperties” : [ (O) “someProperty-1” : “Initial property value 1”, (O) “someProperty-2” : “Initial property value 2” (O) ] } } } | kieran mccarthy Please correct if something is wrong. [kieran] This looks good - the given eventSource may change but the format is fine. |
7 | Agree on the topic name where the events need to be published. | Previously we configured the topic name as "ncmp-events" , but since now we are calling these events as LcmEvents , I was wondering if the topic should reflect the same. Toine Siebelink suggested "ncmp-lcm-events" as an alternative name. | kieran mccarthy Tony Finnerty your thoughts on this ? Priyank Maheshwari There is no reason to separate cm data events from these lcm events. They are all ncmp events and the consumer may determine the nature of the event from eventType/eventSchema. Sugegst to send them on ncmp-events topic. |
8 | How will the DELETING event look like ? It should be same as UPDATE event or some other handling is needed? | DELETING event { "eventId" : "00001", "eventCorrelationId : "cmhandle-001" "eventTime" : "2021-11-16T16:42:25-04:00", "eventSource" : "org.onap.ncmp", "eventType" : "org.onap.ncmp.cmhandle-lcm-event.update", ”eventSchema” : “org.onap.ncmp:cmhandle-lcm-event", "eventSchemaVersion" : "1.0" "event": { “cmHandleId” : “cmhandle-001” "oldValues" : { “cmHandleState” : “READY” } "newValues" : { “cmHandleState” : “DELETING”, } ] } } | //priyank It will behave the same as update event. we discussed and clarified. Priyank Maheshwari The cmhandle LOCKED state should also be reflected in the event on the left (but ONLY if cmhandle LOCKED support is already implemented) |
Overview
This page is for deciding the structure of the proposed "detail" section which needs to be introduced in the NcmpEvent payload.
Refer : CPS-858 Define Notifications on CM Handle Add (Ready) & Delete #8
Purpose : Additional field(s) to store information about the previous state.
5 Comments
kieran mccarthy
Hi Priyank Maheshwari,
Perhaps something like this can accommodate future additions to the event?
It really depends on what we want from "detail" - should not use that tag by the way as it adds little value to indicate the contents of the node.
We can review/discuss in an meeting when it suits.
{
"eventId" : "00001",
"eventCorrelationId : "cmhandle-001",
"eventTime" : "2021-11-16T16:42:25-04:00",
"eventSource" : "org.onap.ncmp",
"eventType" : "org.onap.ncmp.cmhandle-lcm-event",
”eventSchema” : “org.onap.ncmp:cmhandle-lcm-event:v1",
"event": {
"cmHandleId" : "cmhandle-001",
“cmHandleState” : “READY”,
“cmhandle-properties” : [
{“public-property-name-1” : “public-property-value-1”},
{“public-property-name-2” : “public-property-value-2”}
]
"originalState" : {
“cmHandleState” : “ADVISED”,
“cmhandle-properties” : [ # greyed out to indicate it may be added in the future
{“public-property-name-1” : “public-property--original-value-1”},
{“public-property-name-2” : “public-property-original-value-2”}
]
}
}
}
kieran mccarthy
Updated the Create, Update and Delete event proposals under Proposed Events section
Priyank Maheshwari
Updated the proposed event(examples) with our latest discussion to keep separate eventSchema and eventSchemaVersion.
kieran mccarthy
Hi Priyank Maheshwari
FYI : Toine Siebelink Tony Finnerty
I see the in the LCM event schema defined in the recent code submit https://gerrit.onap.org/r/c/cps/+/129895/3/cps-ncmp-events/src/main/resources/schemas/lcm-event-schema-v1.json#18
the id is set to the following :
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "urn:cps:org.onap.ncmp.cmhandle.lcm-event:v1",
Perhaps we need to take a discussion on schemas and schema naming and versioning but I see the id is set to
"urn:cps:org.onap.ncmp.cmhandle.lcm-event:v1". I see the version is included in the id. We agreed to seperate the schema version from the schema name.
should it be part of the id in this case?
Best Regards
Kieran
Priyank Maheshwari
kieran mccarthy
The below $schema and $id that you pointed out is something internal information for the plugin ( jsonschema2pojo-maven-plugin ) that we use to generate java classes from json schema.
The actual eventSchema and eventSchemaVersion will be something coming from the code as we agreed. (See line#80 and #84 of the schema)
eventSchema : org.onap.ncmp:cmhandle-lcm-event
eventSchemaVersion: v1