diff options
Diffstat (limited to 'csit/resources/tests')
-rw-r--r-- | csit/resources/tests/data/AcDocker.json | 1081 | ||||
-rw-r--r-- | csit/resources/tests/data/AcK8s.json | 1081 | ||||
-rw-r--r-- | csit/resources/tests/data/PMSHMultipleACTosca.yaml | 932 | ||||
-rw-r--r-- | csit/resources/tests/data/ac-instance-migration-fail.yaml | 99 | ||||
-rw-r--r-- | csit/resources/tests/data/acelement-usecase.yaml | 799 | ||||
-rw-r--r-- | csit/resources/tests/policy-clamp-test.robot | 49 |
6 files changed, 2280 insertions, 1761 deletions
diff --git a/csit/resources/tests/data/AcDocker.json b/csit/resources/tests/data/AcDocker.json index 57148256..25f0c712 100644 --- a/csit/resources/tests/data/AcDocker.json +++ b/csit/resources/tests/data/AcDocker.json @@ -12,14 +12,1083 @@ }, "description": "Policy Automation Composition Element for the Demo", "properties": { - "policy_type_id": { - "name": "onap.policies.native.Apex", - "version": "1.0.0" + "tosca_definitions_version": "tosca_simple_yaml_1_3", + "name": "NULL", + "version": "0.0.0", + "data_types": { + "onap.datatypes.native.apex.EngineService": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "name": { + "type": "string", + "description": "Specifies the engine name", + "required": false, + "default": "ApexEngineService" + }, + "version": { + "type": "string", + "description": "Specifies the engine version in double dotted format", + "required": false, + "default": "1.0.0" + }, + "id": { + "type": "integer", + "description": "Specifies the engine id", + "required": true + }, + "instance_count": { + "type": "integer", + "description": "Specifies the number of engine threads that should be run", + "required": true + }, + "deployment_port": { + "type": "integer", + "description": "Specifies the port to connect to for engine administration", + "required": false, + "default": 1 + }, + "policy_model_file_name": { + "type": "string", + "description": "The name of the file from which to read the APEX policy model", + "required": false + }, + "policy_type_impl": { + "type": "string", + "description": "The policy type implementation from which to read the APEX policy model", + "required": false + }, + "periodic_event_period": { + "type": "string", + "description": "The time interval in milliseconds for the periodic scanning event, 0 means don't scan", + "required": false + }, + "engine": { + "type": "onap.datatypes.native.apex.engineservice.Engine", + "description": "The parameters for all engines in the APEX engine service", + "required": true + } + } + }, + "onap.datatypes.native.apex.EventHandler": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "name": { + "type": "string", + "description": "Specifies the event handler name, if not specified this is set to the key name", + "required": false + }, + "carrier_technology": { + "type": "onap.datatypes.native.apex.CarrierTechnology", + "description": "Specifies the carrier technology of the event handler (such as REST/Web Socket/Kafka)", + "required": true + }, + "event_protocol": { + "type": "onap.datatypes.native.apex.EventProtocol", + "description": "Specifies the event protocol of events for the event handler (such as Yaml/JSON/XML/POJO)", + "required": true + }, + "event_name": { + "type": "string", + "description": "Specifies the event name for events on this event handler, if not specified, the event name is read from or written to the event being received or sent", + "required": false + }, + "event_name_filter": { + "type": "string", + "description": "Specifies a filter as a regular expression, events that do not match the filter are dropped, the default is to let all events through", + "required": false + }, + "synchronous_mode": { + "type": "boolean", + "description": "Specifies the event handler is syncronous (receive event and send response)", + "required": false, + "default": false + }, + "synchronous_peer": { + "type": "string", + "description": "The peer event handler (output for input or input for output) of this event handler in synchronous mode, this parameter is mandatory if the event handler is in synchronous mode", + "required": false + }, + "synchronous_timeout": { + "type": "integer", + "description": "The timeout in milliseconds for responses to be issued by APEX torequests, this parameter is mandatory if the event handler is in synchronous mode", + "required": false + }, + "requestor_mode": { + "type": "boolean", + "description": "Specifies the event handler is in requestor mode (send event and wait for response mode)", + "required": false, + "default": false + }, + "requestor_peer": { + "type": "string", + "description": "The peer event handler (output for input or input for output) of this event handler in requestor mode, this parameter is mandatory if the event handler is in requestor mode", + "required": false + }, + "requestor_timeout": { + "type": "integer", + "description": "The timeout in milliseconds for wait for responses to requests, this parameter is mandatory if the event handler is in requestor mode", + "required": false + } + } + }, + "onap.datatypes.native.apex.CarrierTechnology": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "label": { + "type": "string", + "description": "The label (name) of the carrier technology (such as REST, Kafka, WebSocket)", + "required": true + }, + "plugin_parameter_class_name": { + "type": "string", + "description": "The class name of the class that overrides default handling of event input or output for this carrier technology, defaults to the supplied input or output class", + "required": false + } + } + }, + "onap.datatypes.native.apex.EventProtocol": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "label": { + "type": "string", + "description": "The label (name) of the event protocol (such as Yaml, JSON, XML, or POJO)", + "required": true + }, + "event_protocol_plugin_class": { + "type": "string", + "description": "The class name of the class that overrides default handling of the event protocol for this carrier technology, defaults to the supplied event protocol class", + "required": false + } + } + }, + "onap.datatypes.native.apex.Environment": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "name": { + "type": "string", + "description": "The name of the environment variable", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the environment variable", + "required": true + } + } + }, + "onap.datatypes.native.apex.engineservice.Engine": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "context": { + "type": "onap.datatypes.native.apex.engineservice.engine.Context", + "description": "The properties for handling context in APEX engines, defaults to using Java maps for context", + "required": false + }, + "executors": { + "type": "map", + "description": "The plugins for policy executors used in engines such as javascript, MVEL, Jython", + "required": true, + "entry_schema": { + "description": "The plugin class path for this policy executor", + "type": "string" + } + } + } + }, + "onap.datatypes.native.apex.engineservice.engine.Context": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "distributor": { + "type": "onap.datatypes.native.apex.Plugin", + "description": "The plugin to be used for distributing context between APEX PDPs at runtime", + "required": false + }, + "schemas": { + "type": "map", + "description": "The plugins for context schemas available in APEX PDPs such as Java and Avro", + "required": false, + "entry_schema": { + "type": "onap.datatypes.native.apex.Plugin" + } + }, + "locking": { + "type": "onap.datatypes.native.apex.Plugin", + "description": "The plugin to be used for locking context in and between APEX PDPs at runtime", + "required": false + }, + "persistence": { + "type": "onap.datatypes.native.apex.Plugin", + "description": "The plugin to be used for persisting context for APEX PDPs at runtime", + "required": false + } + } + }, + "onap.datatypes.native.apex.Plugin": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "name": { + "type": "string", + "description": "The name of the executor such as Javascript, Jython or MVEL", + "required": true + }, + "plugin_class_name": { + "type": "string", + "description": "The class path of the plugin class for this executor" + } + } + } }, - "policy_id": { - "get_input": "acm_element_policy" + "policy_types": { + "onap.policies.Native": { + "derived_from": "tosca.policies.Root", + "description": "a base policy type for all native PDP policies", + "version": "1.0.0", + "name": "onap.policies.Native" + }, + "onap.policies.native.Apex": { + "derived_from": "onap.policies.Native", + "description": "a policy type for native apex policies", + "version": "1.0.0", + "name": "onap.policies.native.Apex", + "properties": { + "engine_service": { + "type": "onap.datatypes.native.apex.EngineService", + "description": "APEX Engine Service Parameters" + }, + "inputs": { + "type": "map", + "description": "Inputs for handling events coming into the APEX engine", + "entry_schema": { + "type": "onap.datatypes.native.apex.EventHandler" + } + }, + "outputs": { + "type": "map", + "description": "Outputs for handling events going out of the APEX engine", + "entry_schema": { + "type": "onap.datatypes.native.apex.EventHandler" + } + }, + "environment": { + "type": "list", + "description": "Envioronmental parameters for the APEX engine", + "entry_schema": { + "type": "onap.datatypes.native.apex.Environment" + } + } + } + } + }, + "topology_template": { + "policies": [ + { + "onap.policies.native.apex.ac.element": { + "type": "onap.policies.native.Apex", + "type_version": "1.0.0", + "properties": { + "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" + } + } + } + }, + "policy_type_impl": { + "policies": { + "key": { + "name": "APEXacElementPolicy_Policies", + "version": "0.0.1" + }, + "policyMap": { + "entry": [ + { + "key": { + "name": "ReceiveEventPolicy", + "version": "0.0.1" + }, + "value": { + "policyKey": { + "name": "ReceiveEventPolicy", + "version": "0.0.1" + }, + "template": "Freestyle", + "state": { + "entry": [ + { + "key": "DecideForwardingState", + "value": { + "stateKey": { + "parentKeyName": "ReceiveEventPolicy", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "DecideForwardingState" + }, + "trigger": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "stateOutputs": { + "entry": [ + { + "key": "CreateForwardPayload", + "value": { + "key": { + "parentKeyName": "ReceiveEventPolicy", + "parentKeyVersion": "0.0.1", + "parentLocalName": "DecideForwardingState", + "localName": "CreateForwardPayload" + }, + "outgoingEvent": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "outgoingEventReference": [ + { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + } + ], + "nextState": { + "parentKeyName": "NULL", + "parentKeyVersion": "0.0.0", + "parentLocalName": "NULL", + "localName": "NULL" + } + } + } + ] + }, + "contextAlbumReference": [], + "taskSelectionLogic": { + "key": { + "parentKeyName": "NULL", + "parentKeyVersion": "0.0.0", + "parentLocalName": "NULL", + "localName": "NULL" + }, + "logicFlavour": "UNDEFINED", + "logic": "" + }, + "stateFinalizerLogicMap": { + "entry": [] + }, + "defaultTask": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "taskReferences": { + "entry": [ + { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "value": { + "key": { + "parentKeyName": "ReceiveEventPolicy", + "parentKeyVersion": "0.0.1", + "parentLocalName": "DecideForwardingState", + "localName": "ReceiveEventPolicy" + }, + "outputType": "DIRECT", + "output": { + "parentKeyName": "ReceiveEventPolicy", + "parentKeyVersion": "0.0.1", + "parentLocalName": "DecideForwardingState", + "localName": "CreateForwardPayload" + } + } + } + ] + } + } + } + ] + }, + "firstState": "DecideForwardingState" + } + } + ] + } + }, + "tasks": { + "key": { + "name": "APEXacElementPolicy_Tasks", + "version": "0.0.1" + }, + "taskMap": { + "entry": [ + { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "inputEvent": { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "Kafka", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "KafkaResponseEvent", + "value": { + "key": { + "parentKeyName": "AcElementEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "KafkaResponseEvent" + }, + "fieldSchemaKey": { + "name": "ACEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "ENTRY" + }, + "outputEvents": { + "entry": [ + { + "key": "KafkaResponseStatusEvent", + "value": { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "APEX", + "target": "Kafka", + "parameter": { + "entry": [ + { + "key": "KafkaResponseStatusEvent", + "value": { + "key": { + "parentKeyName": "KafkaResponseStatusEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "KafkaResponseStatusEvent" + }, + "fieldSchemaKey": { + "name": "ACEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "" + } + } + ] + }, + "taskParameters": { + "entry": [] + }, + "contextAlbumReference": [ + { + "name": "ACElementAlbum", + "version": "0.0.1" + } + ], + "taskLogic": { + "key": { + "parentKeyName": "ForwardPayloadTask", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "TaskLogic" + }, + "logicFlavour": "JAVASCRIPT", + "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2022 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\nexecutor.logger.info(executor.inFields);\n\nvar msgResponse = executor.inFields.get('KafkaResponseEvent');\nexecutor.logger.info('Task in progress with mesages: ' + msgResponse);\n\nvar elementId = msgResponse.get('elementId').get('name');\n\nif (msgResponse.get('messageType') == 'STATUS' &&\n (elementId == 'onap.policy.clamp.ac.startertobridge'\n || elementId == 'onap.policy.clamp.ac.bridgetosink')) {\n\n var receiverId = '';\n if (elementId == 'onap.policy.clamp.ac.startertobridge') {\n receiverId = 'onap.policy.clamp.ac.bridge';\n } else {\n receiverId = 'onap.policy.clamp.ac.sink';\n }\n\n var elementIdResponse = new java.util.HashMap();\n elementIdResponse.put('name', receiverId);\n elementIdResponse.put('version', msgResponse.get('elementId').get('version'));\n\n var kafkaResponse = new java.util.HashMap();\n kafkaResponse.put('elementId', elementIdResponse);\n\n var message = msgResponse.get('message') + ' trace added from policy';\n kafkaResponse.put('message', message);\n kafkaResponse.put('messageType', 'STATUS');\n kafkaResponse.put('messageId', msgResponse.get('messageId'));\n kafkaResponse.put('timestamp', msgResponse.get('timestamp'));\n\n executor.logger.info('Sending forwarding Event to Ac element: ' + kafkaResponse);\n\n executor.outFields.put('KafkaResponseStatusEvent', kafkaResponse);\n}\n\ntrue;" + } + } + } + ] + } + }, + "events": { + "key": { + "name": "APEXacElementPolicy_Events", + "version": "0.0.1" + }, + "eventMap": { + "entry": [ + { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "Kafka", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "KafkaResponseEvent", + "value": { + "key": { + "parentKeyName": "AcElementEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "KafkaResponseEvent" + }, + "fieldSchemaKey": { + "name": "ACEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "ENTRY" + } + }, + { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "APEX", + "target": "Kafka", + "parameter": { + "entry": [ + { + "key": "KafkaResponseStatusEvent", + "value": { + "key": { + "parentKeyName": "KafkaResponseStatusEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "KafkaResponseStatusEvent" + }, + "fieldSchemaKey": { + "name": "ACEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "" + } + }, + { + "key": { + "name": "LogEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "LogEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "APEX", + "target": "file", + "parameter": { + "entry": [ + { + "key": "final_status", + "value": { + "key": { + "parentKeyName": "LogEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "final_status" + }, + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "message", + "value": { + "key": { + "parentKeyName": "LogEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "message" + }, + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "" + } + } + ] + } + }, + "albums": { + "key": { + "name": "APEXacElementPolicy_Albums", + "version": "0.0.1" + }, + "albums": { + "entry": [ + { + "key": { + "name": "ACElementAlbum", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ACElementAlbum", + "version": "0.0.1" + }, + "scope": "policy", + "isWritable": true, + "itemSchema": { + "name": "ACEventType", + "version": "0.0.1" + } + } + } + ] + } + }, + "schemas": { + "key": { + "name": "APEXacElementPolicy_Schemas", + "version": "0.0.1" + }, + "schemas": { + "entry": [ + { + "key": { + "name": "ACEventType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ACEventType", + "version": "0.0.1" + }, + "schemaFlavour": "Json", + "schemaDefinition": "{\n \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"elementId\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"version\"\n ]\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"messageType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"elementId\",\n \"message\",\n \"messageType\"\n ]\n}" + } + }, + { + "key": { + "name": "SimpleIntType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleIntType", + "version": "0.0.1" + }, + "schemaFlavour": "Java", + "schemaDefinition": "java.lang.Integer" + } + }, + { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "schemaFlavour": "Java", + "schemaDefinition": "java.lang.String" + } + }, + { + "key": { + "name": "UUIDType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "UUIDType", + "version": "0.0.1" + }, + "schemaFlavour": "Java", + "schemaDefinition": "java.util.UUID" + } + } + ] + } + }, + "key": { + "name": "APEXacElementPolicy", + "version": "0.0.1" + }, + "keyInformation": { + "key": { + "name": "APEXacElementPolicy_KeyInfo", + "version": "0.0.1" + }, + "keyInfoMap": { + "entry": [ + { + "key": { + "name": "ACElementAlbum", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ACElementAlbum", + "version": "0.0.1" + }, + "UUID": "7cddfab8-6d3f-3f7f-8ac3-e2eb5979c900", + "description": "Generated description for concept referred to by key \"ACElementAlbum:0.0.1\"" + } + }, + { + "key": { + "name": "ACEventType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ACEventType", + "version": "0.0.1" + }, + "UUID": "dab78794-b666-3929-a75b-70d634b04fe5", + "description": "Generated description for concept referred to by key \"ACEventType:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy", + "version": "0.0.1" + }, + "UUID": "da478611-7d77-3c46-b4be-be968769ba4e", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Albums", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Albums", + "version": "0.0.1" + }, + "UUID": "fa8dc15e-8c8d-3de3-a0f8-585b76511175", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Albums:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Events", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Events", + "version": "0.0.1" + }, + "UUID": "8508cd65-8dd2-342d-a5c6-1570810dbe2b", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Events:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_KeyInfo", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_KeyInfo", + "version": "0.0.1" + }, + "UUID": "09e6927d-c5ac-3779-919f-9333994eed22", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_KeyInfo:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Policies", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Policies", + "version": "0.0.1" + }, + "UUID": "cade3c9a-1600-3642-a6f4-315612187f46", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Policies:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Schemas", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Schemas", + "version": "0.0.1" + }, + "UUID": "5bb4a8e9-35fa-37db-9a49-48ef036a7ba9", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Schemas:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Tasks", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Tasks", + "version": "0.0.1" + }, + "UUID": "2527eeec-0d1f-3094-ad3f-212622b12836", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Tasks:0.0.1\"" + } + }, + { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "UUID": "32c013e2-2740-3986-a626-cbdf665b63e9", + "description": "Generated description for concept referred to by key \"AcElementEvent:0.0.1\"" + } + }, + { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "UUID": "2715cb6c-2778-3461-8b69-871e79f95935", + "description": "Generated description for concept referred to by key \"KafkaResponseStatusEvent:0.0.1\"" + } + }, + { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "UUID": "51defa03-1ecf-3314-bf34-2a652bce57fa", + "description": "Generated description for concept referred to by key \"ForwardPayloadTask:0.0.1\"" + } + }, + { + "key": { + "name": "LogEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "LogEvent", + "version": "0.0.1" + }, + "UUID": "c540f048-96af-35e3-a36e-e9c29377cba7", + "description": "Generated description for concept referred to by key \"LogEvent:0.0.1\"" + } + }, + { + "key": { + "name": "ReceiveEventPolicy", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ReceiveEventPolicy", + "version": "0.0.1" + }, + "UUID": "568b7345-9de1-36d3-b6a3-9b857e6809a1", + "description": "Generated description for concept referred to by key \"ReceiveEventPolicy:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleIntType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleIntType", + "version": "0.0.1" + }, + "UUID": "153791fd-ae0a-36a7-88a5-309a7936415d", + "description": "Generated description for concept referred to by key \"SimpleIntType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "UUID": "8a4957cf-9493-3a76-8c22-a208e23259af", + "description": "Generated description for concept referred to by key \"SimpleStringType:0.0.1\"" + } + }, + { + "key": { + "name": "UUIDType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "UUIDType", + "version": "0.0.1" + }, + "UUID": "6a8cc68e-dfc8-3403-9c6d-071c886b319c", + "description": "Generated description for concept referred to by key \"UUIDType:0.0.1\"" + } + } + ] + } + } + } + }, + "eventInputParameters": { + "KafkaConsumer": { + "carrierTechnologyParameters": { + "carrierTechnology": "KAFKA", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.kafka.KafkaCarrierTechnologyParameters", + "parameters": { + "bootstrapServers": "kafka:9092", + "groupId": "apex-group-id", + "enableAutoCommit": true, + "autoCommitTime": 1000, + "sessionTimeout": 30000, + "consumerPollTime": 100, + "consumerTopicList": [ + "ac_element_msg" + ], + "keyDeserializer": "org.apache.kafka.common.serialization.StringDeserializer", + "valueDeserializer": "org.apache.kafka.common.serialization.StringDeserializer" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "pojoField": "KafkaResponseEvent" + } + }, + "eventName": "AcElementEvent", + "eventNameFilter": "AcElementEvent" + } + }, + "eventOutputParameters": { + "logOutputter": { + "carrierTechnologyParameters": { + "carrierTechnology": "FILE", + "parameters": { + "fileName": "outputevents.log" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + } + }, + "KafkaReplyProducer": { + "carrierTechnologyParameters": { + "carrierTechnology": "KAFKA", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.kafka.KafkaCarrierTechnologyParameters", + "parameters": { + "bootstrapServers": "kafka:9092", + "acks": "all", + "retries": 0, + "batchSize": 16384, + "lingerTime": 1, + "bufferMemory": 33554432, + "producerTopic": "policy_update_msg", + "keySerializer": "org.apache.kafka.common.serialization.StringSerializer", + "valueSerializer": "org.apache.kafka.common.serialization.StringSerializer" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "pojoField": "KafkaResponseStatusEvent" + } + }, + "eventNameFilter": "(LogEvent|KafkaResponseStatusEvent)" + } + } + }, + "name": "onap.policies.native.apex.ac.element", + "version": "1.0.0" + } + } + ] } } } } -}
\ No newline at end of file +} diff --git a/csit/resources/tests/data/AcK8s.json b/csit/resources/tests/data/AcK8s.json index 3a7e3a33..8585faf5 100644 --- a/csit/resources/tests/data/AcK8s.json +++ b/csit/resources/tests/data/AcK8s.json @@ -12,12 +12,1081 @@ }, "description": "Starter Automation Composition Element for the Demo", "properties": { - "policy_type_id": { - "name": "onap.policies.operational.pm-subscription-handler", - "version": "1.0.0" + "tosca_definitions_version": "tosca_simple_yaml_1_3", + "name": "NULL", + "version": "0.0.0", + "data_types": { + "onap.datatypes.native.apex.EngineService": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "name": { + "type": "string", + "description": "Specifies the engine name", + "required": false, + "default": "ApexEngineService" + }, + "version": { + "type": "string", + "description": "Specifies the engine version in double dotted format", + "required": false, + "default": "1.0.0" + }, + "id": { + "type": "integer", + "description": "Specifies the engine id", + "required": true + }, + "instance_count": { + "type": "integer", + "description": "Specifies the number of engine threads that should be run", + "required": true + }, + "deployment_port": { + "type": "integer", + "description": "Specifies the port to connect to for engine administration", + "required": false, + "default": 1 + }, + "policy_model_file_name": { + "type": "string", + "description": "The name of the file from which to read the APEX policy model", + "required": false + }, + "policy_type_impl": { + "type": "string", + "description": "The policy type implementation from which to read the APEX policy model", + "required": false + }, + "periodic_event_period": { + "type": "string", + "description": "The time interval in milliseconds for the periodic scanning event, 0 means don't scan", + "required": false + }, + "engine": { + "type": "onap.datatypes.native.apex.engineservice.Engine", + "description": "The parameters for all engines in the APEX engine service", + "required": true + } + } + }, + "onap.datatypes.native.apex.EventHandler": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "name": { + "type": "string", + "description": "Specifies the event handler name, if not specified this is set to the key name", + "required": false + }, + "carrier_technology": { + "type": "onap.datatypes.native.apex.CarrierTechnology", + "description": "Specifies the carrier technology of the event handler (such as REST/Web Socket/Kafka)", + "required": true + }, + "event_protocol": { + "type": "onap.datatypes.native.apex.EventProtocol", + "description": "Specifies the event protocol of events for the event handler (such as Yaml/JSON/XML/POJO)", + "required": true + }, + "event_name": { + "type": "string", + "description": "Specifies the event name for events on this event handler, if not specified, the event name is read from or written to the event being received or sent", + "required": false + }, + "event_name_filter": { + "type": "string", + "description": "Specifies a filter as a regular expression, events that do not match the filter are dropped, the default is to let all events through", + "required": false + }, + "synchronous_mode": { + "type": "boolean", + "description": "Specifies the event handler is syncronous (receive event and send response)", + "required": false, + "default": false + }, + "synchronous_peer": { + "type": "string", + "description": "The peer event handler (output for input or input for output) of this event handler in synchronous mode, this parameter is mandatory if the event handler is in synchronous mode", + "required": false + }, + "synchronous_timeout": { + "type": "integer", + "description": "The timeout in milliseconds for responses to be issued by APEX torequests, this parameter is mandatory if the event handler is in synchronous mode", + "required": false + }, + "requestor_mode": { + "type": "boolean", + "description": "Specifies the event handler is in requestor mode (send event and wait for response mode)", + "required": false, + "default": false + }, + "requestor_peer": { + "type": "string", + "description": "The peer event handler (output for input or input for output) of this event handler in requestor mode, this parameter is mandatory if the event handler is in requestor mode", + "required": false + }, + "requestor_timeout": { + "type": "integer", + "description": "The timeout in milliseconds for wait for responses to requests, this parameter is mandatory if the event handler is in requestor mode", + "required": false + } + } + }, + "onap.datatypes.native.apex.CarrierTechnology": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "label": { + "type": "string", + "description": "The label (name) of the carrier technology (such as REST, Kafka, WebSocket)", + "required": true + }, + "plugin_parameter_class_name": { + "type": "string", + "description": "The class name of the class that overrides default handling of event input or output for this carrier technology, defaults to the supplied input or output class", + "required": false + } + } + }, + "onap.datatypes.native.apex.EventProtocol": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "label": { + "type": "string", + "description": "The label (name) of the event protocol (such as Yaml, JSON, XML, or POJO)", + "required": true + }, + "event_protocol_plugin_class": { + "type": "string", + "description": "The class name of the class that overrides default handling of the event protocol for this carrier technology, defaults to the supplied event protocol class", + "required": false + } + } + }, + "onap.datatypes.native.apex.Environment": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "name": { + "type": "string", + "description": "The name of the environment variable", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the environment variable", + "required": true + } + } + }, + "onap.datatypes.native.apex.engineservice.Engine": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "context": { + "type": "onap.datatypes.native.apex.engineservice.engine.Context", + "description": "The properties for handling context in APEX engines, defaults to using Java maps for context", + "required": false + }, + "executors": { + "type": "map", + "description": "The plugins for policy executors used in engines such as javascript, MVEL, Jython", + "required": true, + "entry_schema": { + "description": "The plugin class path for this policy executor", + "type": "string" + } + } + } + }, + "onap.datatypes.native.apex.engineservice.engine.Context": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "distributor": { + "type": "onap.datatypes.native.apex.Plugin", + "description": "The plugin to be used for distributing context between APEX PDPs at runtime", + "required": false + }, + "schemas": { + "type": "map", + "description": "The plugins for context schemas available in APEX PDPs such as Java and Avro", + "required": false, + "entry_schema": { + "type": "onap.datatypes.native.apex.Plugin" + } + }, + "locking": { + "type": "onap.datatypes.native.apex.Plugin", + "description": "The plugin to be used for locking context in and between APEX PDPs at runtime", + "required": false + }, + "persistence": { + "type": "onap.datatypes.native.apex.Plugin", + "description": "The plugin to be used for persisting context for APEX PDPs at runtime", + "required": false + } + } + }, + "onap.datatypes.native.apex.Plugin": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "name": { + "type": "string", + "description": "The name of the executor such as Javascript, Jython or MVEL", + "required": true + }, + "plugin_class_name": { + "type": "string", + "description": "The class path of the plugin class for this executor" + } + } + } }, - "policy_id": { - "get_input": "acm_element_policy" + "policy_types": { + "onap.policies.Native": { + "derived_from": "tosca.policies.Root", + "description": "a base policy type for all native PDP policies", + "version": "1.0.0", + "name": "onap.policies.Native" + }, + "onap.policies.native.Apex": { + "derived_from": "onap.policies.Native", + "description": "a policy type for native apex policies", + "version": "1.0.0", + "name": "onap.policies.native.Apex", + "properties": { + "engine_service": { + "type": "onap.datatypes.native.apex.EngineService", + "description": "APEX Engine Service Parameters" + }, + "inputs": { + "type": "map", + "description": "Inputs for handling events coming into the APEX engine", + "entry_schema": { + "type": "onap.datatypes.native.apex.EventHandler" + } + }, + "outputs": { + "type": "map", + "description": "Outputs for handling events going out of the APEX engine", + "entry_schema": { + "type": "onap.datatypes.native.apex.EventHandler" + } + }, + "environment": { + "type": "list", + "description": "Envioronmental parameters for the APEX engine", + "entry_schema": { + "type": "onap.datatypes.native.apex.Environment" + } + } + } + } + }, + "topology_template": { + "policies": [ + { + "onap.policies.native.apex.ac.element": { + "type": "onap.policies.native.Apex", + "type_version": "1.0.0", + "properties": { + "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" + } + } + } + }, + "policy_type_impl": { + "policies": { + "key": { + "name": "APEXacElementPolicy_Policies", + "version": "0.0.1" + }, + "policyMap": { + "entry": [ + { + "key": { + "name": "ReceiveEventPolicy", + "version": "0.0.1" + }, + "value": { + "policyKey": { + "name": "ReceiveEventPolicy", + "version": "0.0.1" + }, + "template": "Freestyle", + "state": { + "entry": [ + { + "key": "DecideForwardingState", + "value": { + "stateKey": { + "parentKeyName": "ReceiveEventPolicy", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "DecideForwardingState" + }, + "trigger": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "stateOutputs": { + "entry": [ + { + "key": "CreateForwardPayload", + "value": { + "key": { + "parentKeyName": "ReceiveEventPolicy", + "parentKeyVersion": "0.0.1", + "parentLocalName": "DecideForwardingState", + "localName": "CreateForwardPayload" + }, + "outgoingEvent": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "outgoingEventReference": [ + { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + } + ], + "nextState": { + "parentKeyName": "NULL", + "parentKeyVersion": "0.0.0", + "parentLocalName": "NULL", + "localName": "NULL" + } + } + } + ] + }, + "contextAlbumReference": [], + "taskSelectionLogic": { + "key": { + "parentKeyName": "NULL", + "parentKeyVersion": "0.0.0", + "parentLocalName": "NULL", + "localName": "NULL" + }, + "logicFlavour": "UNDEFINED", + "logic": "" + }, + "stateFinalizerLogicMap": { + "entry": [] + }, + "defaultTask": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "taskReferences": { + "entry": [ + { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "value": { + "key": { + "parentKeyName": "ReceiveEventPolicy", + "parentKeyVersion": "0.0.1", + "parentLocalName": "DecideForwardingState", + "localName": "ReceiveEventPolicy" + }, + "outputType": "DIRECT", + "output": { + "parentKeyName": "ReceiveEventPolicy", + "parentKeyVersion": "0.0.1", + "parentLocalName": "DecideForwardingState", + "localName": "CreateForwardPayload" + } + } + } + ] + } + } + } + ] + }, + "firstState": "DecideForwardingState" + } + } + ] + } + }, + "tasks": { + "key": { + "name": "APEXacElementPolicy_Tasks", + "version": "0.0.1" + }, + "taskMap": { + "entry": [ + { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "inputEvent": { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "Kafka", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "KafkaResponseEvent", + "value": { + "key": { + "parentKeyName": "AcElementEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "KafkaResponseEvent" + }, + "fieldSchemaKey": { + "name": "ACEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "ENTRY" + }, + "outputEvents": { + "entry": [ + { + "key": "KafkaResponseStatusEvent", + "value": { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "APEX", + "target": "Kafka", + "parameter": { + "entry": [ + { + "key": "KafkaResponseStatusEvent", + "value": { + "key": { + "parentKeyName": "KafkaResponseStatusEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "KafkaResponseStatusEvent" + }, + "fieldSchemaKey": { + "name": "ACEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "" + } + } + ] + }, + "taskParameters": { + "entry": [] + }, + "contextAlbumReference": [ + { + "name": "ACElementAlbum", + "version": "0.0.1" + } + ], + "taskLogic": { + "key": { + "parentKeyName": "ForwardPayloadTask", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "TaskLogic" + }, + "logicFlavour": "JAVASCRIPT", + "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2022 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\nexecutor.logger.info(executor.inFields);\n\nvar msgResponse = executor.inFields.get('KafkaResponseEvent');\nexecutor.logger.info('Task in progress with mesages: ' + msgResponse);\n\nvar elementId = msgResponse.get('elementId').get('name');\n\nif (msgResponse.get('messageType') == 'STATUS' &&\n (elementId == 'onap.policy.clamp.ac.startertobridge'\n || elementId == 'onap.policy.clamp.ac.bridgetosink')) {\n\n var receiverId = '';\n if (elementId == 'onap.policy.clamp.ac.startertobridge') {\n receiverId = 'onap.policy.clamp.ac.bridge';\n } else {\n receiverId = 'onap.policy.clamp.ac.sink';\n }\n\n var elementIdResponse = new java.util.HashMap();\n elementIdResponse.put('name', receiverId);\n elementIdResponse.put('version', msgResponse.get('elementId').get('version'));\n\n var kafkaResponse = new java.util.HashMap();\n kafkaResponse.put('elementId', elementIdResponse);\n\n var message = msgResponse.get('message') + ' trace added from policy';\n kafkaResponse.put('message', message);\n kafkaResponse.put('messageType', 'STATUS');\n kafkaResponse.put('messageId', msgResponse.get('messageId'));\n kafkaResponse.put('timestamp', msgResponse.get('timestamp'));\n\n executor.logger.info('Sending forwarding Event to Ac element: ' + kafkaResponse);\n\n executor.outFields.put('KafkaResponseStatusEvent', kafkaResponse);\n}\n\ntrue;" + } + } + } + ] + } + }, + "events": { + "key": { + "name": "APEXacElementPolicy_Events", + "version": "0.0.1" + }, + "eventMap": { + "entry": [ + { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "Kafka", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "KafkaResponseEvent", + "value": { + "key": { + "parentKeyName": "AcElementEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "KafkaResponseEvent" + }, + "fieldSchemaKey": { + "name": "ACEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "ENTRY" + } + }, + { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "APEX", + "target": "Kafka", + "parameter": { + "entry": [ + { + "key": "KafkaResponseStatusEvent", + "value": { + "key": { + "parentKeyName": "KafkaResponseStatusEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "KafkaResponseStatusEvent" + }, + "fieldSchemaKey": { + "name": "ACEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "" + } + }, + { + "key": { + "name": "LogEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "LogEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.ac.element", + "source": "APEX", + "target": "file", + "parameter": { + "entry": [ + { + "key": "final_status", + "value": { + "key": { + "parentKeyName": "LogEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "final_status" + }, + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "message", + "value": { + "key": { + "parentKeyName": "LogEvent", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "message" + }, + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + }, + "toscaPolicyState": "" + } + } + ] + } + }, + "albums": { + "key": { + "name": "APEXacElementPolicy_Albums", + "version": "0.0.1" + }, + "albums": { + "entry": [ + { + "key": { + "name": "ACElementAlbum", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ACElementAlbum", + "version": "0.0.1" + }, + "scope": "policy", + "isWritable": true, + "itemSchema": { + "name": "ACEventType", + "version": "0.0.1" + } + } + } + ] + } + }, + "schemas": { + "key": { + "name": "APEXacElementPolicy_Schemas", + "version": "0.0.1" + }, + "schemas": { + "entry": [ + { + "key": { + "name": "ACEventType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ACEventType", + "version": "0.0.1" + }, + "schemaFlavour": "Json", + "schemaDefinition": "{\n \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"elementId\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"version\"\n ]\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"messageType\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"elementId\",\n \"message\",\n \"messageType\"\n ]\n}" + } + }, + { + "key": { + "name": "SimpleIntType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleIntType", + "version": "0.0.1" + }, + "schemaFlavour": "Java", + "schemaDefinition": "java.lang.Integer" + } + }, + { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "schemaFlavour": "Java", + "schemaDefinition": "java.lang.String" + } + }, + { + "key": { + "name": "UUIDType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "UUIDType", + "version": "0.0.1" + }, + "schemaFlavour": "Java", + "schemaDefinition": "java.util.UUID" + } + } + ] + } + }, + "key": { + "name": "APEXacElementPolicy", + "version": "0.0.1" + }, + "keyInformation": { + "key": { + "name": "APEXacElementPolicy_KeyInfo", + "version": "0.0.1" + }, + "keyInfoMap": { + "entry": [ + { + "key": { + "name": "ACElementAlbum", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ACElementAlbum", + "version": "0.0.1" + }, + "UUID": "7cddfab8-6d3f-3f7f-8ac3-e2eb5979c900", + "description": "Generated description for concept referred to by key \"ACElementAlbum:0.0.1\"" + } + }, + { + "key": { + "name": "ACEventType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ACEventType", + "version": "0.0.1" + }, + "UUID": "dab78794-b666-3929-a75b-70d634b04fe5", + "description": "Generated description for concept referred to by key \"ACEventType:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy", + "version": "0.0.1" + }, + "UUID": "da478611-7d77-3c46-b4be-be968769ba4e", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Albums", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Albums", + "version": "0.0.1" + }, + "UUID": "fa8dc15e-8c8d-3de3-a0f8-585b76511175", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Albums:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Events", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Events", + "version": "0.0.1" + }, + "UUID": "8508cd65-8dd2-342d-a5c6-1570810dbe2b", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Events:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_KeyInfo", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_KeyInfo", + "version": "0.0.1" + }, + "UUID": "09e6927d-c5ac-3779-919f-9333994eed22", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_KeyInfo:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Policies", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Policies", + "version": "0.0.1" + }, + "UUID": "cade3c9a-1600-3642-a6f4-315612187f46", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Policies:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Schemas", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Schemas", + "version": "0.0.1" + }, + "UUID": "5bb4a8e9-35fa-37db-9a49-48ef036a7ba9", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Schemas:0.0.1\"" + } + }, + { + "key": { + "name": "APEXacElementPolicy_Tasks", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "APEXacElementPolicy_Tasks", + "version": "0.0.1" + }, + "UUID": "2527eeec-0d1f-3094-ad3f-212622b12836", + "description": "Generated description for concept referred to by key \"APEXacElementPolicy_Tasks:0.0.1\"" + } + }, + { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "AcElementEvent", + "version": "0.0.1" + }, + "UUID": "32c013e2-2740-3986-a626-cbdf665b63e9", + "description": "Generated description for concept referred to by key \"AcElementEvent:0.0.1\"" + } + }, + { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "KafkaResponseStatusEvent", + "version": "0.0.1" + }, + "UUID": "2715cb6c-2778-3461-8b69-871e79f95935", + "description": "Generated description for concept referred to by key \"KafkaResponseStatusEvent:0.0.1\"" + } + }, + { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ForwardPayloadTask", + "version": "0.0.1" + }, + "UUID": "51defa03-1ecf-3314-bf34-2a652bce57fa", + "description": "Generated description for concept referred to by key \"ForwardPayloadTask:0.0.1\"" + } + }, + { + "key": { + "name": "LogEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "LogEvent", + "version": "0.0.1" + }, + "UUID": "c540f048-96af-35e3-a36e-e9c29377cba7", + "description": "Generated description for concept referred to by key \"LogEvent:0.0.1\"" + } + }, + { + "key": { + "name": "ReceiveEventPolicy", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "ReceiveEventPolicy", + "version": "0.0.1" + }, + "UUID": "568b7345-9de1-36d3-b6a3-9b857e6809a1", + "description": "Generated description for concept referred to by key \"ReceiveEventPolicy:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleIntType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleIntType", + "version": "0.0.1" + }, + "UUID": "153791fd-ae0a-36a7-88a5-309a7936415d", + "description": "Generated description for concept referred to by key \"SimpleIntType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "UUID": "8a4957cf-9493-3a76-8c22-a208e23259af", + "description": "Generated description for concept referred to by key \"SimpleStringType:0.0.1\"" + } + }, + { + "key": { + "name": "UUIDType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "UUIDType", + "version": "0.0.1" + }, + "UUID": "6a8cc68e-dfc8-3403-9c6d-071c886b319c", + "description": "Generated description for concept referred to by key \"UUIDType:0.0.1\"" + } + } + ] + } + } + } + }, + "eventInputParameters": { + "KafkaConsumer": { + "carrierTechnologyParameters": { + "carrierTechnology": "KAFKA", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.kafka.KafkaCarrierTechnologyParameters", + "parameters": { + "bootstrapServers": "kafka:9092", + "groupId": "apex-group-id", + "enableAutoCommit": true, + "autoCommitTime": 1000, + "sessionTimeout": 30000, + "consumerPollTime": 100, + "consumerTopicList": [ + "ac_element_msg" + ], + "keyDeserializer": "org.apache.kafka.common.serialization.StringDeserializer", + "valueDeserializer": "org.apache.kafka.common.serialization.StringDeserializer" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "pojoField": "KafkaResponseEvent" + } + }, + "eventName": "AcElementEvent", + "eventNameFilter": "AcElementEvent" + } + }, + "eventOutputParameters": { + "logOutputter": { + "carrierTechnologyParameters": { + "carrierTechnology": "FILE", + "parameters": { + "fileName": "outputevents.log" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + } + }, + "KafkaReplyProducer": { + "carrierTechnologyParameters": { + "carrierTechnology": "KAFKA", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.kafka.KafkaCarrierTechnologyParameters", + "parameters": { + "bootstrapServers": "kafka:9092", + "acks": "all", + "retries": 0, + "batchSize": 16384, + "lingerTime": 1, + "bufferMemory": 33554432, + "producerTopic": "policy_update_msg", + "keySerializer": "org.apache.kafka.common.serialization.StringSerializer", + "valueSerializer": "org.apache.kafka.common.serialization.StringSerializer" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "pojoField": "KafkaResponseStatusEvent" + } + }, + "eventNameFilter": "(LogEvent|KafkaResponseStatusEvent)" + } + } + }, + "name": "onap.policies.native.apex.ac.element", + "version": "1.0.0" + } + } + ] } } }, @@ -208,4 +1277,4 @@ } } } -}
\ No newline at end of file +} diff --git a/csit/resources/tests/data/PMSHMultipleACTosca.yaml b/csit/resources/tests/data/PMSHMultipleACTosca.yaml deleted file mode 100644 index c6f61e72..00000000 --- a/csit/resources/tests/data/PMSHMultipleACTosca.yaml +++ /dev/null @@ -1,932 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_3 -data_types: - onap.datatypes.ToscaConceptIdentifier: - derived_from: tosca.datatypes.Root - properties: - name: - type: string - required: true - version: - type: string - required: true - onap.datatype.acm.Target: - derived_from: tosca.datatypes.Root - description: >- - Definition for a entity in A&AI to perform an Automation Composition - 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.acm.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.acm.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.acm.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.acm.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 - onap.datatypes.monitoring.managedObjectDNsBasic: - constraints: [] - properties: - DN: - name: DN - type: string - typeVersion: 0.0.0 - description: Managed object distinguished name - required: true - constraints: [] - metadata: {} - name: onap.datatypes.monitoring.managedObjectDNsBasic - version: 0.0.0 - derived_from: tosca.datatypes.Root - metadata: {} - onap.datatypes.monitoring.managedObjectDNsBasics: - constraints: [] - properties: - managedObjectDNsBasic: - name: managedObjectDNsBasic - type: map - typeVersion: 0.0.0 - description: Managed object distinguished name object - required: true - constraints: [] - entry_schema: - type: onap.datatypes.monitoring.managedObjectDNsBasic - typeVersion: 0.0.0 - constraints: [] - metadata: {} - name: onap.datatypes.monitoring.managedObjectDNsBasics - version: 0.0.0 - derived_from: tosca.datatypes.Root - metadata: {} - onap.datatypes.monitoring.measurementGroup: - constraints: [] - properties: - measurementTypes: - name: measurementTypes - type: list - typeVersion: 0.0.0 - description: List of measurement types - required: true - constraints: [] - entry_schema: - type: onap.datatypes.monitoring.measurementTypes - typeVersion: 0.0.0 - constraints: [] - metadata: {} - managedObjectDNsBasic: - name: managedObjectDNsBasic - type: list - typeVersion: 0.0.0 - description: List of managed object distinguished names - required: true - constraints: [] - entry_schema: - type: onap.datatypes.monitoring.managedObjectDNsBasics - typeVersion: 0.0.0 - constraints: [] - metadata: {} - name: onap.datatypes.monitoring.measurementGroup - version: 0.0.0 - derived_from: tosca.datatypes.Root - metadata: {} - onap.datatypes.monitoring.measurementGroups: - constraints: [] - properties: - measurementGroup: - name: measurementGroup - type: map - typeVersion: 0.0.0 - description: Measurement Group - required: true - constraints: [] - entry_schema: - type: onap.datatypes.monitoring.measurementGroup - typeVersion: 0.0.0 - constraints: [] - metadata: {} - name: onap.datatypes.monitoring.measurementGroups - version: 0.0.0 - derived_from: tosca.datatypes.Root - metadata: {} - onap.datatypes.monitoring.measurementType: - constraints: [] - properties: - measurementType: - name: measurementType - type: string - typeVersion: 0.0.0 - description: Measurement type - required: true - constraints: [] - metadata: {} - name: onap.datatypes.monitoring.measurementType - version: 0.0.0 - derived_from: tosca.datatypes.Root - metadata: {} - onap.datatypes.monitoring.measurementTypes: - constraints: [] - properties: - measurementType: - name: measurementType - type: map - typeVersion: 0.0.0 - description: Measurement type object - required: true - constraints: [] - entry_schema: - type: onap.datatypes.monitoring.measurementType - typeVersion: 0.0.0 - constraints: [] - metadata: {} - name: onap.datatypes.monitoring.measurementTypes - version: 0.0.0 - derived_from: tosca.datatypes.Root - metadata: {} - onap.datatypes.monitoring.nfFilter: - constraints: [] - properties: - modelNames: - name: modelNames - type: list - typeVersion: 0.0.0 - description: List of model names - required: true - constraints: [] - entry_schema: - type: string - typeVersion: 0.0.0 - constraints: [] - metadata: {} - modelInvariantIDs: - name: modelInvariantIDs - type: list - typeVersion: 0.0.0 - description: List of model invariant IDs - required: true - constraints: [] - entry_schema: - type: string - typeVersion: 0.0.0 - constraints: [] - metadata: {} - modelVersionIDs: - name: modelVersionIDs - type: list - typeVersion: 0.0.0 - description: List of model version IDs - required: true - constraints: [] - entry_schema: - type: string - typeVersion: 0.0.0 - constraints: [] - metadata: {} - nfNames: - name: nfNames - type: list - typeVersion: 0.0.0 - description: List of network functions - required: true - constraints: [] - entry_schema: - type: string - typeVersion: 0.0.0 - constraints: [] - metadata: {} - name: onap.datatypes.monitoring.nfFilter - version: 0.0.0 - derived_from: tosca.datatypes.Root - metadata: {} - onap.datatypes.monitoring.subscription: - constraints: [] - properties: - measurementGroups: - name: measurementGroups - type: list - typeVersion: 0.0.0 - description: Measurement Groups - required: true - constraints: [] - entry_schema: - type: onap.datatypes.monitoring.measurementGroups - typeVersion: 0.0.0 - constraints: [] - metadata: {} - fileBasedGP: - name: fileBasedGP - type: integer - typeVersion: 0.0.0 - description: File based granularity period - required: true - constraints: [] - metadata: {} - fileLocation: - name: fileLocation - type: string - typeVersion: 0.0.0 - description: ROP file location - required: true - constraints: [] - metadata: {} - subscriptionName: - name: subscriptionName - type: string - typeVersion: 0.0.0 - description: Name of the subscription - required: true - constraints: [] - metadata: {} - administrativeState: - name: administrativeState - type: string - typeVersion: 0.0.0 - description: State of the subscription - required: true - constraints: - - valid_values: - - LOCKED - - UNLOCKED - metadata: {} - nfFilter: - name: nfFilter - type: map - typeVersion: 0.0.0 - description: Network function filter - required: true - constraints: [] - entry_schema: - type: onap.datatypes.monitoring.nfFilter - typeVersion: 0.0.0 - constraints: [] - metadata: {} - name: onap.datatypes.monitoring.subscription - version: 0.0.0 - derived_from: tosca.datatypes.Root - metadata: {} - org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest: - version: 1.0.0 - derived_from: tosca.datatypes.Root - properties: - restRequestId: - type: onap.datatypes.ToscaConceptIdentifier - typeVersion: 1.0.0 - required: true - description: The name and version of a REST request to be sent to a REST endpoint - httpMethod: - type: string - required: true - constraints: - - valid_values: - - POST - - PUT - - GET - - DELETE - description: The REST method to use - path: - type: string - required: true - description: The path of the REST request relative to the base URL - body: - type: string - required: false - description: The body of the REST request for PUT and POST requests - expectedResponse: - type: integer - required: true - constraints: [] - description: THe expected HTTP status code for the REST request - org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity: - version: 1.0.0 - derived_from: tosca.datatypes.Root - properties: - configurationEntityId: - type: onap.datatypes.ToscaConceptIdentifier - typeVersion: 1.0.0 - required: true - description: >- - The name and version of a Configuration Entity to be handled by the - HTTP Automation Composition Element - restSequence: - type: list - entry_schema: - type: >- - org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest - typeVersion: 1.0.0 - description: A sequence of REST commands to send to the REST endpoint - org.onap.datatypes.policy.clamp.acm.a1PmsAutomationCompositionElement.A1PolicyServiceEntity: - version: 1.0.0 - derived_from: tosca.datatypes.Root - properties: - a1PolicyServiceEntityId: - type: onap.datatypes.ToscaConceptIdentifier - typeVersion: 1.0.0 - required: true - description: The name and version of a Configuration Entity to be handled by the A1 PMS Automation Composition Element - clientId: - type: string - required: true - description: Client Id to be created - callbackUrl: - type: string - required: true - description: The callback URL to get registered - keepAliveIntervalSeconds: - type: integer - required: true - description: Keep alive interval time for the callback URL -policy_types: - onap.policies.Monitoring: - derived_from: tosca.policies.Root - description: a base policy type for all policies that govern monitoring provisioning - version: 1.0.0 - name: onap.policies.Monitoring - onap.policies.Sirisha: - derived_from: tosca.policies.Root - description: a base policy type for all policies that govern monitoring provisioning - version: 1.0.0 - name: onap.policies.Sirisha - onap.policies.monitoring.dcae-pm-subscription-handler: - properties: - pmsh_policy: - name: pmsh_policy - type: onap.datatypes.monitoring.subscription - typeVersion: 0.0.0 - description: PMSH Policy JSON - required: false - constraints: [] - metadata: {} - name: onap.policies.monitoring.dcae-pm-subscription-handler - version: 1.0.0 - derived_from: onap.policies.Monitoring - metadata: {} - onap.policies.acm.operational.Common: - derived_from: tosca.policies.Root - version: 1.0.0 - name: onap.policies.acm.operational.Common - description: > - Operational Policy for Automation Composition 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 Automation Composition 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 Automation - Composition from DCAE. - required: true - default: false - trigger: - type: string - description: >- - Initial operation to execute upon receiving an Onset event message for - the Automation Composition. - required: true - operations: - type: list - description: >- - List of operations to be performed when Automation Composition is - triggered. - required: true - entry_schema: - type: onap.datatype.acm.Operation - onap.policies.acm.operational.common.Apex: - derived_from: onap.policies.acm.operational.Common - type_version: 1.0.0 - version: 1.0.0 - name: onap.policies.acm.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.acm.Participant: - version: 1.0.1 - derived_from: tosca.nodetypes.Root - properties: - provider: - type: string - requred: false - org.onap.policy.clamp.acm.AutomationCompositionElement: - 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 automation composition - 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 - Automation Composition Element - startPhase: - type: integer - required: false - constraints: - - greater_or_equal: 0 - metadata: - common: true - description: >- - A value indicating the start phase in which this automation - composition element will be started, the first start phase is zero. - Automation Composition Elements are started in their start_phase order - and stopped in reverse start phase order. Automation Composition - 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.acm.AutomationComposition: - 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 automation composition - element - elements: - type: list - required: true - metadata: - common: true - entry_schema: - type: onap.datatypes.ToscaConceptIdentifier - description: >- - Specifies a list of automation composition element definitions that - make up this automation composition definition - org.onap.policy.clamp.acm.PolicyAutomationCompositionElement: - version: 1.0.1 - derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement - properties: - policy_type_id: - type: onap.datatypes.ToscaConceptIdentifier - requred: true - policy_id: - type: onap.datatypes.ToscaConceptIdentifier - requred: false - org.onap.policy.clamp.acm.CDSAutomationCompositionElement: - version: 1.0.1 - derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement - properties: - cds_blueprint_id: - type: onap.datatypes.ToscaConceptIdentifier - requred: true - org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement: - version: 1.0.1 - derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement - properties: - chart: - type: string - required: true - configs: - type: list - required: false - requirements: - type: string - requred: false - templates: - type: list - required: false - entry_schema: null - values: - type: string - requred: true - org.onap.policy.clamp.acm.HttpAutomationCompositionElement: - version: 1.0.1 - derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement - properties: - baseUrl: - type: string - required: true - description: >- - The base URL to be prepended to each path, identifies the host for the - REST endpoints. - httpHeaders: - type: map - required: false - entry_schema: - type: string - description: HTTP headers to send on REST requests - configurationEntities: - type: map - required: true - entry_schema: - type: >- - org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity - typeVersion: 1.0.0 - description: >- - The connfiguration entities the Automation Composition Element is - managing and their associated REST requests - org.onap.policy.clamp.acm.A1PMSAutomationCompositionElement: - version: 1.0.1 - derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement - properties: - policyServiceEntities: - type: list - required: true - entry_schema: - type: org.onap.datatypes.policy.clamp.acm.a1pmsAutomationCompositionElement.A1PolicyServiceEntity - typeVersion: 1.0.0 - description: The configuration entities of A1 PMS policy services -topology_template: - inputs: - pmsh_monitoring_policy: - type: onap.datatypes.ToscaConceptIdentifier - description: The ID of the PMSH monitoring policy to use - default: - name: >- - MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0test - version: 1.0.0 - pmsh_operational_policy: - type: onap.datatypes.ToscaConceptIdentifier - description: The ID of the PMSH operational policy to use - default: - name: operational.apex.pmcontrol - version: 1.0.0 - node_templates: - org.onap.policy.clamp.acm.PolicyParticipant: - version: 2.3.1 - type: org.onap.policy.clamp.acm.Participant - type_version: 1.0.1 - description: Participant for DCAE microservices - properties: - provider: ONAP - org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement: - version: 1.2.3 - type: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement - type_version: 1.0.0 - description: >- - Automation composition element for the monitoring policy for Performance - Management Subscription Handling - properties: - provider: Ericsson - participant_id: - name: org.onap.PM_Policy - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.PolicyParticipant - version: 2.3.1 - policy_type_id: - name: onap.policies.monitoring.pm-subscription-handler - version: 1.0.0 - policy_id: - get_input: pmsh_monitoring_policy - org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement: - version: 1.2.3 - type: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement - type_version: 1.0.0 - description: >- - Automation composition element for the operational policy for - Performance Management Subscription Handling - properties: - provider: Ericsson - participant_id: - name: org.onap.PM_Policy - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.PolicyParticipant - version: 2.3.1 - policy_type_id: - name: onap.policies.operational.pm-subscription-handler - version: 1.0.0 - policy_id: - get_input: pmsh_operational_policy - org.onap.policy.clamp.acm.KubernetesParticipant: - version: 2.3.4 - type: org.onap.policy.clamp.acm.Participant - type_version: 1.0.1 - description: Participant for K8S - properties: - provider: ONAP - org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement: - version: 1.2.3 - type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement - type_version: 1.0.0 - description: Automation composition element for the K8S microservice for PMSH - properties: - provider: ONAP - participant_id: - name: K8sParticipant0 - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.KubernetesParticipant - version: 2.3.4 - chart: - chartId: - name: dcae-pmsh - version: 10.0.0 - namespace: onap - releaseName: onap-dcae-pmsh - repository: - repoName: chartmuseum - address: 'http://chart-museum:80' - userName: onapinitializer - password: demo123456! - overrideParams: - global.masterPassword: test - org.onap.policy.clamp.acm.HttpParticipant: - version: 2.3.4 - type: org.onap.policy.clamp.acm.Participant - type_version: 1.0.1 - description: Participant for Http requests - properties: - provider: ONAP - org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement: - version: 1.2.3 - type: org.onap.policy.clamp.acm.HttpAutomationCompositionElement - type_version: 1.0.1 - description: >- - Automation composition element for the http requests of PMSH - microservice - properties: - provider: ONAP - participant_id: - name: HttpParticipant0 - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.HttpParticipant - version: 2.3.4 - uninitializedToPassiveTimeout: 180 - startPhase: 1 - baseUrl: 'https://dcae-pmsh:8443' - httpHeaders: - Content-Type: application/json - configurationEntities: - - configurationEntityId: - name: entity1 - version: 1.0.1 - restSequence: - - restRequestId: - name: request1 - version: 1.0.1 - httpMethod: POST - path: subscription - body: >- - { "subscription":{ "subscriptionName":"new_sub_01", - "operationalPolicyName":"pmsh-operational-policy", - "controlLoopName":"controlLoop-name", "nfFilter":{ "nfNames":[ - "^pnf*" ], "modelInvariantIDs":[ - "7129e420-d396-4efb-af02-6b83499b12f5" ], "modelVersionIDs":[ - "e80a6ae3-cafd-4d24-850d-e14c084a5ca7" ], "modelNames":[ - "pnf_134" ] }, "measurementGroups":[ { "measurementGroup":{ - "measurementGroupName":"msgroup_01", - "administrativeState":"UNLOCKED", "fileBasedGP":15, - "fileLocation":"/pm/pm.xml", "measurementTypes":[ { - "measurementType":"EutranCell.*" }, { - "measurementType":"EutranCellRelation.pmCounter1" }, { - "measurementType":"EutranCellRelation.pmCounter2" } ], - "managedObjectDNsBasic":[ { - "DN":"ManagedElement=1,ENodeBFunction=1,EUtranCell=CityCenter1" - }, { - "DN":"ManagedElement=1,ENodeBFunction=1,EUtranCell=CityCenter1, - EUtranCellRelation=CityCenter2" }, { - "DN":"ManagedElement=1,ENodeBFunction=1,EUtranCell=CityCenter1, - EUtranCellRelation=CityCenter3" } ] } } ] } } - expectedResponse: 201 - org.onap.k8s.acm.A1PMSAutomationCompositionParticipant: - version: 2.3.4 - type: org.onap.policy.clamp.acm.Participant - type_version: 1.0.1 - description: Participant for A1 PMS requests - properties: - provider: ONAP - org.onap.domain.database.PMSH_A1PMSAutomationCompositionElement: - version: 1.2.3 - type: org.onap.policy.clamp.acm.A1PMSAutomationCompositionElement - type_version: 1.0.1 - description: Automation composition element for the A1 PMS Requests - properties: - provider: ONAP - participantType: - name: org.onap.policy.clamp.acm.A1PMSParticipant - version: 2.3.4 - policyServiceEntities: - - a1PolicyServiceEntityId: - name: entity1 - version: 1.0.1 - clientId: firstService - callbackUrl: http://localhost - keepAliveIntervalSeconds: 0 - - a1PolicyServiceEntityId: - name: entity2 - version: 1.0.1 - clientId: secondService - callbackUrl: http://127.0.0.1 - keepAliveIntervalSeconds: 0 - org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition: - version: 1.2.3 - type: org.onap.policy.clamp.acm.AutomationComposition - type_version: 1.0.0 - description: Automation composition for Hello World - properties: - provider: ONAP - elements: - - name: >- - org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement - version: 1.2.3 - - name: >- - org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement - version: 1.2.3 - - name: >- - org.onap.domain.database.PMSH_A1PMSAutomationCompositionElement - version: 1.2.3 - - name: >- - org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement - version: 1.2.3 - - name: >- - org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement - version: 1.2.3 diff --git a/csit/resources/tests/data/ac-instance-migration-fail.yaml b/csit/resources/tests/data/ac-instance-migration-fail.yaml new file mode 100644 index 00000000..1e6bd78c --- /dev/null +++ b/csit/resources/tests/data/ac-instance-migration-fail.yaml @@ -0,0 +1,99 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2024 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========================================================= +name: Instance-Migration-Fail +version: 1.0.1 +compositionId: COMPOSITIONIDPLACEHOLDER +instanceId: INSTACEIDPLACEHOLDER +compositionTargetId: COMPOSITIONTARGETIDPLACEHOLDER +description: Demo automation composition instance 0 +elements: + + 709c62b3-8918-41b9-a747-d21eb79c6c34: + id: 709c62b3-8918-41b9-a747-d21eb79c6c34 + definition: + name: onap.policy.clamp.ac.element.Sim_StarterAutomationCompositionElement + version: 1.2.3 + description: Starter Automation Composition Element for the Demo + properties: + baseUrl: http://address:30800 + httpHeaders: + Content-Type: application/json + Authorization: Basic YWNtVXNlcjp6YiFYenRHMzQ= + configurationEntities: + - configurationEntityId: + name: onap.policy.clamp.ac.starter + version: 1.0.0 + restSequence: + - restRequestId: + name: request1 + version: 1.0.1 + httpMethod: POST + path: /onap/policy/clamp/acelement/v2/activate + body: '{ "receiverId": { "name": "onap.policy.clamp.ac.startertobridge", "version": "1.0.0" }, "timerMs": 20000, "elementType": "STARTER", "topicParameterGroup": { "server": "message-router:3904", "listenerTopic": "POLICY_UPDATE_MSG", "publisherTopic": "AC_ELEMENT_MSG", "fetchTimeout": 15000, "topicCommInfrastructure": "dmaap" } }' + expectedResponse: 201 + myParameterToUpdate: text + + 709c62b3-8918-41b9-a747-d21eb79c6c35: + id: 709c62b3-8918-41b9-a747-d21eb79c6c35 + definition: + name: onap.policy.clamp.ac.element.Sim_BridgeAutomationCompositionElement + version: 1.2.3 + description: Bridge Automation Composition Element for the Demo + properties: + baseUrl: http://address:30801 + httpHeaders: + Content-Type: application/json + Authorization: Basic YWNtVXNlcjp6YiFYenRHMzQ= + configurationEntities: + - configurationEntityId: + name: onap.policy.clamp.ac.bridge + version: 1.0.0 + restSequence: + - restRequestId: + name: request2 + version: 1.0.1 + httpMethod: POST + path: /onap/policy/clamp/acelement/v2/activate + body: '{ "receiverId": { "name": "onap.policy.clamp.ac.bridgetosink", "version": "1.0.0" }, "timerMs": 20000, "elementType": "BRIDGE", "topicParameterGroup": { "server": "message-router:3904", "listenerTopic": "POLICY_UPDATE_MSG", "publisherTopic": "AC_ELEMENT_MSG", "fetchTimeout": 15000, "topicCommInfrastructure": "dmaap" } }' + expectedResponse: 201 + myParameterToUpdate: text + + 709c62b3-8918-41b9-a747-d21eb79c6c36: + id: 709c62b3-8918-41b9-a747-d21eb79c6c36 + definition: + name: onap.policy.clamp.ac.element.Sim_SinkAutomationCompositionElement + version: 1.2.3 + description: Sink Automation Composition Element for the Demo + properties: + baseUrl: http://address:30802 + httpHeaders: + Content-Type: application/json + Authorization: Basic YWNtVXNlcjp6YiFYenRHMzQ= + configurationEntities: + - configurationEntityId: + name: onap.policy.clamp.ac.sink + version: 1.0.0 + restSequence: + - restRequestId: + name: request3 + version: 1.0.1 + httpMethod: POST + path: /onap/policy/clamp/acelement/v2/activate + body: '{ "receiverId": { "name": "onap.policy.clamp.ac.sink", "version": "1.0.0" }, "timerMs": 20000, "elementType": "SINK", "topicParameterGroup": { "server": "message-router", "listenerTopic": "POLICY_UPDATE_MSG", "publisherTopic": "AC_ELEMENT_MSG", "fetchTimeout": 15000, "topicCommInfrastructure": "dmaap" } }' + expectedResponse: 201 + myParameterToUpdate: text diff --git a/csit/resources/tests/data/acelement-usecase.yaml b/csit/resources/tests/data/acelement-usecase.yaml index 937ed6e6..b727a68f 100644 --- a/csit/resources/tests/data/acelement-usecase.yaml +++ b/csit/resources/tests/data/acelement-usecase.yaml @@ -27,176 +27,6 @@ data_types: type: string required: true - onap.datatypes.native.apex.EngineService: - derived_from: tosca.datatypes.Root - properties: - name: - type: string - description: Specifies the engine name - required: false - default: "ApexEngineService" - version: - type: string - description: Specifies the engine version in double dotted format - required: false - default: "1.0.0" - id: - type: integer - description: Specifies the engine id - required: true - instance_count: - type: integer - description: Specifies the number of engine threads that should be run - required: true - deployment_port: - type: integer - description: Specifies the port to connect to for engine administration - required: false - default: 1 - policy_model_file_name: - type: string - description: The name of the file from which to read the APEX policy model - required: false - policy_type_impl: - type: string - description: The policy type implementation from which to read the APEX policy model - required: false - periodic_event_period: - type: string - description: The time interval in milliseconds for the periodic scanning event, 0 means don't scan - required: false - engine: - type: onap.datatypes.native.apex.engineservice.Engine - description: The parameters for all engines in the APEX engine service - required: true - onap.datatypes.native.apex.EventHandler: - derived_from: tosca.datatypes.Root - properties: - name: - type: string - description: Specifies the event handler name, if not specified this is set to the key name - required: false - carrier_technology: - type: onap.datatypes.native.apex.CarrierTechnology - description: Specifies the carrier technology of the event handler (such as REST/Web Socket/Kafka) - required: true - event_protocol: - type: onap.datatypes.native.apex.EventProtocol - description: Specifies the event protocol of events for the event handler (such as Yaml/JSON/XML/POJO) - required: true - event_name: - type: string - description: Specifies the event name for events on this event handler, if not specified, the event name is read from or written to the event being received or sent - required: false - event_name_filter: - type: string - description: Specifies a filter as a regular expression, events that do not match the filter are dropped, the default is to let all events through - required: false - synchronous_mode: - type: boolean - description: Specifies the event handler is syncronous (receive event and send response) - required: false - default: false - synchronous_peer: - type: string - description: The peer event handler (output for input or input for output) of this event handler in synchronous mode, this parameter is mandatory if the event handler is in synchronous mode - required: false - synchronous_timeout: - type: integer - description: The timeout in milliseconds for responses to be issued by APEX torequests, this parameter is mandatory if the event handler is in synchronous mode - required: false - requestor_mode: - type: boolean - description: Specifies the event handler is in requestor mode (send event and wait for response mode) - required: false - default: false - requestor_peer: - type: string - description: The peer event handler (output for input or input for output) of this event handler in requestor mode, this parameter is mandatory if the event handler is in requestor mode - required: false - requestor_timeout: - type: integer - description: The timeout in milliseconds for wait for responses to requests, this parameter is mandatory if the event handler is in requestor mode - required: false - onap.datatypes.native.apex.CarrierTechnology: - derived_from: tosca.datatypes.Root - properties: - label: - type: string - description: The label (name) of the carrier technology (such as REST, Kafka, WebSocket) - required: true - plugin_parameter_class_name: - type: string - description: The class name of the class that overrides default handling of event input or output for this carrier technology, defaults to the supplied input or output class - required: false - onap.datatypes.native.apex.EventProtocol: - derived_from: tosca.datatypes.Root - properties: - label: - type: string - description: The label (name) of the event protocol (such as Yaml, JSON, XML, or POJO) - required: true - event_protocol_plugin_class: - type: string - description: The class name of the class that overrides default handling of the event protocol for this carrier technology, defaults to the supplied event protocol class - required: false - onap.datatypes.native.apex.Environment: - derived_from: tosca.datatypes.Root - properties: - name: - type: string - description: The name of the environment variable - required: true - value: - type: string - description: The value of the environment variable - required: true - onap.datatypes.native.apex.engineservice.Engine: - derived_from: tosca.datatypes.Root - properties: - context: - type: onap.datatypes.native.apex.engineservice.engine.Context - description: The properties for handling context in APEX engines, defaults to using Java maps for context - required: false - executors: - type: map - description: The plugins for policy executors used in engines such as javascript, MVEL, Jython - required: true - entry_schema: - description: The plugin class path for this policy executor - type: string - onap.datatypes.native.apex.engineservice.engine.Context: - derived_from: tosca.datatypes.Root - properties: - distributor: - type: onap.datatypes.native.apex.Plugin - description: The plugin to be used for distributing context between APEX PDPs at runtime - required: false - schemas: - type: map - description: The plugins for context schemas available in APEX PDPs such as Java and Avro - required: false - entry_schema: - type: onap.datatypes.native.apex.Plugin - locking: - type: onap.datatypes.native.apex.Plugin - description: The plugin to be used for locking context in and between APEX PDPs at runtime - required: false - persistence: - type: onap.datatypes.native.apex.Plugin - description: The plugin to be used for persisting context for APEX PDPs at runtime - required: false - onap.datatypes.native.apex.Plugin: - derived_from: tosca.datatypes.Root - properties: - name: - type: string - description: The name of the executor such as Javascript, Jython or MVEL - required: true - plugin_class_name: - type: string - description: The class path of the plugin class for this executor - org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest: version: 1.0.0 derived_from: tosca.datatypes.Root @@ -244,37 +74,6 @@ data_types: type_version: 1.0.0 description: A sequence of REST commands to send to the REST endpoint -policy_types: - onap.policies.Native: - derived_from: tosca.policies.Root - description: a base policy type for all native PDP policies - version: 1.0.0 - name: onap.policies.Native - onap.policies.native.Apex: - derived_from: onap.policies.Native - description: a policy type for native apex policies - version: 1.0.0 - name: onap.policies.native.Apex - properties: - engine_service: - type: onap.datatypes.native.apex.EngineService - description: APEX Engine Service Parameters - inputs: - type: map - description: Inputs for handling events coming into the APEX engine - entry_schema: - type: onap.datatypes.native.apex.EventHandler - outputs: - type: map - description: Outputs for handling events going out of the APEX engine - entry_schema: - type: onap.datatypes.native.apex.EventHandler - environment: - type: list - description: Envioronmental parameters for the APEX engine - entry_schema: - type: onap.datatypes.native.apex.Environment - node_types: org.onap.policy.clamp.acm.Participant: version: 1.0.1 @@ -536,601 +335,3 @@ topology_template: version: 1.2.3 - name: onap.policy.clamp.ac.element.Http_SinkAutomationCompositionElement version: 1.2.3 - - policies: - - onap.policies.native.apex.ac.element: - type: onap.policies.native.Apex - type_version: 1.0.0 - properties: - 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 - policy_type_impl: - policies: - key: - name: APEXacElementPolicy_Policies - version: 0.0.1 - policyMap: - entry: - - key: - name: ReceiveEventPolicy - version: 0.0.1 - value: - policyKey: - name: ReceiveEventPolicy - version: 0.0.1 - template: Freestyle - state: - entry: - - key: DecideForwardingState - value: - stateKey: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: DecideForwardingState - trigger: - name: AcElementEvent - version: 0.0.1 - stateOutputs: - entry: - - key: CreateForwardPayload - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: DecideForwardingState - localName: CreateForwardPayload - outgoingEvent: - name: DmaapResponseStatusEvent - version: 0.0.1 - outgoingEventReference: - - name: DmaapResponseStatusEvent - version: 0.0.1 - nextState: - parentKeyName: 'NULL' - parentKeyVersion: 0.0.0 - parentLocalName: 'NULL' - localName: 'NULL' - contextAlbumReference: [] - taskSelectionLogic: - key: - parentKeyName: 'NULL' - parentKeyVersion: 0.0.0 - parentLocalName: 'NULL' - localName: 'NULL' - logicFlavour: UNDEFINED - logic: '' - stateFinalizerLogicMap: - entry: [] - defaultTask: - name: ForwardPayloadTask - version: 0.0.1 - taskReferences: - entry: - - key: - name: ForwardPayloadTask - version: 0.0.1 - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: DecideForwardingState - localName: ReceiveEventPolicy - outputType: DIRECT - output: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: DecideForwardingState - localName: CreateForwardPayload - firstState: DecideForwardingState - tasks: - key: - name: APEXacElementPolicy_Tasks - version: 0.0.1 - taskMap: - entry: - - key: - name: ForwardPayloadTask - version: 0.0.1 - value: - key: - name: ForwardPayloadTask - version: 0.0.1 - inputEvent: - key: - name: AcElementEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.ac.element - source: Dmaap - target: APEX - parameter: - entry: - - key: DmaapResponseEvent - value: - key: - parentKeyName: AcElementEvent - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: DmaapResponseEvent - fieldSchemaKey: - name: ACEventType - version: 0.0.1 - optional: false - toscaPolicyState: ENTRY - outputEvents: - entry: - - key: DmaapResponseStatusEvent - value: - key: - name: DmaapResponseStatusEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.ac.element - source: APEX - target: Dmaap - parameter: - entry: - - key: DmaapResponseStatusEvent - value: - key: - parentKeyName: DmaapResponseStatusEvent - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: DmaapResponseStatusEvent - fieldSchemaKey: - name: ACEventType - version: 0.0.1 - optional: false - toscaPolicyState: '' - taskParameters: - entry: [] - contextAlbumReference: - - name: ACElementAlbum - version: 0.0.1 - taskLogic: - key: - parentKeyName: ForwardPayloadTask - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: TaskLogic - logicFlavour: JAVASCRIPT - logic: "/*\n * ============LICENSE_START=======================================================\n\ - \ * Copyright (C) 2022 Nordix. All rights reserved.\n * ================================================================================\n\ - \ * Licensed under the Apache License, Version 2.0 (the 'License');\n\ - \ * you may not use this file except in compliance with the\ - \ License.\n * You may obtain a copy of the License at\n *\n\ - \ * http://www.apache.org/licenses/LICENSE-2.0\n *\n\ - \ * Unless required by applicable law or agreed to in writing,\ - \ software\n * distributed under the License is distributed\ - \ on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS\ - \ OF ANY KIND, either express or implied.\n * See the License\ - \ for the specific language governing permissions and\n *\ - \ limitations under the License.\n *\n * SPDX-License-Identifier:\ - \ Apache-2.0\n * ============LICENSE_END=========================================================\n\ - \ */\n\nexecutor.logger.info(executor.subject.id);\nexecutor.logger.info(executor.inFields);\n\ - \nvar msgResponse = executor.inFields.get('DmaapResponseEvent');\n\ - executor.logger.info('Task in progress with mesages: ' + msgResponse);\n\ - \nvar elementId = msgResponse.get('elementId').get('name');\n\ - \nif (msgResponse.get('messageType') == 'STATUS' &&\n (elementId\ - \ == 'onap.policy.clamp.ac.startertobridge'\n || elementId\ - \ == 'onap.policy.clamp.ac.bridgetosink')) {\n\n var receiverId\ - \ = '';\n if (elementId == 'onap.policy.clamp.ac.startertobridge')\ - \ {\n receiverId = 'onap.policy.clamp.ac.bridge';\n\ - \ } else {\n receiverId = 'onap.policy.clamp.ac.sink';\n\ - \ }\n\n var elementIdResponse = new java.util.HashMap();\n\ - \ elementIdResponse.put('name', receiverId);\n elementIdResponse.put('version',\ - \ msgResponse.get('elementId').get('version'));\n\n var\ - \ dmaapResponse = new java.util.HashMap();\n dmaapResponse.put('elementId',\ - \ elementIdResponse);\n\n var message = msgResponse.get('message')\ - \ + ' trace added from policy';\n dmaapResponse.put('message',\ - \ message);\n dmaapResponse.put('messageType', 'STATUS');\n\ - \ dmaapResponse.put('messageId', msgResponse.get('messageId'));\n\ - \ dmaapResponse.put('timestamp', msgResponse.get('timestamp'));\n\ - \n executor.logger.info('Sending forwarding Event to Ac\ - \ element: ' + dmaapResponse);\n\n executor.outFields.put('DmaapResponseStatusEvent',\ - \ dmaapResponse);\n}\n\ntrue;" - events: - key: - name: APEXacElementPolicy_Events - version: 0.0.1 - eventMap: - entry: - - key: - name: AcElementEvent - version: 0.0.1 - value: - key: - name: AcElementEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.ac.element - source: Dmaap - target: APEX - parameter: - entry: - - key: DmaapResponseEvent - value: - key: - parentKeyName: AcElementEvent - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: DmaapResponseEvent - fieldSchemaKey: - name: ACEventType - version: 0.0.1 - optional: false - toscaPolicyState: ENTRY - - key: - name: DmaapResponseStatusEvent - version: 0.0.1 - value: - key: - name: DmaapResponseStatusEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.ac.element - source: APEX - target: Dmaap - parameter: - entry: - - key: DmaapResponseStatusEvent - value: - key: - parentKeyName: DmaapResponseStatusEvent - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: DmaapResponseStatusEvent - fieldSchemaKey: - name: ACEventType - version: 0.0.1 - optional: false - toscaPolicyState: '' - - key: - name: LogEvent - version: 0.0.1 - value: - key: - name: LogEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.ac.element - source: APEX - target: file - parameter: - entry: - - key: final_status - value: - key: - parentKeyName: LogEvent - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: final_status - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: message - value: - key: - parentKeyName: LogEvent - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: message - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - toscaPolicyState: '' - albums: - key: - name: APEXacElementPolicy_Albums - version: 0.0.1 - albums: - entry: - - key: - name: ACElementAlbum - version: 0.0.1 - value: - key: - name: ACElementAlbum - version: 0.0.1 - scope: policy - isWritable: true - itemSchema: - name: ACEventType - version: 0.0.1 - schemas: - key: - name: APEXacElementPolicy_Schemas - version: 0.0.1 - schemas: - entry: - - key: - name: ACEventType - version: 0.0.1 - value: - key: - name: ACEventType - version: 0.0.1 - schemaFlavour: Json - schemaDefinition: "{\n \"$schema\": \"http://json-schema.org/draft-04/schema#\"\ - ,\n \"type\": \"object\",\n \"properties\": {\n \ - \ \"elementId\": {\n \"type\": \"object\",\n \ - \ \"properties\": {\n \"name\": {\n \ - \ \"type\": \"string\"\n },\n\ - \ \"version\": {\n \"type\"\ - : \"string\"\n }\n },\n \ - \ \"required\": [\n \"name\",\n \ - \ \"version\"\n ]\n },\n \"message\"\ - : {\n \"type\": \"string\"\n },\n \"\ - messageType\": {\n \"type\": \"string\"\n \ - \ }\n },\n \"required\": [\n \"elementId\",\n \ - \ \"message\",\n \"messageType\"\n ]\n}" - - key: - name: SimpleIntType - version: 0.0.1 - value: - key: - name: SimpleIntType - version: 0.0.1 - schemaFlavour: Java - schemaDefinition: java.lang.Integer - - key: - name: SimpleStringType - version: 0.0.1 - value: - key: - name: SimpleStringType - version: 0.0.1 - schemaFlavour: Java - schemaDefinition: java.lang.String - - key: - name: UUIDType - version: 0.0.1 - value: - key: - name: UUIDType - version: 0.0.1 - schemaFlavour: Java - schemaDefinition: java.util.UUID - key: - name: APEXacElementPolicy - version: 0.0.1 - keyInformation: - key: - name: APEXacElementPolicy_KeyInfo - version: 0.0.1 - keyInfoMap: - entry: - - key: - name: ACElementAlbum - version: 0.0.1 - value: - key: - name: ACElementAlbum - version: 0.0.1 - UUID: 7cddfab8-6d3f-3f7f-8ac3-e2eb5979c900 - description: Generated description for concept referred to by - key "ACElementAlbum:0.0.1" - - key: - name: ACEventType - version: 0.0.1 - value: - key: - name: ACEventType - version: 0.0.1 - UUID: dab78794-b666-3929-a75b-70d634b04fe5 - description: Generated description for concept referred to by - key "ACEventType:0.0.1" - - key: - name: APEXacElementPolicy - version: 0.0.1 - value: - key: - name: APEXacElementPolicy - version: 0.0.1 - UUID: da478611-7d77-3c46-b4be-be968769ba4e - description: Generated description for concept referred to by - key "APEXacElementPolicy:0.0.1" - - key: - name: APEXacElementPolicy_Albums - version: 0.0.1 - value: - key: - name: APEXacElementPolicy_Albums - version: 0.0.1 - UUID: fa8dc15e-8c8d-3de3-a0f8-585b76511175 - description: Generated description for concept referred to by - key "APEXacElementPolicy_Albums:0.0.1" - - key: - name: APEXacElementPolicy_Events - version: 0.0.1 - value: - key: - name: APEXacElementPolicy_Events - version: 0.0.1 - UUID: 8508cd65-8dd2-342d-a5c6-1570810dbe2b - description: Generated description for concept referred to by - key "APEXacElementPolicy_Events:0.0.1" - - key: - name: APEXacElementPolicy_KeyInfo - version: 0.0.1 - value: - key: - name: APEXacElementPolicy_KeyInfo - version: 0.0.1 - UUID: 09e6927d-c5ac-3779-919f-9333994eed22 - description: Generated description for concept referred to by - key "APEXacElementPolicy_KeyInfo:0.0.1" - - key: - name: APEXacElementPolicy_Policies - version: 0.0.1 - value: - key: - name: APEXacElementPolicy_Policies - version: 0.0.1 - UUID: cade3c9a-1600-3642-a6f4-315612187f46 - description: Generated description for concept referred to by - key "APEXacElementPolicy_Policies:0.0.1" - - key: - name: APEXacElementPolicy_Schemas - version: 0.0.1 - value: - key: - name: APEXacElementPolicy_Schemas - version: 0.0.1 - UUID: 5bb4a8e9-35fa-37db-9a49-48ef036a7ba9 - description: Generated description for concept referred to by - key "APEXacElementPolicy_Schemas:0.0.1" - - key: - name: APEXacElementPolicy_Tasks - version: 0.0.1 - value: - key: - name: APEXacElementPolicy_Tasks - version: 0.0.1 - UUID: 2527eeec-0d1f-3094-ad3f-212622b12836 - description: Generated description for concept referred to by - key "APEXacElementPolicy_Tasks:0.0.1" - - key: - name: AcElementEvent - version: 0.0.1 - value: - key: - name: AcElementEvent - version: 0.0.1 - UUID: 32c013e2-2740-3986-a626-cbdf665b63e9 - description: Generated description for concept referred to by - key "AcElementEvent:0.0.1" - - key: - name: DmaapResponseStatusEvent - version: 0.0.1 - value: - key: - name: DmaapResponseStatusEvent - version: 0.0.1 - UUID: 2715cb6c-2778-3461-8b69-871e79f95935 - description: Generated description for concept referred to by - key "DmaapResponseStatusEvent:0.0.1" - - key: - name: ForwardPayloadTask - version: 0.0.1 - value: - key: - name: ForwardPayloadTask - version: 0.0.1 - UUID: 51defa03-1ecf-3314-bf34-2a652bce57fa - description: Generated description for concept referred to by - key "ForwardPayloadTask:0.0.1" - - key: - name: LogEvent - version: 0.0.1 - value: - key: - name: LogEvent - version: 0.0.1 - UUID: c540f048-96af-35e3-a36e-e9c29377cba7 - description: Generated description for concept referred to by - key "LogEvent:0.0.1" - - key: - name: ReceiveEventPolicy - version: 0.0.1 - value: - key: - name: ReceiveEventPolicy - version: 0.0.1 - UUID: 568b7345-9de1-36d3-b6a3-9b857e6809a1 - description: Generated description for concept referred to by - key "ReceiveEventPolicy:0.0.1" - - key: - name: SimpleIntType - version: 0.0.1 - value: - key: - name: SimpleIntType - version: 0.0.1 - UUID: 153791fd-ae0a-36a7-88a5-309a7936415d - description: Generated description for concept referred to by - key "SimpleIntType:0.0.1" - - key: - name: SimpleStringType - version: 0.0.1 - value: - key: - name: SimpleStringType - version: 0.0.1 - UUID: 8a4957cf-9493-3a76-8c22-a208e23259af - description: Generated description for concept referred to by - key "SimpleStringType:0.0.1" - - key: - name: UUIDType - version: 0.0.1 - value: - key: - name: UUIDType - version: 0.0.1 - UUID: 6a8cc68e-dfc8-3403-9c6d-071c886b319c - description: Generated description for concept referred to by - key "UUIDType:0.0.1" - eventInputParameters: - DmaapConsumer: - carrierTechnologyParameters: - carrierTechnology: KAFKA - parameterClassName: org.onap.policy.apex.plugins.event.carrier.kafka.KafkaCarrierTechnologyParameters - parameters: - bootstrapServers: kafka:9092 - groupId: clamp-grp - enableAutoCommit: true - autoCommitTime: 1000 - sessionTimeout: 30000 - consumerPollTime: 100 - consumerTopicList: - - ac_element_msg - keyDeserializer: org.apache.kafka.common.serialization.StringDeserializer - valueDeserializer: org.apache.kafka.common.serialization.StringDeserializer - kafkaProperties: [ ] - 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: KAFKA - parameterClassName: org.onap.policy.apex.plugins.event.carrier.kafka.KafkaCarrierTechnologyParameters - parameters: - bootstrapServers: kafka:9092 - acks: all - retries: 0 - batchSize: 16384 - lingerTime: 1 - bufferMemory: 33554432 - producerTopic: policy_update_msg - keySerializer: org.apache.kafka.common.serialization.StringSerializer - valueSerializer: org.apache.kafka.common.serialization.StringSerializer - kafkaProperties: [ ] - eventProtocolParameters: - eventProtocol: JSON - parameters: - pojoField: DmaapResponseStatusEvent - eventNameFilter: LogEvent|DmaapResponseStatusEvent - name: onap.policies.native.apex.ac.element - version: 1.0.0 diff --git a/csit/resources/tests/policy-clamp-test.robot b/csit/resources/tests/policy-clamp-test.robot index 1c2ea031..b2e30fc8 100644 --- a/csit/resources/tests/policy-clamp-test.robot +++ b/csit/resources/tests/policy-clamp-test.robot @@ -283,6 +283,37 @@ AutomationCompositionMigrationTo VerifyMigratedElementsRuntime ${compositionToId} ${instanceMigrationId} VerifyMigratedElementsSim ${instanceMigrationId} +FailAutomationCompositionMigration + [Documentation] Fail Migration of an automation composition. + SetParticipantSimFail + ${auth}= ClampAuth + ${postyaml}= Get file ${CURDIR}/data/ac-instance-migration-fail.yaml + ${updatedpostyaml}= Replace String ${postyaml} COMPOSITIONIDPLACEHOLDER ${compositionToId} + ${updatedpostyaml}= Replace String ${updatedpostyaml} COMPOSITIONTARGETIDPLACEHOLDER ${compositionFromId} + ${updatedpostyaml}= Replace String ${updatedpostyaml} INSTACEIDPLACEHOLDER ${instanceMigrationId} + ${updatedpostyaml}= Replace String ${updatedpostyaml} TEXTPLACEHOLDER TextForMigration + ${resp}= MakeYamlPostRequest ACM ${POLICY_RUNTIME_ACM_IP} /onap/policy/clamp/acm/v2/compositions/${compositionToId}/instances ${updatedpostyaml} ${auth} + Should Be Equal As Strings ${resp.status_code} 200 + Wait Until Keyword Succeeds 2 min 5 sec VerifyStateChangeResult ${compositionToId} ${instanceMigrationId} FAILED + +FailDePrimeACDefinitionsFrom + [Documentation] Fail DePrime automation composition definition migration From. + SetParticipantSimFail + ${auth}= ClampAuth + ${postjson}= Get file ${CURDIR}/data/ACDepriming.json + ${resp}= MakeJsonPutRequest ACM ${POLICY_RUNTIME_ACM_IP} /onap/policy/clamp/acm/v2/compositions/${compositionFromId} ${postjson} ${auth} + Should Be Equal As Strings ${resp.status_code} 202 + Wait Until Keyword Succeeds 2 min 5 sec VerifyFailedPriming ${compositionFromId} + +DePrimeACDefinitionsFrom + [Documentation] DePrime automation composition definition migration From. + SetParticipantSimSuccess + ${auth}= ClampAuth + ${postjson}= Get file ${CURDIR}/data/ACDepriming.json + ${resp}= MakeJsonPutRequest ACM ${POLICY_RUNTIME_ACM_IP} /onap/policy/clamp/acm/v2/compositions/${compositionFromId} ${postjson} ${auth} + Should Be Equal As Strings ${resp.status_code} 202 + Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming ${compositionFromId} COMMISSIONED + UnDeployAutomationComposition [Documentation] UnDeploy automation composition. ${auth}= ClampAuth @@ -352,24 +383,6 @@ DePrimeACDefinitions Should Be Equal As Strings ${resp.status_code} 202 Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming ${compositionId} COMMISSIONED -FailDePrimeACDefinitionsFrom - [Documentation] Fail DePrime automation composition definition migration From. - SetParticipantSimFail - ${auth}= ClampAuth - ${postjson}= Get file ${CURDIR}/data/ACDepriming.json - ${resp}= MakeJsonPutRequest ACM ${POLICY_RUNTIME_ACM_IP} /onap/policy/clamp/acm/v2/compositions/${compositionFromId} ${postjson} ${auth} - Should Be Equal As Strings ${resp.status_code} 202 - Wait Until Keyword Succeeds 2 min 5 sec VerifyFailedPriming ${compositionFromId} - -DePrimeACDefinitionsFrom - [Documentation] DePrime automation composition definition migration From. - SetParticipantSimSuccess - ${auth}= ClampAuth - ${postjson}= Get file ${CURDIR}/data/ACDepriming.json - ${resp}= MakeJsonPutRequest ACM ${POLICY_RUNTIME_ACM_IP} /onap/policy/clamp/acm/v2/compositions/${compositionFromId} ${postjson} ${auth} - Should Be Equal As Strings ${resp.status_code} 202 - Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming ${compositionFromId} COMMISSIONED - DePrimeACDefinitionsTo [Documentation] DePrime automation composition definition migration To. ${auth}= ClampAuth |