# Copyright (C) 2021 Nordix Foundation. All rights reserved. # ======================================================================== # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============LICENSE_END================================================= # tosca_definitions_version: tosca_simple_yaml_1_1_0 data_types: onap.datatypes.ToscaConceptIdentifier: derived_from: tosca.datatypes.Root properties: name: type: string required: true version: type: string required: true onap.datatype.controlloop.Target: derived_from: tosca.datatypes.Root description: Definition for a entity in A&AI to perform a control loop operation on properties: targetType: type: string description: Category for the target type required: true constraints: - valid_values: - VNF - VM - VFMODULE - PNF entityIds: type: map description: | Map of values that identify the resource. If none are provided, it is assumed that the entity that generated the ONSET event will be the target. required: false metadata: clamp_possible_values: ClampExecution:CSAR_RESOURCES entry_schema: type: string onap.datatype.controlloop.Actor: derived_from: tosca.datatypes.Root description: An actor/operation/target definition properties: actor: type: string description: The actor performing the operation. required: true metadata: clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor operation: type: string description: The operation the actor is performing. metadata: clamp_possible_values: Dictionary:DefaultOperations,ClampExecution:CDS/operation required: true target: type: onap.datatype.controlloop.Target description: The resource the operation should be performed on. required: true payload: type: map description: Name/value pairs of payload information passed by Policy to the actor required: false metadata: clamp_possible_values: ClampExecution:CDS/payload entry_schema: type: string onap.datatype.controlloop.Operation: derived_from: tosca.datatypes.Root description: An operation supported by an actor properties: id: type: string description: Unique identifier for the operation required: true description: type: string description: A user-friendly description of the intent for the operation required: false operation: type: onap.datatype.controlloop.Actor description: The definition of the operation to be performed. required: true timeout: type: integer description: The amount of time for the actor to perform the operation. required: true retries: type: integer description: The number of retries the actor should attempt to perform the operation. required: true default: 0 success: type: string description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation. required: false default: final_success failure: type: string description: Points to the operation to invoke on Actor operation failure. required: false default: final_failure failure_timeout: type: string description: Points to the operation to invoke when the time out for the operation occurs. required: false default: final_failure_timeout failure_retries: type: string description: Points to the operation to invoke when the current operation has exceeded its max retries. required: false default: final_failure_retries failure_exception: type: string description: Points to the operation to invoke when the current operation causes an exception. required: false default: final_failure_exception failure_guard: type: string description: Points to the operation to invoke when the current operation is blocked due to guard policy enforcement. required: false default: final_failure_guard policy_types: onap.policies.controlloop.operational.Common: derived_from: tosca.policies.Root version: 1.0.0 name: onap.policies.controlloop.operational.Common description: | Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant Policy Types. This does NOT support the legacy Policy YAML policy type. properties: id: type: string description: The unique control loop id. required: true timeout: type: integer description: | Overall timeout for executing all the operations. This timeout should equal or exceed the total timeout for each operation listed. required: true abatement: type: boolean description: Whether an abatement event message will be expected for the control loop from DCAE. required: true default: false trigger: type: string description: Initial operation to execute upon receiving an Onset event message for the Control Loop. required: true operations: type: list description: List of operations to be performed when Control Loop is triggered. required: true entry_schema: type: onap.datatype.controlloop.Operation onap.policies.controlloop.operational.common.Apex: derived_from: onap.policies.controlloop.operational.Common type_version: 1.0.0 version: 1.0.0 name: onap.policies.controlloop.operational.common.Apex description: Operational policies for Apex PDP properties: engineServiceParameters: type: string description: The engine parameters like name, instanceCount, policy implementation, parameters etc. required: true eventInputParameters: type: string description: The event input parameters. required: true eventOutputParameters: type: string description: The event output parameters. required: true javaProperties: type: string description: Name/value pairs of properties to be set for APEX if needed. required: false node_types: org.onap.policy.clamp.controlloop.Participant: version: 1.0.1 derived_from: tosca.nodetypes.Root properties: provider: type: string requred: false org.onap.policy.clamp.controlloop.ControlLoopElement: version: 1.0.1 derived_from: tosca.nodetypes.Root properties: provider: type: string required: false metadata: common: true description: Specifies the organization that provides the control loop element participant_id: type: onap.datatypes.ToscaConceptIdentifier requred: true metadata: common: true participantType: type: onap.datatypes.ToscaConceptIdentifier required: true metadata: common: true description: The identity of the participant type that hosts this type of Control Loop Element startPhase: type: integer required: false constraints: - greater_or_equal: 0 metadata: common: true description: A value indicating the start phase in which this control loop element will be started, the first start phase is zero. Control Loop Elements are started in their start_phase order and stopped in reverse start phase order. Control Loop Elements with the same start phase are started and stopped simultaneously uninitializedToPassiveTimeout: type: integer required: false constraints: - greater_or_equal: 0 default: 60 metadata: common: true description: The maximum time in seconds to wait for a state chage from uninitialized to passive passiveToRunningTimeout: type: integer required: false constraints: - greater_or_equal: 0 default: 60 metadata: common: true description: The maximum time in seconds to wait for a state chage from passive to running runningToPassiveTimeout: type: integer required: false constraints: - greater_or_equal: 0 default: 60 metadata: common: true description: The maximum time in seconds to wait for a state chage from running to passive passiveToUninitializedTimeout: type: integer required: false constraints: - greater_or_equal: 0 default: 60 metadata: common: true description: The maximum time in seconds to wait for a state chage from passive to uninitialized org.onap.policy.clamp.controlloop.ControlLoop: version: 1.0.1 derived_from: tosca.nodetypes.Root properties: provider: type: string required: false metadata: common: true description: Specifies the organization that provides the control loop element elements: type: list required: true metadata: common: true entry_schema: type: onap.datatypes.ToscaConceptIdentifier description: Specifies a list of control loop element definitions that make up this control loop definition org.onap.policy.clamp.controlloop.PolicyControlLoopElement: version: 1.0.1 derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement properties: policy_type_id: type: onap.datatypes.ToscaConceptIdentifier requred: true policy_id: type: onap.datatypes.ToscaConceptIdentifier requred: false topology_template: node_templates: org.onap.domain.linkmonitor.LinkMonitorPolicyControlLoopElement: version: 1.2.3 type: org.onap.policy.clamp.controlloop.PolicyControlLoopElement type_version: 1.0.1 description: Control loop element for the Link Monitor properties: provider: Ericsson participant_id: name: org.onap.PM_Policy version: 1.0.0 participantType: name: org.onap.policy.controlloop.PolicyControlLoopParticipant version: 2.3.1 policy_type_id: name: onap.policies.controlloop.operational.common.Apex version: 1.0.0 policy_id: name: operational.apex.linkmonitor version: 1.0.0 pdpGroup: defaultGroup org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition0: version: 1.2.3 type: org.onap.policy.clamp.controlloop.ControlLoop type_version: 1.0.0 description: Control loop for Link Monitor properties: provider: Ericsson elements: - name: org.onap.domain.linkmonitor.LinkMonitorPolicyControlLoopElement version: 1.2.3 org.onap.policy.controlloop.PolicyControlLoopParticipant: version: 2.3.1 type: org.onap.policy.clamp.controlloop.Participant type_version: 1.0.1 description: Participant for policy framework properties: provider: ONAP policies: - operational.apex.linkmonitor: type: onap.policies.controlloop.operational.common.Apex type_version: 1.0.0 version: 1.0.0 metadata: policy-id: operational.apex.linkmonitor policy-version: 1.0.0 properties: engineServiceParameters: name: LinkMonitorApexEngine version: 0.0.1 id: 101 instanceCount: 1 deploymentPort: 12345 engineParameters: executorParameters: 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 taskParameters: - key: ORU-ODU-Map value: |- {"ERICSSON-O-RU-11220": "HCL-O-DU-1122", "ERICSSON-O-RU-11221": "HCL-O-DU-1122", "ERICSSON-O-RU-11222": "HCL-O-DU-1122", "ERICSSON-O-RU-11223": "HCL-O-DU-1122", "ERICSSON-O-RU-11224": "HCL-O-DU-1123", "ERICSSON-O-RU-11225": "HCL-O-DU-1123", "ERICSSON-O-RU-11226": "HCL-O-DU-1123", "ERICSSON-O-RU-11227": "HCL-O-DU-1124", "ERICSSON-O-RU-11228": "HCL-O-DU-1125", "ERICSSON-O-RU-11229": "HCL-O-DU-1125"} policy_type_impl: apexPolicyModel: key: name: LinkMonitorModel version: 0.0.1 keyInformation: key: name: LinkMonitorModel_KeyInfo version: 0.0.1 keyInfoMap: entry: - key: name: ApexMessageOutputEvent version: 0.0.1 value: key: name: ApexMessageOutputEvent version: 0.0.1 UUID: cca47d74-7754-4a61-b163-ca31f66b157b description: Generated description for concept referred to by key "ApexMessageOutputEvent:0.0.1" - key: name: CreateLinkClearedOutfieldsEvent version: 0.0.1 value: key: name: CreateLinkClearedOutfieldsEvent version: 0.0.1 UUID: a295d6a3-1b73-387e-abba-b41e9b608802 description: Generated description for concept referred to by key "CreateLinkClearedOutfieldsEvent:0.0.1" - key: name: CreateLinkClearedOutfieldsTask version: 0.0.1 value: key: name: CreateLinkClearedOutfieldsTask version: 0.0.1 UUID: fd594e88-411d-4a94-b2be-697b3a0d7adf description: This task creates the output fields when link failure is cleared. - key: name: CreateLinkFailureOutfieldsEvent version: 0.0.1 value: key: name: CreateLinkFailureOutfieldsEvent version: 0.0.1 UUID: 02be2b5d-45b7-3c54-ae54-97f2b5c30125 description: Generated description for concept referred to by key "CreateLinkFailureOutfieldsEvent:0.0.1" - key: name: CreateLinkFailureOutfieldsTask version: 0.0.1 value: key: name: CreateLinkFailureOutfieldsTask version: 0.0.1 UUID: ac3d9842-80af-4a98-951c-bd79a431c613 description: This task the output fields when link failure is detected. - key: name: LinkClearedTask version: 0.0.1 value: key: name: LinkClearedTask version: 0.0.1 UUID: eecfde90-896c-4343-8f9c-2603ced94e2d description: This task sends a message to the output when link failure is cleared. - key: name: LinkFailureInputEvent version: 0.0.1 value: key: name: LinkFailureInputEvent version: 0.0.1 UUID: c4500941-3f98-4080-a9cc-5b9753ed050b description: Generated description for concept referred to by key "LinkFailureInputEvent:0.0.1" - key: name: LinkFailureInputSchema version: 0.0.1 value: key: name: LinkFailureInputSchema version: 0.0.1 UUID: 3b3974fc-3012-3b02-9f33-c9d8eefe4dc1 description: Generated description for concept referred to by key "LinkFailureInputSchema:0.0.1" - key: name: LinkFailureOutputEvent version: 0.0.1 value: key: name: LinkFailureOutputEvent version: 0.0.1 UUID: 4f04aa98-e917-4f4a-882a-c75ba5a99374 description: Generated description for concept referred to by key "LinkFailureOutputEvent:0.0.1" - key: name: LinkFailureOutputSchema version: 0.0.1 value: key: name: LinkFailureOutputSchema version: 0.0.1 UUID: 2d1a7f6e-eb9a-3984-be1f-283d98111b84 description: Generated description for concept referred to by key "LinkFailureOutputSchema:0.0.1" - key: name: LinkFailureTask version: 0.0.1 value: key: name: LinkFailureTask version: 0.0.1 UUID: 3351b0f4-cf06-4fa2-8823-edf67bd30223 description: This task updates the config for O-RU when link failure is detected. - key: name: LinkMonitorModel version: 0.0.1 value: key: name: LinkMonitorModel version: 0.0.1 UUID: 540226fb-55ee-4f0e-a444-983a0494818e description: This is the Apex Policy Model for link monitoring. - key: name: LinkMonitorModel_Events version: 0.0.1 value: key: name: LinkMonitorModel_Events version: 0.0.1 UUID: 27ad3e7e-fe3b-3bd6-9081-718705c2bcea description: Generated description for concept referred to by key "LinkMonitorModel_Events:0.0.1" - key: name: LinkMonitorModel_KeyInfo version: 0.0.1 value: key: name: LinkMonitorModel_KeyInfo version: 0.0.1 UUID: ea0b5f58-eefd-358a-9660-840c640bf981 description: Generated description for concept referred to by key "LinkMonitorModel_KeyInfo:0.0.1" - key: name: LinkMonitorModel_Policies version: 0.0.1 value: key: name: LinkMonitorModel_Policies version: 0.0.1 UUID: ee9e0b0f-2b7d-3ab7-9a98-c5ec05ed823d description: Generated description for concept referred to by key "LinkMonitorModel_Policies:0.0.1" - key: name: LinkMonitorModel_Schemas version: 0.0.1 value: key: name: LinkMonitorModel_Schemas version: 0.0.1 UUID: fa5f9b8f-796c-3c70-84e9-5140c958c4bb description: Generated description for concept referred to by key "LinkMonitorModel_Schemas:0.0.1" - key: name: LinkMonitorModel_Tasks version: 0.0.1 value: key: name: LinkMonitorModel_Tasks version: 0.0.1 UUID: eec592f7-69d5-39a9-981a-e552f787ed01 description: Generated description for concept referred to by key "LinkMonitorModel_Tasks:0.0.1" - key: name: LinkMonitorPolicy version: 0.0.1 value: key: name: LinkMonitorPolicy version: 0.0.1 UUID: 6c5e410f-489a-46ff-964e-982ce6e8b6d0 description: Generated description for concept referred to by key "LinkMonitorPolicy:0.0.1" - key: name: MessageSchema version: 0.0.1 value: key: name: MessageSchema version: 0.0.1 UUID: ac4b34ac-39d6-3393-a267-8d5b84854018 description: A schema for messages from apex - key: name: NoPolicyDefinedTask version: 0.0.1 value: key: name: NoPolicyDefinedTask version: 0.0.1 UUID: d48b619e-d00d-4008-b884-02d76ea4350b description: This task sends a message to the output when an event is received for which no policy has been defined. - key: name: OduIdSchema version: 0.0.1 value: key: name: OduIdSchema version: 0.0.1 UUID: 50662174-a88b-3cbd-91bd-8e91b40b2660 description: A schema for O-DU-ID - key: name: OruIdSchema version: 0.0.1 value: key: name: OruIdSchema version: 0.0.1 UUID: 54daf32b-015f-39cd-8530-a1175c5553e9 description: A schema for O-RU-ID policies: key: name: LinkMonitorModel_Policies version: 0.0.1 policyMap: entry: - key: name: LinkMonitorPolicy version: 0.0.1 value: policyKey: name: LinkMonitorPolicy version: 0.0.1 template: Freestyle state: entry: - key: LinkClearedState value: stateKey: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: 'NULL' localName: LinkClearedState trigger: name: CreateLinkClearedOutfieldsEvent version: 0.0.1 stateOutputs: entry: - key: LinkClearedLogic_Output_Direct value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkClearedState localName: LinkClearedLogic_Output_Direct outgoingEvent: name: ApexMessageOutputEvent 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: LinkClearedTask version: 0.0.1 taskReferences: entry: - key: name: LinkClearedTask version: 0.0.1 value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkClearedState localName: LinkClearedTask outputType: DIRECT output: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkClearedState localName: LinkClearedLogic_Output_Direct - key: LinkFailureOrClearedState value: stateKey: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: 'NULL' localName: LinkFailureOrClearedState trigger: name: LinkFailureInputEvent version: 0.0.1 stateOutputs: entry: - key: CreateLinkClearedOutfieldsLogic_Output_Direct value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureOrClearedState localName: CreateLinkClearedOutfieldsLogic_Output_Direct outgoingEvent: name: CreateLinkClearedOutfieldsEvent version: 0.0.1 nextState: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: 'NULL' localName: LinkClearedState - key: CreateLinkFailureOutfieldsLogic_Output_Direct value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureOrClearedState localName: CreateLinkFailureOutfieldsLogic_Output_Direct outgoingEvent: name: CreateLinkFailureOutfieldsEvent version: 0.0.1 nextState: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: 'NULL' localName: LinkFailureState - key: NoPolicyDefinedLogic_Output_Direct value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureOrClearedState localName: NoPolicyDefinedLogic_Output_Direct outgoingEvent: name: ApexMessageOutputEvent version: 0.0.1 nextState: parentKeyName: 'NULL' parentKeyVersion: 0.0.0 parentLocalName: 'NULL' localName: 'NULL' contextAlbumReference: [] taskSelectionLogic: key: TaskSelectionLogic logicFlavour: JAVASCRIPT logic: |- /* * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ executor.logger.info("Task Selection Execution: '"+executor.subject.id+ "'. InputFields: '"+executor.inFields+"'"); var linkFailureInput = executor.inFields.get("LinkFailureInput"); var commonEventHeader = linkFailureInput.get("event").get("commonEventHeader"); var domain = commonEventHeader.get("domain"); taskFailure = executor.subject.getTaskKey("CreateLinkFailureOutfieldsTask"); taskCleared = executor.subject.getTaskKey("CreateLinkClearedOutfieldsTask"); taskDefault = executor.subject.getDefaultTaskKey(); if (domain == "fault") { var faultFields = linkFailureInput.get("event").get("faultFields"); var alarmCondition = faultFields.get("alarmCondition"); var eventSeverity = faultFields.get("eventSeverity"); if (alarmCondition == "28" && eventSeverity != "NORMAL") { taskFailure.copyTo(executor.selectedTask); } else if (alarmCondition == "28" && eventSeverity == "NORMAL") { taskCleared.copyTo(executor.selectedTask); } else { taskDefault.copyTo(executor.selectedTask); } } else { taskDefault.copyTo(executor.selectedTask); } true; stateFinalizerLogicMap: entry: [] defaultTask: name: NoPolicyDefinedTask version: 0.0.1 taskReferences: entry: - key: name: CreateLinkClearedOutfieldsTask version: 0.0.1 value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureOrClearedState localName: CreateLinkClearedOutfieldsTask outputType: DIRECT output: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureOrClearedState localName: CreateLinkClearedOutfieldsLogic_Output_Direct - key: name: CreateLinkFailureOutfieldsTask version: 0.0.1 value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureOrClearedState localName: CreateLinkFailureOutfieldsTask outputType: DIRECT output: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureOrClearedState localName: CreateLinkFailureOutfieldsLogic_Output_Direct - key: name: NoPolicyDefinedTask version: 0.0.1 value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureOrClearedState localName: NoPolicyDefinedTask outputType: DIRECT output: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureOrClearedState localName: NoPolicyDefinedLogic_Output_Direct - key: LinkFailureState value: stateKey: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: 'NULL' localName: LinkFailureState trigger: name: CreateLinkFailureOutfieldsEvent version: 0.0.1 stateOutputs: entry: - key: LinkFailureLogic_Output_Direct value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureState localName: LinkFailureLogic_Output_Direct outgoingEvent: name: LinkFailureOutputEvent 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: LinkFailureTask version: 0.0.1 taskReferences: entry: - key: name: LinkFailureTask version: 0.0.1 value: key: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureState localName: LinkFailureTask outputType: DIRECT output: parentKeyName: LinkMonitorPolicy parentKeyVersion: 0.0.1 parentLocalName: LinkFailureState localName: LinkFailureLogic_Output_Direct firstState: LinkFailureOrClearedState tasks: key: name: LinkMonitorModel_Tasks version: 0.0.1 taskMap: entry: - key: name: CreateLinkClearedOutfieldsTask version: 0.0.1 value: key: name: CreateLinkClearedOutfieldsTask version: 0.0.1 inputFields: entry: - key: LinkFailureInput value: key: LinkFailureInput fieldSchemaKey: name: LinkFailureInputSchema version: 0.0.1 optional: false outputFields: entry: - key: OruId value: key: OruId fieldSchemaKey: name: OruIdSchema version: 0.0.1 optional: false taskParameters: entry: [] contextAlbumReference: [] taskLogic: key: TaskLogic logicFlavour: JAVASCRIPT logic: |- /* * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ executor.logger.info("Task Execution: '"+executor.subject.id+"'. Input Fields: '"+executor.inFields+"'"); var linkFailureInput = executor.inFields.get("LinkFailureInput"); var oruId = linkFailureInput.get("event").get("commonEventHeader").get("sourceName"); executor.outFields.put("OruId", oruId); executor.logger.info(executor.outFields); true; - key: name: CreateLinkFailureOutfieldsTask version: 0.0.1 value: key: name: CreateLinkFailureOutfieldsTask version: 0.0.1 inputFields: entry: - key: LinkFailureInput value: key: LinkFailureInput fieldSchemaKey: name: LinkFailureInputSchema version: 0.0.1 optional: false outputFields: entry: - key: OduId value: key: OduId fieldSchemaKey: name: OduIdSchema version: 0.0.1 optional: false - key: OruId value: key: OruId fieldSchemaKey: name: OruIdSchema version: 0.0.1 optional: false taskParameters: entry: [] contextAlbumReference: [] taskLogic: key: TaskLogic logicFlavour: JAVASCRIPT logic: |- /* * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ executor.logger.info("Task Execution: '"+executor.subject.id+"'. Input Fields: '"+executor.inFields+"'"); var returnValue = true; var linkFailureInput = executor.inFields.get("LinkFailureInput"); var oruId = linkFailureInput.get("event").get("commonEventHeader").get("sourceName"); var oruOduMap = JSON.parse(executor.parameters.get("ORU-ODU-Map")); if (oruId in oruOduMap) { var oduId = oruOduMap[oruId]; executor.outFields.put("OruId", oruId); executor.outFields.put("OduId", oduId); executor.logger.info(executor.outFields); } else { executor.message = "No O-RU found in the config with this ID: " + oruId; returnValue = false; } returnValue; - key: name: LinkClearedTask version: 0.0.1 value: key: name: LinkClearedTask version: 0.0.1 inputFields: entry: - key: OruId value: key: OruId fieldSchemaKey: name: OruIdSchema version: 0.0.1 optional: false outputFields: entry: - key: message value: key: message fieldSchemaKey: name: MessageSchema version: 0.0.1 optional: false taskParameters: entry: [] contextAlbumReference: [] taskLogic: key: TaskLogic logicFlavour: JAVASCRIPT logic: |- /* * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ executor.logger.info("Task Execution: '"+executor.subject.id+"'. Input Fields: '"+executor.inFields+"'"); var oruId = executor.inFields.get("OruId"); executor.outFields.put("message", "CLEARED link failure for O-RU: " + oruId); executor.logger.info(executor.outFields); true; - key: name: LinkFailureTask version: 0.0.1 value: key: name: LinkFailureTask version: 0.0.1 inputFields: entry: - key: OduId value: key: OduId fieldSchemaKey: name: OduIdSchema version: 0.0.1 optional: false - key: OruId value: key: OruId fieldSchemaKey: name: OruIdSchema version: 0.0.1 optional: false outputFields: entry: - key: LinkFailureOutput value: key: LinkFailureOutput fieldSchemaKey: name: LinkFailureOutputSchema version: 0.0.1 optional: false taskParameters: entry: [] contextAlbumReference: [] taskLogic: key: TaskLogic logicFlavour: JAVASCRIPT logic: |- /* * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ executor.logger.info("Task Execution: '"+executor.subject.id+"'. Input Fields: '"+executor.inFields+"'"); var linkFailureOutput = executor.subject.getOutFieldSchemaHelper("LinkFailureOutput").createNewInstance(); var oruId = executor.inFields.get("OruId"); var oduId = executor.inFields.get("OduId"); var unlockMessageArray = new java.util.ArrayList(); for (var i = 0; i < 1; i++) { unlockMessageArray.add({ "name" : oruId, "administrative_DasH_state" : "UNLOCKED" }); } linkFailureOutput.put("o_DasH_ran_DasH_sc_DasH_du_DasH_hello_DasH_world_ColoN_du_DasH_to_DasH_ru_DasH_connection", unlockMessageArray); executor.outFields.put("LinkFailureOutput", linkFailureOutput.toString()); executor.getExecutionProperties().setProperty("OduId", oduId); executor.getExecutionProperties().setProperty("OruId", oruId); executor.logger.info(executor.outFields); true; - key: name: NoPolicyDefinedTask version: 0.0.1 value: key: name: NoPolicyDefinedTask version: 0.0.1 inputFields: entry: - key: LinkFailureInput value: key: LinkFailureInput fieldSchemaKey: name: LinkFailureInputSchema version: 0.0.1 optional: false outputFields: entry: - key: message value: key: message fieldSchemaKey: name: MessageSchema version: 0.0.1 optional: false taskParameters: entry: [] contextAlbumReference: [] taskLogic: key: TaskLogic logicFlavour: JAVASCRIPT logic: |- /* * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ executor.logger.info("Task Execution: '"+executor.subject.id+"'. Input Fields: '"+executor.inFields+"'"); executor.outFields.put("message", "No policy defined for this event"); executor.logger.info(executor.outFields); true; events: key: name: LinkMonitorModel_Events version: 0.0.1 eventMap: entry: - key: name: ApexMessageOutputEvent version: 0.0.1 value: key: name: ApexMessageOutputEvent version: 0.0.1 nameSpace: org.onap.policy.apex.auth.clieditor source: APEX target: APEX parameter: entry: - key: message value: key: message fieldSchemaKey: name: MessageSchema version: 0.0.1 optional: false - key: name: CreateLinkClearedOutfieldsEvent version: 0.0.1 value: key: name: CreateLinkClearedOutfieldsEvent version: 0.0.1 nameSpace: org.onap.policy.apex.auth.clieditor source: APEX target: APEX parameter: entry: - key: OruId value: key: OruId fieldSchemaKey: name: OruIdSchema version: 0.0.1 optional: false - key: name: CreateLinkFailureOutfieldsEvent version: 0.0.1 value: key: name: CreateLinkFailureOutfieldsEvent version: 0.0.1 nameSpace: org.onap.policy.apex.auth.clieditor source: APEX target: APEX parameter: entry: - key: OduId value: key: OduId fieldSchemaKey: name: OduIdSchema version: 0.0.1 optional: false - key: OruId value: key: OruId fieldSchemaKey: name: OruIdSchema version: 0.0.1 optional: false - key: name: LinkFailureInputEvent version: 0.0.1 value: key: name: LinkFailureInputEvent version: 0.0.1 nameSpace: org.onap.policy.apex.auth.clieditor source: DMAAP target: APEX parameter: entry: - key: LinkFailureInput value: key: LinkFailureInput fieldSchemaKey: name: LinkFailureInputSchema version: 0.0.1 optional: false - key: name: LinkFailureOutputEvent version: 0.0.1 value: key: name: LinkFailureOutputEvent version: 0.0.1 nameSpace: org.onap.policy.apex.auth.clieditor source: APEX target: OAM parameter: entry: - key: LinkFailureOutput value: key: LinkFailureOutput fieldSchemaKey: name: LinkFailureOutputSchema version: 0.0.1 optional: false schemas: key: name: LinkMonitorModel_Schemas version: 0.0.1 schemas: entry: - key: name: LinkFailureInputSchema version: 0.0.1 value: key: name: LinkFailureInputSchema version: 0.0.1 schemaFlavour: Avro schemaDefinition: |- { "type": "record", "name": "Link_Failure_Input", "fields": [ { "name": "event", "type": { "type": "record", "name": "Event_Type", "fields": [ { "name": "commonEventHeader", "type": { "type": "record", "name": "Common_Event_Header_Type", "fields": [ { "name": "domain", "type": "string" }, { "name": "eventId", "type": "string" }, { "name": "eventName", "type": "string" }, { "name": "eventType", "type": "string" }, { "name": "sequence", "type": "int" }, { "name": "priority", "type": "string" }, { "name": "reportingEntityId", "type": "string" }, { "name": "reportingEntityName", "type": "string" }, { "name": "sourceId", "type": "string" }, { "name": "sourceName", "type": "string" }, { "name": "startEpochMicrosec", "type": "string" }, { "name": "lastEpochMicrosec", "type": "string" }, { "name": "nfNamingCode", "type": "string" }, { "name": "nfVendorName", "type": "string" }, { "name": "timeZoneOffset", "type": "string" }, { "name": "version", "type": "string" }, { "name": "vesEventListenerVersion", "type": "string" } ] } }, { "name": "faultFields", "type": { "type": "record", "name": "Fault_Fields_Type", "fields": [ { "name": "faultFieldsVersion", "type": "string" }, { "name": "alarmCondition", "type": "string" }, { "name": "alarmInterfaceA", "type": "string" }, { "name": "eventSourceType", "type": "string" }, { "name": "specificProblem", "type": "string" }, { "name": "eventSeverity", "type": "string" }, { "name": "vfStatus", "type": "string" }, { "name": "alarmAdditionalInformation", "type": { "type": "record", "name": "Alarm_Additional_Information_Type", "fields": [ { "name": "eventTime", "type": "string" }, { "name": "equipType", "type": "string" }, { "name": "vendor", "type": "string" }, { "name": "model", "type": "string" } ] } } ] } } ] } } ] } - key: name: LinkFailureOutputSchema version: 0.0.1 value: key: name: LinkFailureOutputSchema version: 0.0.1 schemaFlavour: Avro schemaDefinition: "{\n \"type\": \"record\",\n \"name\": \"Link_Failure_Output\",\n \"fields\": [\n {\n \"name\": \"o_DasH_ran_DasH_sc_DasH_du_DasH_hello_DasH_world_ColoN_du_DasH_to_DasH_ru_DasH_connection\",\n \ \"type\": {\n \t\"type\": \"array\",\n \ \t\"items\": {\n\t\t \"name\": \"Config_Change_Message\",\n \ \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n \ },\n\t\t\t{\n \"name\": \"administrative_DasH_state\",\n \"type\": \"string\"\n }\n ]\n \ }\n\t }\n }\n ]\n}" - key: name: MessageSchema version: 0.0.1 value: key: name: MessageSchema version: 0.0.1 schemaFlavour: Java schemaDefinition: java.lang.String - key: name: OduIdSchema version: 0.0.1 value: key: name: OduIdSchema version: 0.0.1 schemaFlavour: Java schemaDefinition: java.lang.String - key: name: OruIdSchema version: 0.0.1 value: key: name: OruIdSchema version: 0.0.1 schemaFlavour: Java schemaDefinition: java.lang.String eventOutputParameters: RestProducer: carrierTechnologyParameters: carrierTechnology: RESTCLIENT parameterClassName: org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters parameters: url: http://sdnr-sim:9990/rests/data/network-topology:network-topology/topology=topology-netconf/node={OduId}/yang-ext:mount/o-ran-sc-du-hello-world:network-function/du-to-ru-connection={OruId} httpMethod: PUT httpHeaders: - - Authorization - Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ== eventProtocolParameters: eventProtocol: JSON parameters: pojoField: LinkFailureOutput eventNameFilter: LinkFailureOutputEvent StdOutProducer: carrierTechnologyParameters: carrierTechnology: FILE parameters: standardIo: true eventProtocolParameters: eventProtocol: JSON parameters: pojoField: message eventNameFilter: ApexMessageOutputEvent eventInputParameters: DMaaPConsumer: carrierTechnologyParameters: carrierTechnology: RESTCLIENT parameterClassName: org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters parameters: url: http://onap-dmaap:3904/events/unauthenticated.SEC_FAULT_OUTPUT/users/link-monitor-nonrtric?timeout=15000&limit=100 eventProtocolParameters: eventProtocol: JSON parameters: versionAlias: version pojoField: LinkFailureInput eventName: LinkFailureInputEvent