From a3ac9c950b9b61c9e64d9a161a9c973a144ee190 Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Mon, 4 Mar 2024 13:59:11 +0000 Subject: Update Performance tests of ACM runtime and participant Update Performance tests of ACM runtime and participant with large number of compositions and instances. Issue-ID: POLICY-4967 Change-Id: Ib1f74bbc2e957c6af90b49ddaef65f480651a426 Signed-off-by: FrancescoFioraEst --- .../src/main/resources/testplans/performance.jmx | 3044 ++++++-------------- 1 file changed, 905 insertions(+), 2139 deletions(-) diff --git a/testsuites/performance/src/main/resources/testplans/performance.jmx b/testsuites/performance/src/main/resources/testplans/performance.jmx index 3360d1aae..4a7200b48 100644 --- a/testsuites/performance/src/main/resources/testplans/performance.jmx +++ b/testsuites/performance/src/main/resources/testplans/performance.jmx @@ -38,9 +38,9 @@ ${HOME_PATH}/acm_perf/ = - - DURATION - ${__P(DURATION,14400)} + + INSTANCES + ${__P(INSTANCES,100)} = @@ -100,1536 +100,6 @@ true - - true - - - - false - { - "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.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", - "properties": { - "restRequestId": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "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", - "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", - "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", - "derived_from": "tosca.nodetypes.Root", - "properties": { - "provider": { - "type": "string", - "required": 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" - }, - "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.0", - "derived_from": "org.onap.policy.clamp.acm.AutomationCompositionElement", - "properties": { - "policy_type_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "required": true - }, - "policy_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "required": false - } - } - }, - "org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement": { - "version": "1.0.0", - "derived_from": "org.onap.policy.clamp.acm.AutomationCompositionElement", - "properties": { - "chart": { - "type": "string", - "required": true - }, - "configs": { - "type": "list", - "required": false - }, - "requirements": { - "type": "string", - "required": false - }, - "templates": { - "type": "list", - "required": false, - "entry_schema": null - }, - "values": { - "type": "string", - "required": true - } - } - }, - "org.onap.policy.clamp.acm.HttpAutomationCompositionElement": { - "version": "1.0.0", - "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", - "type_version": "1.0.0" - }, - "description": "The connfiguration entities the Automation Composition Element is managing and their associated REST requests" - } - } - } - }, - "topology_template": { - "inputs": { - "acm_element_policy": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "description": "The ID of the operational policy to use", - "default": { - "name": "onap.policies.native.apex.ac.element", - "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 Policy microservices", - "properties": { - "provider": "ONAP" - } - }, - "onap.policy.clamp.ac.element.Policy_AutomationCompositionElement": { - "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", - "startPhase": 0 - } - }, - "org.onap.k8s.acm.K8SAutomationCompositionParticipant": { - "version": "2.3.4", - "type": "org.onap.policy.clamp.acm.Participant", - "type_version": "1.0.1", - "description": "Participant for K8S", - "properties": { - "provider": "ONAP" - } - }, - "onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement": { - "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 AC Element Starter", - "properties": { - "provider": "ONAP", - "startPhase": 0, - "uninitializedToPassiveTimeout": 300, - "podStatusCheckInterval": 30 - } - }, - "onap.policy.clamp.ac.element.K8S_BridgeAutomationCompositionElement": { - "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 AC Element Bridge", - "properties": { - "provider": "ONAP", - "startPhase": 0, - "uninitializedToPassiveTimeout": 300, - "podStatusCheckInterval": 30 - } - }, - "onap.policy.clamp.ac.element.K8S_SinkAutomationCompositionElement": { - "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 AC Element Sink", - "properties": { - "provider": "ONAP", - "startPhase": 0, - "uninitializedToPassiveTimeout": 300, - "podStatusCheckInterval": 30 - } - }, - "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" - } - }, - "onap.policy.clamp.ac.element.Http_StarterAutomationCompositionElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.acm.HttpAutomationCompositionElement", - "type_version": "1.0.0", - "description": "Automation composition element for the http requests of AC Element Starter microservice", - "properties": { - "provider": "ONAP", - "uninitializedToPassiveTimeout": 300, - "startPhase": 1 - } - }, - "onap.policy.clamp.ac.element.Http_BridgeAutomationCompositionElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.acm.HttpAutomationCompositionElement", - "type_version": "1.0.0", - "description": "Automation composition element for the http requests of AC Element Bridge microservice", - "properties": { - "provider": "ONAP", - "uninitializedToPassiveTimeout": 300, - "startPhase": 1 - } - }, - "onap.policy.clamp.ac.element.Http_SinkAutomationCompositionElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.acm.HttpAutomationCompositionElement", - "type_version": "1.0.0", - "description": "Automation composition element for the http requests of AC Element Sink microservice", - "properties": { - "provider": "ONAP", - "uninitializedToPassiveTimeout": 300, - "startPhase": 1 - } - }, - "onap.policy.clamp.ac.element.AutomationCompositionDefinition": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.acm.AutomationComposition", - "type_version": "1.0.1", - "description": "Automation composition for Demo", - "properties": { - "provider": "ONAP", - "elements": [ - { - "name": "onap.policy.clamp.ac.element.Policy_AutomationCompositionElement", - "version": "1.2.3" - }, - { - "name": "onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement", - "version": "1.2.3" - }, - { - "name": "onap.policy.clamp.ac.element.K8S_BridgeAutomationCompositionElement", - "version": "1.2.3" - }, - { - "name": "onap.policy.clamp.ac.element.K8S_SinkAutomationCompositionElement", - "version": "1.2.3" - }, - { - "name": "onap.policy.clamp.ac.element.Http_StarterAutomationCompositionElement", - "version": "1.2.3" - }, - { - "name": "onap.policy.clamp.ac.element.Http_BridgeAutomationCompositionElement", - "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');\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 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": "RESTCLIENT", - "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", - "parameters": { - "url": "http://message-router:3904/events/AC_ELEMENT_MSG/APEX/1?timeout=30000" - } - }, - "eventProtocolParameters": { - "eventProtocol": "JSON", - "parameters": { - "pojoField": "DmaapResponseEvent" - } - }, - "eventName": "AcElementEvent", - "eventNameFilter": "AcElementEvent" - } - }, - "eventOutputParameters": { - "logOutputter": { - "carrierTechnologyParameters": { - "carrierTechnology": "FILE", - "parameters": { - "fileName": "outputevents.log" - } - }, - "eventProtocolParameters": { - "eventProtocol": "JSON" - } - }, - "DmaapReplyProducer": { - "carrierTechnologyParameters": { - "carrierTechnology": "RESTCLIENT", - "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", - "parameters": { - "url": "http://message-router:3904/events/POLICY_UPDATE_MSG" - } - }, - "eventProtocolParameters": { - "eventProtocol": "JSON", - "parameters": { - "pojoField": "DmaapResponseStatusEvent" - } - }, - "eventNameFilter": "(LogEvent|DmaapResponseStatusEvent)" - } - } - }, - "name": "onap.policies.native.apex.ac.element", - "version": "1.0.0" - } - } - ] - } -} - = - - - - ${RUNTIME_HOST} - ${RUNTIME_PORT} - http - /onap/policy/clamp/acm/v2/compositions - POST - true - false - true - false - false - false - false - 6 - false - 0 - - - - - 201 - - - Assertion.response_code - false - 1 - - - - compositionId - $.compositionId - - compositionId - - - - - - false - props.put("compositionId", vars.get("compositionId")); - - - false @@ -1664,60 +134,354 @@ - - true - - - - false - { - "primeOrder": "PRIME" -} - = - - - - ${RUNTIME_HOST} - ${RUNTIME_PORT} - http - /onap/policy/clamp/acm/v2/compositions/${compositionId} - PUT - true - false - true - false - false - false - false - 6 - false - 0 - + + false + + + int n = 10; +for (int i = 0; i < n; i++) { + props.put("baseCount" + i, "1"); + log.info("baseCount" + i); +} + + + + + + stoptest + + 1 + false + + ${USERS} + 1 + false + 50000 + + true + false + + + + ${INSTANCES} + - - - 202 - - - Assertion.response_code - false - 1 - - + + + + false + vars.put("loopCondition", "true"); +vars.put("primeState", ""); +vars.put("deployState", ""); +String elementId = UUID.randomUUID().toString(); +vars.put("elementId", elementId); + + - - - ${__javaScript("${primeState}" != "PRIMED")} - - - + true false { - "primeOrder": "PRIME" + "tosca_definitions_version": "tosca_simple_yaml_1_3", + "name": "${__RandomString(10,abcdefghilmnopqrtsvz)}", + "version": "1.0.${__threadNum}", + "data_types": { + "onap.datatypes.ToscaConceptIdentifier": { + "properties": { + "name": { + "name": "name", + "type": "string", + "required": true + }, + "version": { + "name": "version", + "type": "string", + "required": true + } + }, + "name": "onap.datatypes.ToscaConceptIdentifier", + "derived_from": "tosca.datatypes.Root" + }, + "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest": { + "properties": { + "restRequestId": { + "name": "restRequestId", + "type": "onap.datatypes.ToscaConceptIdentifier", + "description": "The name and version of a REST request to be sent to a REST endpoint", + "required": true + }, + "httpMethod": { + "name": "httpMethod", + "type": "string", + "description": "The REST method to use", + "required": true, + "constraints": [ + { + "valid_values": [ + "POST", + "PUT", + "GET", + "DELETE" + ] + } + ] + }, + "path": { + "name": "path", + "type": "string", + "description": "The path of the REST request relative to the base URL", + "required": true + }, + "body": { + "name": "body", + "type": "string", + "description": "The body of the REST request for PUT and POST requests", + "required": false + }, + "expectedResponse": { + "name": "expectedResponse", + "type": "integer", + "description": "THe expected HTTP status code for the REST request", + "required": true + } + }, + "name": "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest", + "version": "1.0.0", + "derived_from": "tosca.datatypes.Root" + }, + "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity": { + "properties": { + "configurationEntityId": { + "name": "configurationEntityId", + "type": "onap.datatypes.ToscaConceptIdentifier", + "description": "The name and version of a Configuration Entity to be handled by the HTTP Automation Composition Element", + "required": true + }, + "restSequence": { + "name": "restSequence", + "type": "list", + "description": "A sequence of REST commands to send to the REST endpoint", + "required": false, + "entry_schema": { + "type": "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest", + "type_version": "1.0.0" + } + } + }, + "name": "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity", + "version": "1.0.0", + "derived_from": "tosca.datatypes.Root" + } + }, + "node_types": { + "org.onap.policy.clamp.acm.Participant": { + "properties": { + "provider": { + "name": "provider", + "type": "string", + "required": false + } + }, + "name": "org.onap.policy.clamp.acm.Participant", + "version": "1.0.1", + "derived_from": "tosca.nodetypes.Root" + }, + "org.onap.policy.clamp.acm.AutomationCompositionElement": { + "properties": { + "provider": { + "name": "provider", + "type": "string", + "description": "Specifies the organization that provides the automation composition element", + "required": false, + "metadata": { + "common": "true" + } + }, + "startPhase": { + "name": "startPhase", + "type": "integer", + "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", + "required": false, + "constraints": [ + { + "greater_or_equal": "0" + } + ], + "metadata": { + "common": "true" + } + }, + "uninitializedToPassiveTimeout": { + "name": "uninitializedToPassiveTimeout", + "type": "integer", + "description": "The maximum time in seconds to wait for a state chage from uninitialized to passive", + "default": 60, + "required": false, + "constraints": [ + { + "greater_or_equal": "0" + } + ], + "metadata": { + "common": "true" + } + }, + "passiveToRunningTimeout": { + "name": "passiveToRunningTimeout", + "type": "integer", + "description": "The maximum time in seconds to wait for a state chage from passive to running", + "default": 60, + "required": false, + "constraints": [ + { + "greater_or_equal": "0" + } + ], + "metadata": { + "common": "true" + } + }, + "runningToPassiveTimeout": { + "name": "runningToPassiveTimeout", + "type": "integer", + "description": "The maximum time in seconds to wait for a state chage from running to passive", + "default": 60, + "required": false, + "constraints": [ + { + "greater_or_equal": "0" + } + ], + "metadata": { + "common": "true" + } + }, + "passiveToUninitializedTimeout": { + "name": "passiveToUninitializedTimeout", + "type": "integer", + "description": "The maximum time in seconds to wait for a state chage from passive to uninitialized", + "default": 60, + "required": false, + "constraints": [ + { + "greater_or_equal": "0" + } + ], + "metadata": { + "common": "true" + } + } + }, + "name": "org.onap.policy.clamp.acm.AutomationCompositionElement", + "version": "1.0.1", + "derived_from": "tosca.nodetypes.Root" + }, + "org.onap.policy.clamp.acm.AutomationComposition": { + "properties": { + "provider": { + "name": "provider", + "type": "string", + "description": "Specifies the organization that provides the automation composition element", + "required": false, + "metadata": { + "common": "true" + } + }, + "elements": { + "name": "elements", + "type": "list", + "description": "Specifies a list of automation composition element definitions that make up this automation composition definition", + "required": true, + "entry_schema": { + "type": "onap.datatypes.ToscaConceptIdentifier" + }, + "metadata": { + "common": "true" + } + } + }, + "name": "org.onap.policy.clamp.acm.AutomationComposition", + "version": "1.0.1", + "derived_from": "tosca.nodetypes.Root" + }, + "org.onap.policy.clamp.acm.HttpAutomationCompositionElement": { + "properties": { + "baseUrl": { + "name": "baseUrl", + "type": "string", + "description": "The base URL to be prepended to each path, identifies the host for the REST endpoints.", + "required": true + }, + "httpHeaders": { + "name": "httpHeaders", + "type": "map", + "description": "HTTP headers to send on REST requests", + "required": false, + "entry_schema": { + "type": "string" + } + }, + "configurationEntities": { + "name": "configurationEntities", + "type": "map", + "description": "The connfiguration entities the Automation Composition Element is managing and their associated REST requests", + "required": true, + "entry_schema": { + "type": "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity", + "type_version": "1.0.0" + } + } + }, + "name": "org.onap.policy.clamp.acm.HttpAutomationCompositionElement", + "version": "1.0.0", + "derived_from": "org.onap.policy.clamp.acm.AutomationCompositionElement" + } + }, + "topology_template": { + "node_templates": { + "org.onap.policy.clamp.acm.HttpParticipant": { + "type": "org.onap.policy.clamp.acm.Participant", + "type_version": "1.0.1", + "properties": { + "provider": "ONAP" + }, + "name": "org.onap.policy.clamp.acm.HttpParticipant", + "version": "2.3.4", + "description": "Participant for Http requests" + }, + "onap.policy.clamp.ac.element.Http_GenericAutomationCompositionElement": { + "type": "org.onap.policy.clamp.acm.HttpAutomationCompositionElement", + "type_version": "1.0.0", + "properties": { + "provider": "ONAP", + "uninitializedToPassiveTimeout": 180, + "startPhase": 0 + }, + "name": "onap.policy.clamp.ac.element.Http_GenericAutomationCompositionElement", + "version": "1.2.3", + "description": "Automation composition element for the http requests of AC Element Generic microservice" + }, + "onap.policy.clamp.ac.element.AutomationCompositionDefinition": { + "type": "org.onap.policy.clamp.acm.AutomationComposition", + "type_version": "1.0.1", + "properties": { + "provider": "ONAP", + "elements": [ + { + "name": "onap.policy.clamp.ac.element.Http_GenericAutomationCompositionElement", + "version": "1.2.3" + } + ] + }, + "name": "onap.policy.clamp.ac.element.AutomationCompositionDefinition", + "version": "1.2.3", + "description": "Automation composition for Demp" + } + } + } } = @@ -1726,8 +490,8 @@ ${RUNTIME_HOST} ${RUNTIME_PORT} http - /onap/policy/clamp/acm/v2/compositions/${compositionId} - GET + /onap/policy/clamp/acm/v2/compositions + POST true false true @@ -1742,191 +506,184 @@ - 200 + 201 Assertion.response_code false 1 - - primeState - $.state + compositionId + $.compositionId compositionId + + false + + + String compositionId = vars.get("compositionId"); + +String baseCount = "baseCount" + ctx.getThreadNum(); +String count = props.get(baseCount); +vars.put("composition" + count + "Id", compositionId); + +log.info("Create Composition: " + compositionId); + + + + - - - true - - - - false - { - "name": "DemoInstance0", - "version": "1.0.1", - "compositionId": "${compositionId}", - "description": "Demo automation composition instance 0", - "elements": { - "709c62b3-8918-41b9-a747-d21eb79c6c20": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c20", - "definition": { - "name": "onap.policy.clamp.ac.element.Policy_AutomationCompositionElement", - "version": "1.2.3" - }, - "description": "Policy Automation Composition Element for the Demo", - "properties": { - "policy_type_id": { - "name": "onap.policies.native.Apex", - "version": "1.0.0" - }, - "policy_id": { - "get_input": "acm_element_policy" - } - } - } - } + + true + + + + false + { + "primeOrder": "PRIME" } - = - - - - ${RUNTIME_HOST} - ${RUNTIME_PORT} - http - /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances - POST - true - false - true - false - false - false - false - 6 - false - 0 - - - - - 201 - - - Assertion.response_code - false - 1 - - - - instanceId - $.instanceId - - instanceId - - - - false - - - props.put("instanceId", vars.get("instanceId")); - - - - - - continue - - -1 - false - - ${USERS} - 1 - true - 7200 - - true - false - - - - - - false - String compositionId = props.get("compositionId"); -String instanceId = props.get("instanceId"); -String deployState = props.get("deployState"); -vars.put("compositionId", compositionId); -vars.put("instanceId", instanceId); -vars.put("deployState", deployState); - - - - - true - - - - false - { - "deployOrder": "DEPLOY" -} - - = + = + + + + ${RUNTIME_HOST} + ${RUNTIME_PORT} + http + /onap/policy/clamp/acm/v2/compositions/${compositionId} + PUT + true + false + true + false + false + false + false + 6 + false + 0 + + + + + 202 + + + Assertion.response_code + false + 1 + + + + + + ${__javaScript("${primeState}" != "PRIMED")} + + + + false + + - - - ${RUNTIME_HOST} - ${RUNTIME_PORT} - http - /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} - PUT - true - false - true - false - false - false - false - 6 - false - 0 - - - - 6000 - - - - - 202 - 400 - - - Assertion.response_code - true - 33 - - - - - ${__javaScript("${deployState}" !== "DEPLOYED")} - - - - false - - + ${RUNTIME_HOST} + ${RUNTIME_PORT} + http + /onap/policy/clamp/acm/v2/compositions/${compositionId} + GET + true + false + true + false + false + false + false + 6 + false + 0 + + + + + 200 + + + Assertion.response_code + false + 1 + + + + + primeState + $.state + + compositionId + + + + + + true + + + + false + { + "name": "${__RandomString(10,abcdefghilmnopqrtsvz)}", + "version": "1.0.${__threadNum}", + "compositionId": "${compositionId}", + "description": "Demo automation composition HttpStater", + "elements": { + "${elementId}": { + "id": "${elementId}", + "definition": { + "name": "onap.policy.clamp.ac.element.Http_GenericAutomationCompositionElement", + "version": "1.2.3" + }, + "description": "Starter Automation Composition Element for the Demo", + "properties": { + "uninitializedToPassiveTimeout": 180, + "baseUrl": "http://policy-clamp-ac-pf-ppnt:6969", + "httpHeaders": { + "Content-Type": "application/json", + "Authorization": "Basic cGFydGljaXBhbnRVc2VyOnpiIVh6dEczNA==" + }, + "configurationEntities": [ + { + "configurationEntityId": { + "name": "onap.policy.clamp.ac.starter", + "version": "1.0.0" + }, + "restSequence": [ + { + "restRequestId": { + "name": "request1", + "version": "1.0.1" + }, + "httpMethod": "GET", + "path": "/onap/policyparticipant/health", + "body": "", + "expectedResponse": 200 + } + ] + } + ] + } + } + } +} + = + + ${RUNTIME_HOST} ${RUNTIME_PORT} http - /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} - GET + /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances + POST true false true @@ -1941,7 +698,7 @@ vars.put("deployState", deployState); - 200 + 201 Assertion.response_code @@ -1950,75 +707,49 @@ vars.put("deployState", deployState); - deployState - $.deployState + instanceId + $.instanceId - compositionId + instanceId + + false + + + String instanceId = vars.get("instanceId"); + +String baseCount = "baseCount" + ctx.getThreadNum(); +String count = props.get(baseCount); + +vars.put("instance" + count + "Id", instanceId); +log.info("Create Instance: " + instanceId); + +int icount = Integer.parseInt(count) + 1; +props.put(baseCount, ("" + icount)); + + + - - - true - - - - false - { - "deployOrder": "UNDEPLOY" + + true + + + + false + { + "deployOrder": "DEPLOY" } - = - - - - ${RUNTIME_HOST} - ${RUNTIME_PORT} - http - /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} - PUT - true - false - true - false - false - false - false - 6 - false - 0 - - - - - 202 - 400 - - - Assertion.response_code - true - 33 - - - - 6000 - - - - - ${__javaScript("${deployState}" !== "UNDEPLOYED")} - - - - false - - + = + + ${RUNTIME_HOST} ${RUNTIME_PORT} http /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} - GET + PUT true false true @@ -2031,26 +762,69 @@ vars.put("deployState", deployState); 0 + + 1000 + + - 200 + 202 + 400 Assertion.response_code - false - 1 + true + 33 - - deployState - $.deployState - - compositionId - - + + + ${__javaScript("${deployState}" !== "DEPLOYED")} + + + + false + + + + ${RUNTIME_HOST} + ${RUNTIME_PORT} + http + /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} + GET + true + false + true + false + false + false + false + 6 + false + 0 + + + + + 200 + + + Assertion.response_code + false + 1 + + + + deployState + $.deployState + + compositionId + + + - + false @@ -2058,7 +832,7 @@ vars.put("deployState", deployState); ${RUNTIME_HOST} ${RUNTIME_PORT} http - /onap/policy/clamp/acm/prometheus + /onap/policy/clamp/acm/v2/participants GET true false @@ -2078,64 +852,21 @@ vars.put("deployState", deployState); Assertion.response_code - true - 33 + false + 1 + - - groovy - - - true - def res = []; -if (prev.getResponseCode() == '200') { - res = prev.getResponseDataAsString(); - - assert res.contains("http_server_requests_seconds_sum") - assert res.contains("http_server_requests_seconds_max") - assert res.contains("spring_data_repository_invocations_seconds_count") - assert res.contains("spring_data_repository_invocations_seconds_sum") - assert res.contains("spring_data_repository_invocations_seconds_max") - assert res.contains("jvm_threads_live_threads") - - assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"POST\",outcome=\"SUCCESS\",status=\"201\",uri=\"/v2/compositions\",}") - assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"PUT\",outcome=\"SUCCESS\",status=\"202\",uri=\"/v2/compositions/{compositionId}\",}") - assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"GET\",outcome=\"SUCCESS\",status=\"200\",uri=\"/v2/compositions/{compositionId}\",}") - - assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"POST\",outcome=\"SUCCESS\",status=\"201\",uri=\"/v2/compositions/{compositionId}/instances\",}") - assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"PUT\",outcome=\"SUCCESS\",status=\"202\",uri=\"/v2/compositions/{compositionId}/instances/{instanceId}\",}") - assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"GET\",outcome=\"SUCCESS\",status=\"200\",uri=\"/v2/compositions/{compositionId}/instances/{instanceId}\",}") - - assert res.contains("publisher_automation_composition_state_change_seconds_count") - assert res.contains("publisher_participant_update_seconds_count") - assert res.contains("publisher_participant_status_req_seconds_count") - assert res.contains("publisher_automation_composition_deploy_seconds_count") - - assert res.contains("listener_participant_prime_ack_seconds_count") - assert res.contains("listener_automation_composition_statechange_ack_seconds_count") - assert res.contains("listener_participant_status_seconds_count") -} - - - - - - Accept - text/plain - - - - - + false - ${POLICY_PARTICIPANT_HOST} - ${POLICY_PARTICIPANT_HOST_PORT} + ${RUNTIME_HOST} + ${RUNTIME_PORT} http - /onap/policyparticipant/prometheus + /onap/policy/clamp/acm/v2/compositions GET true false @@ -2155,79 +886,171 @@ if (prev.getResponseCode() == '200') { Assertion.response_code - true - 33 + false + 1 + - - groovy + + + ${INSTANCES} + + + + false - true - def res = []; -if (prev.getResponseCode() == '200') { - res = prev.getResponseDataAsString(); - - assert res.contains("http_server_requests_seconds_sum") - assert res.contains("http_server_requests_seconds_max") - assert res.contains("jvm_threads_live_threads") + vars.put("loopCondition", "true"); +vars.put("primeState", ""); +vars.put("deployState", ""); + + + + + true + + + + false + { + "deployOrder": "UNDEPLOY" +} + + = + + + + ${RUNTIME_HOST} + ${RUNTIME_PORT} + http + /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} + PUT + true + false + true + false + false + false + false + 6 + false + 0 + + + + false + + + String baseCount = "baseCount" + ctx.getThreadNum(); +String count = props.get(baseCount); +int icount = Integer.parseInt(count) - 1; +props.put(baseCount, ("" + icount)); - assert res.contains("publisher_participant_register_seconds_count") - assert res.contains("publisher_participant_prime_ack_seconds_count") - assert res.contains("publisher_participant_status_seconds_count") - assert res.contains("publisher_automation_composition_update_ack_seconds_count") +count = props.get(baseCount); - assert res.contains("listener_participant_status_req_seconds_count") - assert res.contains("listener_participant_prime_seconds_count") - assert res.contains("listener_automation_composition_state_change_seconds_count") - assert res.contains("listener_automation_composition_update_seconds_count") -} - - - - - - Accept - text/plain - - - - - - - - stoptest - - 1 - false - - 1 - 1 - false - - - true - - - - - - false - String compositionId = props.get("compositionId"); -String instanceId = props.get("instanceId"); -String deployState = props.get("deployState"); -String loopCondition; +String compositionId = vars.get("composition" + count + "Id"); vars.put("compositionId", compositionId); +log.info("compositionId: " + compositionId); +String instanceId = vars.get("instance" + count + "Id"); vars.put("instanceId", instanceId); -vars.put("deployState", deployState); -vars.put("loopCondition", "true"); - - - - ${__javaScript("${deployState}" !== "UNDEPLOYED")} - - - +log.info("instanceId: " + instanceId); + + + + + + 202 + + + Assertion.response_code + true + 33 + + + + 1000 + + + + + ${__javaScript("${deployState}" !== "UNDEPLOYED")} + + + + false + + + + ${RUNTIME_HOST} + ${RUNTIME_PORT} + http + /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} + GET + true + false + true + false + false + false + false + 6 + false + 0 + + + + + 200 + + + Assertion.response_code + false + 1 + + + + deployState + $.deployState + + compositionId + + + + + + false + + + + ${RUNTIME_HOST} + ${RUNTIME_PORT} + http + /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} + DELETE + true + false + true + false + false + false + false + 6 + false + 0 + + + + + 202 + + + Assertion.response_code + false + 1 + + + + false @@ -2235,7 +1058,7 @@ vars.put("loopCondition", "true"); ${RUNTIME_HOST} ${RUNTIME_PORT} http - /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} + /onap/policy/clamp/acm/prometheus GET true false @@ -2255,43 +1078,69 @@ vars.put("loopCondition", "true"); Assertion.response_code - false - 1 + true + 33 - - deployState - $.deployState - - compositionId - + + groovy + + + true + def res = []; +if (prev.getResponseCode() == '200') { + res = prev.getResponseDataAsString(); + + assert res.contains("http_server_requests_seconds_sum") + assert res.contains("http_server_requests_seconds_max") + assert res.contains("spring_data_repository_invocations_seconds_count") + assert res.contains("spring_data_repository_invocations_seconds_sum") + assert res.contains("spring_data_repository_invocations_seconds_max") + assert res.contains("jvm_threads_live_threads") + + assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"POST\",outcome=\"SUCCESS\",status=\"201\",uri=\"/v2/compositions\",}") + assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"PUT\",outcome=\"SUCCESS\",status=\"202\",uri=\"/v2/compositions/{compositionId}\",}") + assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"GET\",outcome=\"SUCCESS\",status=\"200\",uri=\"/v2/compositions/{compositionId}\",}") + + assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"POST\",outcome=\"SUCCESS\",status=\"201\",uri=\"/v2/compositions/{compositionId}/instances\",}") + assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"PUT\",outcome=\"SUCCESS\",status=\"202\",uri=\"/v2/compositions/{compositionId}/instances/{instanceId}\",}") + assert res.contains("http_server_requests_seconds_count{error=\"none\",exception=\"none\",method=\"GET\",outcome=\"SUCCESS\",status=\"200\",uri=\"/v2/compositions/{compositionId}/instances/{instanceId}\",}") + + assert res.contains("publisher_automation_composition_state_change_seconds_count") + assert res.contains("publisher_participant_update_seconds_count") + assert res.contains("publisher_participant_status_req_seconds_count") + assert res.contains("publisher_automation_composition_deploy_seconds_count") + + assert res.contains("listener_participant_prime_ack_seconds_count") + assert res.contains("listener_automation_composition_statechange_ack_seconds_count") + assert res.contains("listener_participant_status_seconds_count") +} + + + + + + Accept + text/plain + + + - - false - true - ${__javaScript("${deployState}" === "DEPLOYED")} - + + ${__javaScript("${loopCondition}" === "true")} + - - true - - - - false - { - "deployOrder": "UNDEPLOY" -} - - = - - + + false + + ${RUNTIME_HOST} ${RUNTIME_PORT} http - /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} - PUT + /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances + GET true false true @@ -2306,68 +1155,60 @@ vars.put("loopCondition", "true"); - 202 + 200 Assertion.response_code - true - 33 + false + 1 + - - 6000 - + + automationCompositionList + $.automationCompositionList + + compositionId + + + // Extracted JSON array +String jsonArray = vars.get("automationCompositionList"); +//String jsonArray = "[]"; + + +log.info("instanceArray: " + jsonArray); +// Check if the JSON array is empty +if (jsonArray.equals("[]")) { + vars.put("loopCondition", "false"); + log.info("condition false"); +} else { + vars.put("loopCondition", "true"); + log.info("condition true"); +} + false + + - - - false - - - - ${RUNTIME_HOST} - ${RUNTIME_PORT} - http - /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} - DELETE - true - false - true - false - false - false - false - 6 - false - 0 - - - - - 202 - - - Assertion.response_code - false - 1 - - - - - ${__javaScript("${loopCondition}" === "true")} - - - - false - - + + true + + + + false + { + "primeOrder": "DEPRIME" +} + = + + ${RUNTIME_HOST} ${RUNTIME_PORT} http - /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances - GET + /onap/policy/clamp/acm/v2/compositions/${compositionId} + PUT true false true @@ -2382,105 +1223,71 @@ vars.put("loopCondition", "true"); - 200 + 202 Assertion.response_code false 1 - - - automationCompositionList - $.automationCompositionList - - compositionId - - - - // Extracted JSON array -String jsonArray = vars.get("automationCompositionList"); -//String jsonArray = "[]"; - - -log.info("instanceArray: " + jsonArray); -// Check if the JSON array is empty -if (jsonArray.equals("[]")) { - vars.put("loopCondition", "false"); - log.info("condition false"); -} else { - vars.put("loopCondition", "true"); - log.info("condition true"); -} - false - - - - - true - - - - false - { - "primeOrder": "DEPRIME" -} - = + + ${__javaScript("${primeState}" !== "COMMISSIONED")} + + + + false + + - - - ${RUNTIME_HOST} - ${RUNTIME_PORT} - http - /onap/policy/clamp/acm/v2/compositions/${compositionId} - PUT - true - false - true - false - false - false - false - 6 - false - 0 - - - - - 202 - - - Assertion.response_code - false - 1 - - - - - ${__javaScript("${primeState}" !== "COMMISSIONED")} - - - - true - - - - false - { - "primeOrder": "COMMISSIONED" -} - = - - + ${RUNTIME_HOST} + ${RUNTIME_PORT} + http + /onap/policy/clamp/acm/v2/compositions/${compositionId} + GET + true + false + true + false + false + false + false + 6 + false + 0 + + + + + 200 + + + Assertion.response_code + false + 1 + + + + + primeState + $.state + + compositionId + + + + + + false + + ${RUNTIME_HOST} ${RUNTIME_PORT} http /onap/policy/clamp/acm/v2/compositions/${compositionId} - GET + DELETE true false true @@ -2501,51 +1308,10 @@ if (jsonArray.equals("[]")) { Assertion.response_code false 1 - - - primeState - $.state - - compositionId - - - - false - - - - ${RUNTIME_HOST} - ${RUNTIME_PORT} - http - /onap/policy/clamp/acm/v2/compositions/${compositionId} - DELETE - true - false - true - false - false - false - false - 6 - false - 0 - - - - - 200 - - - Assertion.response_code - false - 1 - - - false @@ -2581,7 +1347,7 @@ if (jsonArray.equals("[]")) { true - /home/ramesh/run-test/testresults.jtl + /tmp/testresults.jtl -- cgit 1.2.3-korg