Versions Compared

Key

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

...

This CL story is specified here as inter domain link restoration process. It is considered as an extension of MDONS use case from ONAP Frankfurt release.

...

Code Block
languagetext
titleTAPI APIs
collapsetrue


DCAE

Data Collection Diagram

Option 1 - RCC/VES Mapper

Data Collection Diagram

If the notification data is received from domain controller in non-VES format, such as, TAPI, and/or other JSON format, RCC is the data collection micro-service and VES Mapper micro-service is needed to convert the alarm notification into VES format.

RestConf Collector (RCC)

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.

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyDCAEGEN2-2293

Alarm Notification
  • TAPI Alarm Notification[TAPI 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

...

  • 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
collapsetrue

Option 2 - VES Colloctor

In case the domain controller acts like a VES client that can deliver the notification data in VES format,  VES collector micro-service is needed and VES mapper could be skipped in the data collection flow in MDONS closed instance.

...

Code Block
languagetext
titleAlarm Correlation/Analysis Rule
collapsetrue
package org.onap.holmes.mdonsPnf;
 
dialect "java"
import org.onap.holmes.common.api.stat.VesAlarm;
import org.onap.holmes.common.api.stat.AlarmAdditionalField;
import org.onap.holmes.common.aai.AaiQueryMdons;
import org.onap.holmes.common.exception.CorrelationException;
import org.onap.holmes.common.dmaap.entity.PolicyMsg;
import org.onap.holmes.common.dmaap.DmaapService;
import org.onap.holmes.common.utils.DroolsLog;
import org.onap.holmes.common.dropwizard.ioc.utils.ServiceLocatorHolder;
import comorg.alibabaonap.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;holmes.common.dmaap.store.UniqueRequestIdCache;
 
 
 
import java.util.List;
import java.util.Map;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.UUID;
      
function Map<String, String> processAlarm(String sourceId) {
    AaiQueryMdonsAaiQueryMdons mdons = AaiQueryMdons.newInstance();
    DroolsLogDroolsLog.printInfo("Alarm pnf id " + sourceId);
    StringString pnfName = mdons.getPnfNameFromPnfId(sourceId);
    DroolsLogDroolsLog.printInfo("Pnf name from AAI" + pnfName);
    mdonsmdons.updatePnfOperationalStatus(pnfName, "down");
    Map<StringMap<String, String> accessMap = mdons.processPnf(pnfName);
    DroolsLogDroolsLog.printInfo("Access List from AAI" + accessMap.toString());
    mdonsmdons.updateLinksForAccessService(accessMap);
    returnreturn accessMap;
}
 
function void processAlarmCleared(String sourceId) {
    AaiQueryMdonsAaiQueryMdons mdons = AaiQueryMdons.newInstance();
    DroolsLogDroolsLog.printInfo("Alarm pnf id " + sourceId);
    StringString pnfName = mdons.getPnfNameFromPnfId(sourceId);
    DroolsLogDroolsLog.printInfo("Pnf name from AAI" + pnfName);
    mdonsmdons.updatePnfOperationalStatus(pnfName, "up");
}
 
function PolicyMsg createPolicyMsg(VesAlarm alarm, String serviceInstanceId, String serviceName) {
    PolicyMsgPolicyMsg m = new PolicyMsg();
    mm.setPolicyVersion("1.0.0");
    mm.setVersion("0.0.1");
    mm.setPolicyName("mdons");
    mm.setPolicyScope("service=OTNService,type=SampleType,closedLoopControlName=ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b");
    mm.setClosedLoopControlName("ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b");
    mm.setRequestID(UUID.randomUUID().toString());
    mm.setClosedLoopAlarmStart(alarm.getStartEpochMicrosec());
    mm.setClosedLoopAlarmEnd(alarm.getLastEpochMicrosec());
    mm.setTarget("vserver.vserver-name");
    mm.setAai(getAaiObjectPolicy(serviceName, serviceInstanceId));
     
    DmaapService.alarmUniqueRequestID 
ServiceLocatorHolder.getLocator().getService(UniqueRequestIdCache.class).put(alarm.getEventId(), m.getRequestID());
    returnreturn m;
    }
      
function Map<String, Object> getAaiObjectPolicy(String serviceName, String serviceInstanceId){
    Map<StringMap<String, Object> aaiMap = new HashMap<String, Object>();
    aaiMapaaiMap.put("service-name", serviceName);
    aaiMapaaiMap.put("request-id" , serviceInstanceId);
    aaiMapaaiMap.put("service-type" , "MDONS_OTN");
    returnreturn aaiMap;
}   
      
rule "Process Alarms MSA"
    nono-loop true
    saliencesalience 200
    whenwhen
        $a$a: VesAlarm(sourceId.contains("OWBSPDRNE"), 
                        rootFlagrootFlag != 1, eventSeverity.equals("MAJOR"))       
    thenthen
        DroolsLogDroolsLog.printInfo("MSA Alarm: ID for alarm raised=" + $a.getEventId() + ", Event Name=" + $a.getSourceId());
        Map<StringMap<String, String> map = processAlarm($a.getSourceId() + "-XPDR1");
        forfor(Map.Entry<String,String> entry : map.entrySet()){
            PolicyMsgPolicyMsg msg = createPolicyMsg($a, entry.getKey(), entry.getValue());
            DmaapServiceDmaapService dmaapService = ServiceLocatorHolder.getLocator().getService(DmaapService.class);
            dmaapServicedmaapService.publishPolicyMsg(msg, "unauthenticated.DCAE_Output_Event");
            DroolsLogDroolsLog.printInfo("Published to policy=" + msg.toString());
 
        }
        $a$a.setRootFlag(1);
 
end 
 
rule "Process Alarms TAPI"
    nono-loop true
    saliencesalience 200
    whenwhen
        $a$a: VesAlarm(eventId.contains("FW950074SDN"), 
                        rootFlagrootFlag != 1, eventSeverity.equals("MINOR"))       
    thenthen
        DroolsLogDroolsLog.printInfo("TAPI Alarm: ID for alarm raised=" + $a.getEventId() + ", Event Name=" + $a.getSourceId());
        Map<StringMap<String, String> map = processAlarm($a.getEventId());
        forfor(Map.Entry<String,String> entry : map.entrySet()){
            PolicyMsgPolicyMsg msg = createPolicyMsg($a, entry.getKey(), entry.getValue());
            DmaapServiceDmaapService dmaapService = ServiceLocatorHolder.getLocator().getService(DmaapService.class);
            dmaapServicedmaapService.publishPolicyMsg(msg, "unauthenticated.DCAE_Output_Event");
            DroolsLogDroolsLog.printInfo("Published to policy=" + msg.toString());
 
        }
        $a$a.setRootFlag(1);
 
end 
 
rule "Process Alarms cleared MSA"
    nono-loop true
    saliencesalience 200
    whenwhen
        $a$a: VesAlarm(sourceId.contains("OWBSPDRNE"), 
                        rootFlagrootFlag != 1, eventSeverity.equals("NORMAL"))  
    thenthen
        DroolsLogDroolsLog.printInfo("MSA Alarm: ID for Alarm cleared =" + $a.getEventId() + ", Event Name=" + $a.getSourceId());
        processAlarmClearedprocessAlarmCleared($a.getSourceId() + "-XPDR1");
        $a$a.setRootFlag(1);
 
end 
 
rule "Process Alarms cleared TAPI"
    nono-loop true
    saliencesalience 200
    whenwhen
        $a$a: VesAlarm(eventId.contains("FW950074SDN"), 
                        rootFlagrootFlag != 1, eventSeverity.equals("NORMAL"))      
    thenthen
        DroolsLogDroolsLog.printInfo("TAPI Alarm: ID for Alarm cleared =" + $a.getEventId() + ", Event Name=" + $a.getSourceId());
        processAlarmClearedprocessAlarmCleared($a.getEventId());
        $a$a.setRootFlag(1);
 
end 



Upon receiving NNI up notification - update the status of the NNI in AAI.

...

Policy Tosca Json
Code Block
titleApexMDONSToscaPloicyApexMDONSToscaPolicy.json
collapsetrue

{
  "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
  "topology_template": {
    "policies": [
      {
        "onap.policies.native.apex.MDONS": {
          "type": "onap.policies.native.Apex",
          "type_version": "1.0.0",
          "name": "onap.policies.native.apex.MDONS",
          "version": "1.0.0",
          "properties": {
            "engineServiceParameters": {
              "name": "MDONSApexEngine",
              "version": "0.0.1",
              "id": 45,
              "instanceCount": 1,
              "deploymentPort": 12561,
              "engineParameters": {
                "executorParameters": {
                  "MVEL": {
                    "parameterClassName": "org.onap.policy.apex.plugins.executor.mvel.MvelExecutorParameters"
                  },
                  "JAVASCRIPT": {
                    "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters"
                  }
                },
                "contextParameters": {
                  "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters",
                  "schemaParameters": {
                    "Avro": {
                      "parameterClassName": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters"
                    },
                    "Java": {
                      "parameterClassName": "org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters",
                      "jsonAdapters": {
                        "Instant": {
                          "adaptedClass": "java.time.Instant",
                          "adaptorClass": "org.onap.policy.controlloop.util.Serialization$GsonInstantAdapter"
                        }
                      }
                    }
                  }
                }
              },
              "policy_type_impl": {
                "apexPolicyModel": {
                  "key": {
                    "name": "ApexMDONSPolicy",
                    "version": "0.0.1"
                  },
                  "keyInformation": {
                    "key": {
                      "name": "ApexMDONSPolicy_KeyInfo",
                      "version": "0.0.1"
                    },
                    "keyInfoMap": {
                      "entry": [
                        {
                          "key": {
                            "name": "ApexMDONSPolicy",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "ApexMDONSPolicy",
                              "version": "0.0.1"
                            },
                            "UUID": "10bde69d-ec18-3588-8d3a-466ffffc171d",
                            "description": "Generated description for concept referred to by key \"ApexMDONSPolicy:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "ApexMDONSPolicy_Events",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "ApexMDONSPolicy_Events",
                              "version": "0.0.1"
                            },
                            "UUID": "11878f1e-c494-3a47-9d3b-82546509bd27",
                            "description": "Generated description for concept referred to by key \"ApexMDONSPolicy_Events:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "ApexMDONSPolicy_KeyInfo",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "ApexMDONSPolicy_KeyInfo",
                              "version": "0.0.1"
                            },
                            "UUID": "27aa4d87-3bb9-398a-ac0c-18a42dde984d",
                            "description": "Generated description for concept referred to by key \"ApexMDONSPolicy_KeyInfo:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "ApexMDONSPolicy_Policies",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "ApexMDONSPolicy_Policies",
                              "version": "0.0.1"
                            },
                            "UUID": "29c20a92-695a-3d0d-bd4c-477b9e89f442",
                            "description": "Generated description for concept referred to by key \"ApexMDONSPolicy_Policies:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "ApexMDONSPolicy_Schemas",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "ApexMDONSPolicy_Schemas",
                              "version": "0.0.1"
                            },
                            "UUID": "df5e3e94-8581-375c-ae7c-53836351db1d",
                            "description": "Generated description for concept referred to by key \"ApexMDONSPolicy_Schemas:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "ApexMDONSPolicy_Tasks",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "ApexMDONSPolicy_Tasks",
                              "version": "0.0.1"
                            },
                            "UUID": "8b6d3c45-73f6-3337-886f-31105e11868a",
                            "description": "Generated description for concept referred to by key \"ApexMDONSPolicy_Tasks:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b",
                              "version": "0.0.1"
                            },
                            "UUID": "e1cbb2de-320d-31d5-91c5-1dc3e5434a64",
                            "description": "Generated description for concept referred to by key \"ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "CreateEventPolicy",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "CreateEventPolicy",
                              "version": "0.0.1"
                            },
                            "UUID": "0105451b-d7b5-3bab-99cb-afdd29c02d98",
                            "description": "Generated description for concept referred to by key \"CreateEventPolicy:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "CreateSDNCRequestPayloadTask",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "CreateSDNCRequestPayloadTask",
                              "version": "0.0.1"
                            },
                            "UUID": "8f2c3cbb-a190-3783-96c4-1ebce78d1fa4",
                            "description": "Generated description for concept referred to by key \"CreateSDNCRequestPayloadTask:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "SDNCInput",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "SDNCInput",
                              "version": "0.0.1"
                            },
                            "UUID": "1a7709ce-55fe-340a-90f9-dbb73a5cbcbf",
                            "description": "Generated description for concept referred to by key \"SDNCInput:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "SDNCRequestEvent",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "SDNCRequestEvent",
                              "version": "0.0.1"
                            },
                            "UUID": "ae1d3c7c-37e0-30d9-8af8-1a7ae8407c86",
                            "description": "Generated description for concept referred to by key \"SDNCRequestEvent:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "SimpleIntType",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "SimpleIntType",
                              "version": "0.0.1"
                            },
                            "UUID": "153791fd-ae0a-36a7-88a5-309a7936415d",
                            "description": "Generated description for concept referred to by key \"SimpleIntType:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "SimpleStringType",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "SimpleStringType",
                              "version": "0.0.1"
                            },
                            "UUID": "8a4957cf-9493-3a76-8c22-a208e23259af",
                            "description": "Generated description for concept referred to by key \"SimpleStringType:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "UUIDType",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "UUIDType",
                              "version": "0.0.1"
                            },
                            "UUID": "6a8cc68e-dfc8-3403-9c6d-071c886b319c",
                            "description": "Generated description for concept referred to by key \"UUIDType:0.0.1\""
                          }
                        },
                        {
                          "key": {
                            "name": "VirtualControlLoopEvent",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "VirtualControlLoopEvent",
                              "version": "0.0.1"
                            },
                            "UUID": "600699f3-da4e-3d91-846c-c79953487679",
                            "description": "Generated description for concept referred to by key \"VirtualControlLoopEvent:0.0.1\""
                          }
                        }
                      ]
                    }
                  },
                  "policies": {
                    "key": {
                      "name": "ApexMDONSPolicy_Policies",
                      "version": "0.0.1"
                    },
                    "policyMap": {
                      "entry": [
                        {
                          "key": {
                            "name": "CreateEventPolicy",
                            "version": "0.0.1"
                          },
                          "value": {
                            "policyKey": {
                              "name": "CreateEventPolicy",
                              "version": "0.0.1"
                            },
                            "template": "Freestyle",
                            "state": {
                              "entry": [
                                {
                                  "key": "CreateService",
                                  "value": {
                                    "stateKey": {
                                      "parentKeyName": "CreateEventPolicy",
                                      "parentKeyVersion": "0.0.1",
                                      "parentLocalName": "NULL",
                                      "localName": "CreateService"
                                    },
                                    "trigger": {
                                      "name": "ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b",
                                      "version": "0.0.1"
                                    },
                                    "stateOutputs": {
                                      "entry": [
                                        {
                                          "key": "SDNCRequestOutput",
                                          "value": {
                                            "key": {
                                              "parentKeyName": "CreateEventPolicy",
                                              "parentKeyVersion": "0.0.1",
                                              "parentLocalName": "CreateService",
                                              "localName": "SDNCRequestOutput"
                                            },
                                            "outgoingEvent": {
                                              "name": "SDNCRequestEvent",
                                              "version": "0.0.1"
                                            },
                                            "nextState": {
                                              "parentKeyName": "NULL",
                                              "parentKeyVersion": "0.0.0",
                                              "parentLocalName": "NULL",
                                              "localName": "NULL"
                                            }
                                          }
                                        }
                                      ]
                                    },
                                    "contextAlbumReference": [],
                                    "taskSelectionLogic": {
                                      "key": "NULL",
                                      "logicFlavour": "UNDEFINED",
                                      "logic": ""
                                    },
                                    "stateFinalizerLogicMap": {
                                      "entry": []
                                    },
                                    "defaultTask": {
                                      "name": "CreateSDNCRequestPayloadTask",
                                      "version": "0.0.1"
                                    },
                                    "taskReferences": {
                                      "entry": [
                                        {
                                          "key": {
                                            "name": "CreateSDNCRequestPayloadTask",
                                            "version": "0.0.1"
                                          },
                                          "value": {
                                            "key": {
                                              "parentKeyName": "CreateEventPolicy",
                                              "parentKeyVersion": "0.0.1",
                                              "parentLocalName": "CreateService",
                                              "localName": "CreateEventPolicy"
                                            },
                                            "outputType": "DIRECT",
                                            "output": {
                                              "parentKeyName": "CreateEventPolicy",
                                              "parentKeyVersion": "0.0.1",
                                              "parentLocalName": "CreateService",
                                              "localName": "SDNCRequestOutput"
                                            }
                                          }
                                        }
                                      ]
                                    }
                                  }
                                }
                              ]
                            },
                            "firstState": "CreateService"
                          }
                        }
                      ]
                    }
                  },
                  "tasks": {
                    "key": {
                      "name": "ApexMDONSPolicy_Tasks",
                      "version": "0.0.1"
                    },
                    "taskMap": {
                      "entry": [
                        {
                          "key": {
                            "name": "CreateSDNCRequestPayloadTask",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "CreateSDNCRequestPayloadTask",
                              "version": "0.0.1"
                            },
                            "inputFields": {
                              "entry": [
                                {
                                  "key": "AAI",
                                  "value": {
                                    "key": "AAI",
                                    "fieldSchemaKey": {
                                      "name": "VirtualControlLoopEvent",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                }
                              ]
                            },
                            "outputFields": {
                              "entry": [
                                {
                                  "key": "SDNCInput",
                                  "value": {
                                    "key": "SDNCInput",
                                    "fieldSchemaKey": {
                                      "name": "SDNCInput",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                }
                              ]
                            },
                            "taskParameters": {
                              "entry": []
                            },
                            "contextAlbumReference": [],
                            "taskLogic": {
                              "key": "TaskLogic",
                              "logicFlavour": "JAVASCRIPT",
                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2020 Fujitsu. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nvar SDNCInput = executor.subject.getOutFieldSchemaHelper(\"SDNCInput\").createNewInstance();\nvar input = executor.subject.getOutFieldSchemaHelper(\"SDNCInput\").createNewSubInstance(\"input\");\n \nvar clEvent = executor.inFields.get(\"AAI\");\nexecutor.logger.info(clEvent.toString());\n\ninput.put(\"module_DasH_name\",\"optical-service\");\ninput.put(\"rpc_DasH_name\",\"mdons-closed-loop\");\ninput.put(\"mode\",\"sync\");\n\nvar sliParam1 = executor.subject.getOutFieldSchemaHelper(\"SDNCInput\").createNewSubInstance(\"sli_DasH_parameter_record\");\nsliParam1.put(\"parameter_DasH_name\",\"service-name\");\nsliParam1.put(\"string_DasH_value\",clEvent.get(\"service_DasH_name\"));\n\nvar sliParam2 = executor.subject.getOutFieldSchemaHelper(\"SDNCInput\").createNewSubInstance(\"sli_DasH_parameter_record\");\nsliParam2.put(\"parameter_DasH_name\",\"access-service-id\");\nsliParam2.put(\"string_DasH_value\",clEvent.get(\"request_DasH_id\"));\n\nvar sliParamArray = [];\nsliParamArray.push(sliParam1);\nsliParamArray.push(sliParam2);\n\ninput.put(\"sli_DasH_parameter\",sliParamArray);\nSDNCInput.put(\"input\",input);\n\nexecutor.outFields.put(\"SDNCInput\", SDNCInput);\n\nexecutor.logger.info(SDNCInput.toString());\n\ntrue;"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "events": {
                    "key": {
                      "name": "ApexMDONSPolicy_Events",
                      "version": "0.0.1"
                    },
                    "eventMap": {
                      "entry": [
                        {
                          "key": {
                            "name": "ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "ControlLoop-MDONS-2179b738-fd36-4843-a71a-a8c24c70c66b",
                              "version": "0.0.1"
                            },
                            "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
                            "source": "DCAE",
                            "target": "APEX",
                            "parameter": {
                              "entry": [
                                {
                                  "key": "AAI",
                                  "value": {
                                    "key": "AAI",
                                    "fieldSchemaKey": {
                                      "name": "VirtualControlLoopEvent",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "closedLoopAlarmStart",
                                  "value": {
                                    "key": "closedLoopAlarmStart",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "closedLoopControlName",
                                  "value": {
                                    "key": "closedLoopControlName",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "closedLoopEventClient",
                                  "value": {
                                    "key": "closedLoopEventClient",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "closedLoopEventStatus",
                                  "value": {
                                    "key": "closedLoopEventStatus",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "from",
                                  "value": {
                                    "key": "from",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "policyName",
                                  "value": {
                                    "key": "policyName",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "policyScope",
                                  "value": {
                                    "key": "policyScope",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "policyVersion",
                                  "value": {
                                    "key": "policyVersion",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "requestID",
                                  "value": {
                                    "key": "requestID",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "target",
                                  "value": {
                                    "key": "target",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "target_type",
                                  "value": {
                                    "key": "target_type",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                },
                                {
                                  "key": "version",
                                  "value": {
                                    "key": "version",
                                    "fieldSchemaKey": {
                                      "name": "SimpleStringType",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                }
                              ]
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "SDNCRequestEvent",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "SDNCRequestEvent",
                              "version": "0.0.1"
                            },
                            "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
                            "source": "APEX",
                            "target": "SDNC",
                            "parameter": {
                              "entry": [
                                {
                                  "key": "SDNCInput",
                                  "value": {
                                    "key": "SDNCInput",
                                    "fieldSchemaKey": {
                                      "name": "SDNCInput",
                                      "version": "0.0.1"
                                    },
                                    "optional": false
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ]
                    }
                  },
                  "schemas": {
                    "key": {
                      "name": "ApexMDONSPolicy_Schemas",
                      "version": "0.0.1"
                    },
                    "schemas": {
                      "entry": [
                        {
                          "key": {
                            "name": "SDNCInput",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "SDNCInput",
                              "version": "0.0.1"
                            },
                            "schemaFlavour": "Avro",
                            "schemaDefinition": "{\n  \"name\": \"SDNCInput\",\n  \"type\": \"record\",\n  \"fields\": [\n    {\n      \"name\": \"input\",\n      \"type\": {\n      \"name\": \"input\",\n      \"type\": \"record\",\n      \"fields\": [\n        {\n          \"name\": \"module_DasH_name\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"rpc_DasH_name\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"mode\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"sli_DasH_parameter\",\n          \"type\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"name\": \"sli_DasH_parameter_record\",\n              \"type\": \"record\",\n              \"fields\": [\n                {\n                  \"name\": \"parameter_DasH_name\",\n                  \"type\": \"string\"\n                },\n                {\n                  \"name\": \"string_DasH_value\",\n                  \"type\": \"string\"\n                }\n              ]\n            }\n          }\n        }\n      ]\n    }\n    }\n  ]\n}"
                          }
                        },
                        {
                          "key": {
                            "name": "SimpleIntType",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "SimpleIntType",
                              "version": "0.0.1"
                            },
                            "schemaFlavour": "Java",
                            "schemaDefinition": "java.lang.Integer"
                          }
                        },
                        {
                          "key": {
                            "name": "SimpleStringType",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "SimpleStringType",
                              "version": "0.0.1"
                            },
                            "schemaFlavour": "Java",
                            "schemaDefinition": "java.lang.String"
                          }
                        },
                        {
                          "key": {
                            "name": "UUIDType",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "UUIDType",
                              "version": "0.0.1"
                            },
                            "schemaFlavour": "Java",
                            "schemaDefinition": "java.util.UUID"
                          }
                        },
                        {
                          "key": {
                            "name": "VirtualControlLoopEvent",
                            "version": "0.0.1"
                          },
                          "value": {
                            "key": {
                              "name": "VirtualControlLoopEvent",
                              "version": "0.0.1"
                            },
                            "schemaFlavour": "Avro",
                            "schemaDefinition": "{\n  \"name\": \"AAI\",\n  \"type\": \"record\",\n  \"fields\": [\n    {\n      \"name\": \"request_DasH_id\",\n      \"type\": \"string\"\n    },\n    {\n      \"name\": \"service_DasH_name\",\n      \"type\": \"string\"\n    },\n    {\n      \"name\": \"service_DasH_type\",\n      \"type\": \"string\"\n    }\n  ]\n}"
                          }
                        }
                      ]
                    }
                  }
                }
              }
            },
            "eventInputParameters": {
              "DCAEConsumer": {
                "carrierTechnologyParameters": {
                  "carrierTechnology": "RESTCLIENT",
                  "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
                  "parameters": {
                    "url": "https://message-router:3905/events/unauthenticated.DCAE_Output_Event/g1/c1?timeout=60000"
                  }
                },
                "eventProtocolParameters": {
                  "eventProtocol": "JSON",
                  "parameters": {
                    "nameAlias": "closedLoopControlName",
                    "versionAlias": "version",
                    "sourceAlias": "from"
                  }
                }
              }
            },
            "eventOutputParameters": {
              "logOutputter": {
                "carrierTechnologyParameters": {
                  "carrierTechnology": "FILE",
                  "parameters": {
                    "fileName": "outputevents.log"
                  }
                },
                "eventProtocolParameters": {
                  "eventProtocol": "JSON"
                }
              },
              "SDNCRequestProducer": {
                "carrierTechnologyParameters": {
                  "carrierTechnology": "RESTCLIENT",
                  "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
                  "parameters": {
                    "url": "http://sdnc-oam:8282/restconf/operations/SLI-API:execute-graph",
                    "httpMethod": "POST",
                    "httpHeaders": [
                      [
                        "Authorization",
                        "Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="
                      ],
                      [
                        "Accept",
                        "application/json"
                      ],
                      [
                        "Content-Type",
                        "application/json"
                      ]
                    ]
                  }
                },
                "eventProtocolParameters": {
                  "eventProtocol": "JSON",
                  "parameters": {
                    "pojoField": "SDNCInput"
                  }
                }
              }
            }
          }
        }
      }
    ]
  }
}

...

Ideally, DCAE micro-services are deployed and can be configured at Close Loop instance instantiation at runtime while Apex policy defined above being created and deployed as well.

References

Viewtracker report