diff options
Diffstat (limited to 'examples/examples-acm/src/main/resources')
6 files changed, 269 insertions, 0 deletions
diff --git a/examples/examples-acm/src/main/resources/examples/config/apexACM/ApexConfig.json b/examples/examples-acm/src/main/resources/examples/config/apexACM/ApexConfig.json new file mode 100644 index 000000000..6a2feaaa0 --- /dev/null +++ b/examples/examples-acm/src/main/resources/examples/config/apexACM/ApexConfig.json @@ -0,0 +1,72 @@ +{ + "engineServiceParameters": { + "name": "MyApexEngine", + "version": "0.0.1", + "id": 45, + "instanceCount": 2, + "deploymentPort": 12561, + "engineParameters": { + "executorParameters": { + "JAVASCRIPT": { + "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters" + } + }, + "contextParameters": { + "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters", + "schemaParameters": { + "Json": { + "parameterClassName": "org.onap.policy.apex.plugins.context.schema.json.JsonSchemaHelperParameters" + } + } + } + } + }, + "eventInputParameters": { + "DmaapConsumer": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTCLIENT", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", + "parameters": { + "url": "http://localhost:3904/events/AC_ELEMENT_MSG/APEX/1?timeout=30000" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "pojoField": "DmaapResponseEvent" + } + }, + "eventName": "AcElementEvent", + "eventNameFilter": "AcElementEvent" + } + }, + "eventOutputParameters": { + "logOutputter": { + "carrierTechnologyParameters": { + "carrierTechnology": "FILE", + "parameters": { + "fileName": "outputevents.log" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + } + }, + "DmaapReplyProducer": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTCLIENT", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", + "parameters": { + "url": "http://localhost:3904/events/POLICY_UPDATE_MSG" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "pojoField": "DmaapResponseStatusEvent" + } + }, + "eventNameFilter": "(LogEvent|DmaapResponseStatusEvent)" + } + } +} diff --git a/examples/examples-acm/src/main/resources/examples/events/apexACM/LogEvent.json b/examples/examples-acm/src/main/resources/examples/events/apexACM/LogEvent.json new file mode 100644 index 000000000..c7c16f094 --- /dev/null +++ b/examples/examples-acm/src/main/resources/examples/events/apexACM/LogEvent.json @@ -0,0 +1,10 @@ +{ + "name": "LogEvent", + "version": "0.0.1", + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "APEX", + "target": "Dmaap", + "toscaPolicyState": "", + "final_status": "FINAL_SUCCESS", + "message": "Operation successfully completed." +}
\ No newline at end of file diff --git a/examples/examples-acm/src/main/resources/logic/ForwardPayloadTask.js b/examples/examples-acm/src/main/resources/logic/ForwardPayloadTask.js new file mode 100644 index 000000000..d48b0dcb7 --- /dev/null +++ b/examples/examples-acm/src/main/resources/logic/ForwardPayloadTask.js @@ -0,0 +1,58 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix. 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +executor.logger.info(executor.subject.id); +executor.logger.info(executor.inFields); + +var msgResponse = executor.inFields.get('DmaapResponseEvent'); +executor.logger.info('Task in progress with mesages: ' + msgResponse); + +var elementId = msgResponse.get('elementId').get('name'); + +if (msgResponse.get('messageType') == 'STATUS' && + (elementId == 'onap.policy.clamp.ac.startertobridge' + || elementId == 'onap.policy.clamp.ac.bridgetosink')) { + + var receiverId = ''; + if (elementId == 'onap.policy.clamp.ac.startertobridge') { + receiverId = 'onap.policy.clamp.ac.bridge'; + } else { + receiverId = 'onap.policy.clamp.ac.sink'; + } + + var elementIdResponse = new java.util.HashMap(); + elementIdResponse.put('name', receiverId); + elementIdResponse.put('version', msgResponse.get('elementId').get('version')); + + var dmaapResponse = new java.util.HashMap(); + dmaapResponse.put('elementId', elementIdResponse); + + var message = msgResponse.get('message') + ' trace added from policy'; + dmaapResponse.put('message', message); + dmaapResponse.put('messageType', 'STATUS'); + dmaapResponse.put('messageId', msgResponse.get('messageId')); + dmaapResponse.put('timestamp', msgResponse.get('timestamp')); + + executor.logger.info('Sending forwarding Event to Ac element: ' + dmaapResponse); + + executor.outFields.put('DmaapResponseStatusEvent', dmaapResponse); +} + +true; diff --git a/examples/examples-acm/src/main/resources/policy/APEXacElementPolicy.apex b/examples/examples-acm/src/main/resources/policy/APEXacElementPolicy.apex new file mode 100644 index 000000000..54a89459d --- /dev/null +++ b/examples/examples-acm/src/main/resources/policy/APEXacElementPolicy.apex @@ -0,0 +1,80 @@ +#------------------------------------------------------------------------------- +# ============LICENSE_START======================================================= +# Copyright (C) 2022 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========================================================= +#------------------------------------------------------------------------------- + +model create name=APEXacElementPolicy + +## +## SCHEMAS +## + +schema create name=SimpleStringType flavour=Java schema=java.lang.String +schema create name=UUIDType flavour=Java schema=java.util.UUID +schema create name=SimpleIntType flavour=Java schema=java.lang.Integer + +schema create name=ACEventType flavour=Json schema=LS +#MACROFILE:"src/main/resources/schemas/ACEventType.json" +LE + +## +## EVENTS +## + +album create name=ACElementAlbum scope=policy writable=true schemaName=ACEventType + +# Incoming event +event create name=AcElementEvent version=0.0.1 nameSpace=org.onap.policy.apex.ac.element source=Dmaap target=APEX toscaPolicyState=ENTRY +event parameter create name=AcElementEvent parName=DmaapResponseEvent schemaName=ACEventType + +# Forwarding event +event create name=DmaapResponseStatusEvent nameSpace=org.onap.policy.apex.ac.element source=APEX target=Dmaap +event parameter create name=DmaapResponseStatusEvent parName=DmaapResponseStatusEvent schemaName=ACEventType + +# Log event +event create name=LogEvent nameSpace=org.onap.policy.apex.ac.element source=APEX target=file +event parameter create name=LogEvent parName=final_status schemaName=SimpleStringType +event parameter create name=LogEvent parName=message schemaName=SimpleStringType + +## +## TASKS +## + +task create name=ForwardPayloadTask +task contextref create name=ForwardPayloadTask albumName=ACElementAlbum +task inputfield create name=ForwardPayloadTask fieldName=DmaapResponseEvent schemaName=ACEventType +task logic create name=ForwardPayloadTask logicFlavour=JAVASCRIPT logic=LS +#MACROFILE:"src/main/resources/logic/ForwardPayloadTask.js" +LE + + +## +## POLICIES +## + +# Policy ReceiveEventPolicy +policy create name=ReceiveEventPolicy template=Freestyle firstState=DecideForwardingState + + +# State DecideForwardingState +policy state create name=ReceiveEventPolicy stateName=DecideForwardingState triggerName=AcElementEvent defaultTaskName=ForwardPayloadTask +policy state output create name=ReceiveEventPolicy stateName=DecideForwardingState outputName=CreateForwardPayload eventName=DmaapResponseStatusEvent nextState=NULL +policy state taskref create name=ReceiveEventPolicy stateName=DecideForwardingState taskName=ForwardPayloadTask outputType=DIRECT outputName=CreateForwardPayload + + +validate diff --git a/examples/examples-acm/src/main/resources/schemas/ACEventType.json b/examples/examples-acm/src/main/resources/schemas/ACEventType.json new file mode 100644 index 000000000..1e10c33fe --- /dev/null +++ b/examples/examples-acm/src/main/resources/schemas/ACEventType.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "elementId": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "name", + "version" + ] + }, + "message": { + "type": "string" + }, + "messageType": { + "type": "string" + } + }, + "required": [ + "elementId", + "message", + "messageType" + ] +} diff --git a/examples/examples-acm/src/main/resources/tosca/ToscaTemplate.json b/examples/examples-acm/src/main/resources/tosca/ToscaTemplate.json new file mode 100644 index 000000000..1ca4098ec --- /dev/null +++ b/examples/examples-acm/src/main/resources/tosca/ToscaTemplate.json @@ -0,0 +1,17 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_1_0", + "topology_template": { + "policies": [ + { + "onap.policies.native.apex.ac.element": { + "type": "onap.policies.native.Apex", + "type_version": "1.0.0", + "name": "onap.policies.native.apex.ac.element", + "version": "1.0.0", + "properties": { + } + } + } + ] + } +} |