This page describes how to create and run the control loops for the "Hello World" O-RU Fronthaul Recovery usecase. This can be done either in docker environment using docker-compose files (available in the nonrtric repo of OSC), or in kubernetes environment using the complete ONAP installation done via OOM. Moreover, the control loop for apex policy version of the usecase can be created using Policy participant, whereas the control loop for script version of the usecase can be created using Kubernetes participant (both participants available in policy/clamp repo of ONAP).
...
Use below credentials for the GUI:
username: demo@people.osaaf.org. password: demo123456!
Start-up screen of the Policy GUI
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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-11220": "O-DU-1122", "ERICSSON-O-RU-11221": "HCL-O-DU-1122", "ERICSSON-O-RU-11222": "O-DU-1122", "ERICSSON-O-RU-1122211223": "HCL-O-DU-1122", "ERICSSON-O-RU-11224": "O-DU-1123", "ERICSSON-O-RU-1122311225": "HCL-O-DU-11221123", "ERICSSON-O-RU-11226": "O-DU-1123", "ERICSSON-O-RU-1122411227": "HCL-O-DU-11231124", "ERICSSON-O-RU-11228": "O-DU-1125", "ERICSSON-O-RU-1122511229": "HCL-O-DU-11231125", } policy_type_impl: apexPolicyModel: "ERICSSON-O-RU-11226": "HCL-O-DU-1123", key: name: LinkMonitorModel version: 0.0.1 "ERICSSON-O-RU-11227": "HCL-O-DU-1124", keyInformation: key: name: LinkMonitorModel_KeyInfo "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({ "nameid" : oruId, :"rrm-pol-1", "administrativeradio_DasH_resource_DasH_management_DasH_policy_DasH_max_DasH_stateratio" :25, "UNLOCKED" }); "radio_DasH_resource_DasH_management_DasH_policy_DasH_members": } [ 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); "mobile_DasH_country_DasH_code":"310", executor.getExecutionProperties().setProperty("OruId", oruId); executor.logger.info(executor.outFields); "mobile_DasH_network_DasH_code":"150", true; - key: "slice_DasH_differentiator":1, name: NoPolicyDefinedTask version: 0.0."slice_DasH_service_DasH_type":1 value: } key: name: NoPolicyDefinedTask ], version: 0.0.1 "radio_DasH_resource_DasH_management_DasH_policy_DasH_min_DasH_ratio":15, inputFields: entry:"user_DasH_label":"rrm-pol-1", - key: LinkFailureInput "resource_DasH_type":"prb", value: "radio_DasH_resource_DasH_management_DasH_policy_DasH_dedicated_DasH_ratio":20, key: LinkFailureInput "administrative_DasH_state":"unlocked" fieldSchemaKey: }); name: LinkFailureInputSchema } version: 0.0.1 linkFailureOutput.put("o_DasH_ran_DasH_sc_DasH_du_DasH_hello_DasH_world_ColoN_radio_DasH_resource_DasH_management_DasH_policy_DasH_ratio", unlockMessageArray); optional: false executor.outFields.put("LinkFailureOutput", linkFailureOutput.toString()); outputFields: executor.getExecutionProperties().setProperty("OduId", oduId); entry: executor.getExecutionProperties().setProperty("OruId", oruId); - key: message executor.logger.info(executor.outFields); value: true; - key: message name: NoPolicyDefinedTask fieldSchemaKey: version: 0.0.1 value: name: MessageSchema key: version: 0.0.1 name: NoPolicyDefinedTask optionalversion: false0.0.1 taskParametersinputFields: entry: [] - contextAlbumReferencekey: []LinkFailureInput taskLogicvalue: key: LinkFailureInput TaskLogic logicFlavourfieldSchemaKey: JAVASCRIPT logic: |-name: LinkFailureInputSchema version: 0.0.1 /* * ============LICENSE_START=======================================================optional: false outputFields: * Copyright (C) 2021 Nordix Foundation. entry: * ================================================================================ - key: message * Licensed under the Apache License, Version 2.0 (the "License"); value: * you may not use this filekey: exceptmessage in compliance with the License. fieldSchemaKey: * You may obtain a copy of the License at name: MessageSchema * version: 0.0.1 * http://www.apache.org/licenses/LICENSE-2.0 optional: false * taskParameters: * Unless required by applicable law or agreed to in writing, softwareentry: [] contextAlbumReference: [] * distributed under the License is distributed on an "AS IS" BASIS, taskLogic: * WITHOUT WARRANTIES OR CONDITIONS OF ANYkey: KIND,TaskLogic either express or implied. logicFlavour: JAVASCRIPT * See the License for the specific language governing permissions and logic: |- * limitations under the License. /* * * ============LICENSE_START======================================================= * SPDX-License-Identifier: Apache-2.0 Copyright (C) 2021 Nordix Foundation. * =======================LICENSE_END========================================================= */ Licensed under the Apache License, Version 2.0 (the "License"); executor.logger.info("Task Execution: '"+executor.subject.id+"'. Input Fields: '"+executor.inFields+"'"); * you may not use this file except in compliance with the License. executor.outFields.put("message", "No policy defined for this event"); * You may obtain a copy of the License at executor.logger.info(executor.outFields); * true; events: * http://www.apache.org/licenses/LICENSE-2.0 key: name: LinkMonitorModel_Events* version: 0.0.1 * Unless required by applicable law or agreed to eventMap:in writing, software entry: * distributed under the License is distributed on -an key:"AS IS" BASIS, name: ApexMessageOutputEvent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. version: 0.0.1 * value:See the License for the specific language governing permissions and key: * limitations under the License. name: ApexMessageOutputEvent * version: 0.0.1 * nameSpaceSPDX-License-Identifier: org.onap.policy.apex.auth.clieditorApache-2.0 source: APEX * ============LICENSE_END========================================================= target: APEX */ parameter: executor.logger.info("Task Execution: '"+executor.subject.id+"'. entry: Input Fields: '"+executor.inFields+"'"); - key: message executor.outFields.put("message", "No policy defined for this event"); value: executor.logger.info(executor.outFields); key: message true; events: fieldSchemaKey: key: name: MessageSchemaLinkMonitorModel_Events version: 0.0.1 version: 0.0.1 eventMap: optional: falseentry: - key: name: CreateLinkClearedOutfieldsEventApexMessageOutputEvent version: 0.0.1 value: key: name: CreateLinkClearedOutfieldsEventApexMessageOutputEvent version: 0.0.1 nameSpace: org.onap.policy.apex.auth.clieditor source: APEX target: APEX parameter: entry: - key: OruIdmessage value: key: OruIdmessage fieldSchemaKey: name: OruIdSchemaMessageSchema version: 0.0.1 optional: false - key: name: CreateLinkFailureOutfieldsEventCreateLinkClearedOutfieldsEvent version: 0.0.1 value: key: name: CreateLinkFailureOutfieldsEventCreateLinkClearedOutfieldsEvent version: 0.0.1 nameSpace: org.onap.policy.apex.auth.clieditor source: APEX target: APEX parameter: entry: - key: OduIdOruId value: key: OduIdOruId fieldSchemaKey: name: OduIdSchemaOruIdSchema version: 0.0.1 optional: false - key: OruId name: CreateLinkFailureOutfieldsEvent value: version: 0.0.1 key: OruId value: fieldSchemaKey: key: name: OruIdSchema CreateLinkFailureOutfieldsEvent version: 0.0.1 nameSpace: org.onap.policy.apex.auth.clieditor optional: false source: APEX - key: target: APEX name: LinkFailureInputEvent parameter: version: 0.0.1 valueentry: - key: OduId namevalue: LinkFailureInputEvent versionkey: 0.0.1OduId nameSpace: org.onap.policy.apex.auth.clieditor fieldSchemaKey: source: DMAAP name: OduIdSchema target: APEX version: 0.0.1 parameter: entryoptional: false - key: LinkFailureInputOruId value: key: LinkFailureInputOruId fieldSchemaKey: name: LinkFailureInputSchemaOruIdSchema version: 0.0.1 optional: false - key: name: LinkFailureOutputEventLinkFailureInputEvent version: 0.0.1 value: key: name: LinkFailureOutputEventLinkFailureInputEvent version: 0.0.1 nameSpace: org.onap.policy.apex.auth.clieditor source: APEXDMAAP target: OAMAPEX parameter: entry: - key: LinkFailureOutputLinkFailureInput value: key: LinkFailureOutputLinkFailureInput fieldSchemaKey: name: LinkFailureOutputSchemaLinkFailureInputSchema version: 0.0.1 optional: false schemas: - key: key: name: LinkFailureOutputEvent name: LinkMonitorModel_Schemas version: 0.0.1 schemas: value: entry: key: - key: name: LinkFailureInputSchemaname: LinkFailureOutputEvent version: 0.0.1 value nameSpace: org.onap.policy.apex.auth.clieditor key source: APEX target: name:OAM LinkFailureInputSchema parameter: version: 0.0.1 entry: schemaFlavour: Avro - schemaDefinitionkey: LinkFailureOutput |- {value: "type"key: "record",LinkFailureOutput "name"fieldSchemaKey: "Link_Failure_Input", "fields"name: [LinkFailureOutputSchema version: 0.0.1 { optional: false "name": "event", schemas: key: "type": { name: LinkMonitorModel_Schemas version: 0.0.1 "type"schemas: "record", entry: - key: "name": "Event_Type", name: LinkFailureInputSchema "fields"version: [0.0.1 value: key: { name: LinkFailureInputSchema "name"version: "commonEventHeader",0.0.1 schemaFlavour: Avro schemaDefinition: "type": {|- { "type": "record", "name": "Link_Failure_Input", "namefields": "Common_Event_Header_Type", [ { "fieldsname": ["event", "type": { { "type": "record", "name": "domainEvent_Type", "fields": [ "type": "string" { }, "name": "commonEventHeader", { "type": { "nametype": "eventIdrecord", "type"name": "string"Common_Event_Header_Type", },"fields": [ { "name": "eventNamedomain", "type": "string" }, { "name": "eventTypeeventId", "type": "string" }, { "name": "sequenceeventName", "type": "intstring" }, { "name": "priorityeventType", "type": "string" }, { "name": "reportingEntityIdsequence", "type": "stringint" }, { "name": "reportingEntityNamepriority", "type": "string" }, { "name": "sourceIdreportingEntityId", "type": "string" }, { "name": "sourceNamereportingEntityName", "type": "string" }, { "name": "startEpochMicrosecsourceId", "type": "string" }, { "name": "lastEpochMicrosecsourceName", "type": "string" }, { "name": "nfNamingCodestartEpochMicrosec", "type": "string" }, { "name": "nfVendorNamelastEpochMicrosec", "type": "string" }, { "name": "timeZoneOffsetnfNamingCode", "type": "string" }, { "name": "versionnfVendorName", "type": "string" }, { "name": "vesEventListenerVersiontimeZoneOffset", "type": "string" }, ] { } "name": "version", }, "type": "string" { }, "name": "faultFields", "type": { "type "name": "recordvesEventListenerVersion", "nametype": "Fault_Fields_Type",string" "fields": [ } ] { } "name": "faultFieldsVersion", }, "type": "string" { }, "name": "faultFields", "type": { "name"type": "alarmConditionrecord", "typename": "stringFault_Fields_Type", },"fields": [ { "name": "alarmInterfaceAfaultFieldsVersion", "type": "string" }, { "name": "eventSourceTypealarmCondition", "type": "string" }, { "name": "specificProblemalarmInterfaceA", "type": "string" }, { "name": "eventSeverityeventSourceType", "type": "string" }, { "name": "vfStatusspecificProblem", "type": "string" }, { "name": "alarmAdditionalInformationeventSeverity", "type": {"string" }, "type": "record", { "name": "Alarm_Additional_Information_Type", "name": "vfStatus", "fields": [ "type": "string" { }, "name": "eventTime", { "typename": "stringalarmAdditionalInformation", "type": { }, "type": "record", { "name": "equipTypeAlarm_Additional_Information_Type", "fields": [ "type": "string" { }, {"name": "eventTime", "nametype": "vendorstring", }, "type": "string" { }, {"name": "equipType", "nametype": "modelstring", }, "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 } } ] } - key: name: LinkFailureOutputSchema version: 0.0.1 value: key: name: LinkFailureOutputSchema version: 0.0.1 schemaFlavour: Avro schemaDefinition: "{\n \"name\": \"Link_Failure_Output\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"o_DasH_ran_DasH_sc_DasH_du_DasH_hello_DasH_world_ColoN_radio_DasH_resource_DasH_management_DasH_policy_DasH_ratio\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"o_DasH_ran_DasH_sc_DasH_du_DasH_hello_DasH_world_ColoN_radio_DasH_resource_DasH_management_DasH_policy_DasH_ratio_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"id\",\n \"type\": \"string\"\n },\n {\n \"name\": \"radio_DasH_resource_DasH_management_DasH_policy_DasH_max_DasH_ratio\",\n \"type\": \"int\"\n },\n {\n \"name\": \"radio_DasH_resource_DasH_management_DasH_policy_DasH_members\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"radio_DasH_resource_DasH_management_DasH_policy_DasH_members_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"mobile_DasH_country_DasH_code\",\n \"type\": \"string\"\n },\n {\n \"name\": \"mobile_DasH_network_DasH_code\",\n \"type\": \"string\"\n },\n {\n \"typename\": \"recordslice_DasH_differentiator\",\n \"fieldstype\": \"int\"\n },\n [\n {\n {\n \"name\": \"slice_DasH_service_DasH_type\",\n \"nametype\": \"int\"\n }\n \"name\",\n]\n }\n }\n },\n {\n \"name\": \"radio_DasH_resource_DasH_management_DasH_policy_DasH_min_DasH_ratio\",\n \"type\": \"stringint\"\n },\n {\n \"name\": \"user_DasH_label\",\n },\n\t\t\t{"type\": \"string\"\n },\n {\n \"name\": \"name\": \"resource_DasH_type\",\n \"type\": \"administrative_DasH_statestring\",\n },\n {\n \"type\": \"name\": \"radio_DasH_resource_DasH_management_DasH_policy_DasH_dedicated_DasH_ratio\",\n \"type\": \"stringint\"\n },\n }{\n \"name\": \"administrative_DasH_state\",\n ]\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-simulator.nonrtric:9990/rests/data/network-topology:network-topology/topology=topology-netconf/node={OduId}/yang-ext:mount/o-ran-sc-du-hello-world:network-function/dudistributed-tounit-ru-connectionfunctions={OruId}OduId}/radio-resource-management-policy-ratio=rrm-pol-1 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://message-router:3904/events/unauthenticated.SEC_FAULT_OUTPUT/users/link-monitor-nonrtric?timeout=15000&limit=100 eventProtocolParameters: eventProtocol: JSON parameters: versionAlias: version pojoField: LinkFailureInput eventName: LinkFailureInputEvent |
NOTE: The default hostname/port for sdnr-simulator and message-router are specified in lines 1547 and 1573 respectively of the above file. They should be replaced with actual values if using different hostname/port.
...
Code Block | ||
---|---|---|
| ||
git clone "https://gerrit.o-ran-sc.org/r/nonrtric"
git checkout -b e-release --track origin/e-release
cd nonrtric/test/usecases/oruclosedlooprecovery/scriptversion/helm/sdnr-simulator/
helm package .
helm install sdnr-simulator sdnr-simulator-0.1.0.tgz --set image.repository=registry.nordix.org/onap/sdnr-simulator --set image.tag=1.0.0 --set messagerouter.host="http://message-router.onap" --set messagerouter.port="3904" --namespace nonrtric --create-namespace --wait |
...
Code Block | ||
---|---|---|
| ||
curl -k -u 'healthcheckpolicyadmin:zb!XztG34' -X GET "https://<NodeIP>:<NodePort-policy-api>/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/policies/operational.apex.linkmonitor/versions/1.0.0" |
...
Code Block | ||
---|---|---|
| ||
curl -k -u 'healthcheckpolicyadmin:zb!XztG34' -X GET "https://<NodeIP>:<NodePort-policy-pap>/policy/pap/v1/policies/status" |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 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.ControlLoop: version: 1.0.1 derived_from: tosca.nodetypes.Root properties: provider: type: string requred: false elements: type: list required: true entry_schema: type: onap.datatypes.ToscaConceptIdentifier org.onap.policy.clamp.controlloop.ControlLoopElement: version: 1.0.1 derived_from: tosca.nodetypes.Root properties: provider: type: string requred: false participant_id: type: onap.datatypes.ToscaConceptIdentifier requred: true org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement: version: 1.0.1 derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement properties: chart: type: string required: true configs: type: list required: false requirements: type: string requred: false templates: type: list required: false entry_schema: values: type: string requred: true topology_template: node_templates: org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition1: version: 1.2.3 type: org.onap.policy.clamp.controlloop.ControlLoop type_version: 1.0.1 description: Control loop for Link Monitor properties: provider: Ericsson elements: - name: org.onap.domain.linkmonitor.OruAppK8SMicroserviceControlLoopElement version: 1.2.3 - name: org.onap.domain.linkmonitor.MessageGeneratorK8SMicroserviceControlLoopElement version: 1.2.3 - name: org.onap.domain.linkmonitor.SdnrSimulatorK8SMicroserviceControlLoopElement version: 1.2.3 org.onap.k8s.controlloop.K8SControlLoopParticipant: version: 2.3.4 type: org.onap.policy.clamp.controlloop.Participant type_version: 1.0.1 description: Participant for k8s properties: provider: ONAP org.onap.domain.linkmonitor.OruAppK8SMicroserviceControlLoopElement: version: 1.2.3 type: org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement type_version: 1.0.1 description: Control loop element for oru-app properties: provider: ONAP participant_id: name: K8sParticipant0 version: 1.0.0 participantType: name: org.onap.k8s.controlloop.K8SControlLoopParticipant version: 2.3.4 chart: chartId: name: oru-app version: 0.1.0 releaseName: oru-app repository: repoName: chartmuseum namespace: nonrtric overrideParams: image.repository: nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-o-ru-closed-loop-recovery image.tag: 1.0.01 messagerouter.host: http://message-router.onap messagerouter.port: 3904 sdnr.host: http://sdnr-simulator sdnr.port: 9990 org.onap.domain.linkmonitor.MessageGeneratorK8SMicroserviceControlLoopElement: version: 1.2.3 type: org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement type_version: 1.0.1 description: Control loop element for message-generator properties: provider: ONAP participant_id: name: K8sParticipant0 version: 1.0.0 participantType: name: org.onap.k8s.controlloop.K8SControlLoopParticipant version: 2.3.4 chart: chartId: name: message-generator version: 0.1.0 releaseName: message-generator repository: repoName: chartmuseum namespace: nonrtric overrideParams: image.repository: registry.nordix.org/onap/message-generator image.tag: 1.0.0 messagerouter.host: http://message-router.onap messagerouter.port: 3904 org.onap.domain.linkmonitor.SdnrSimulatorK8SMicroserviceControlLoopElement: version: 1.2.3 type: org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement type_version: 1.0.1 description: Control loop element for sdnr-simulator properties: provider: ONAP participant_id: name: K8sParticipant0 version: 1.0.0 participantType: name: org.onap.k8s.controlloop.K8SControlLoopParticipant version: 2.3.4 chart: chartId: name: sdnr-simulator version: 0.1.0 releaseName: sdnr-simulator repository: repoName: chartmuseum namespace: nonrtric overrideParams: image.repository: registry.nordix.org/onap/sdnr-simulator image.tag: 1.0.0 messagerouter.host: http://message-router.onap messagerouter.port: 3904 |
This control loop will bring up three micro-services in the nonrtric namespace: oru-app (running the actual logic of the usecase), message-generator (sending the LinkFailure messages at random intervals), and sdnr-simulator (for receiving the REST calls made by oru-app). Make sure that the sdnr-simulator is not already running in the nonrtric namespace, otherwise the control loop instantiation might fail.
...