diff options
author | Ramesh Murugan Iyer <ramesh.murugan.iyer@est.tech> | 2023-05-04 08:28:23 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2023-05-04 08:28:23 +0000 |
commit | 5472e50a387830d6dd85410c19a3b0e687ddf05a (patch) | |
tree | 2ed4b59a0429febaadc1e85e9c041630653eba8d | |
parent | b619e00e3dbb4c7e2d5a484be8cae4db29afe149 (diff) | |
parent | 8c13c6515fcec3b97825493bceb39b885aff559b (diff) |
Merge "Add stability test and performance tests for ACM"
-rw-r--r-- | testsuites/performance/src/main/resources/testplans/performance.jmx | 2847 | ||||
-rw-r--r-- | testsuites/stability/src/main/resources/testplans/stability.jmx | 2917 |
2 files changed, 3447 insertions, 2317 deletions
diff --git a/testsuites/performance/src/main/resources/testplans/performance.jmx b/testsuites/performance/src/main/resources/testplans/performance.jmx index f8aaf41c5..5f5d45ec2 100644 --- a/testsuites/performance/src/main/resources/testplans/performance.jmx +++ b/testsuites/performance/src/main/resources/testplans/performance.jmx @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1"> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.5"> <hashTree> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Policy Clamp AutomationComposition Performance" enabled="true"> <stringProp name="TestPlan.comments">Policy Clamp AutomationComposition Performance Tests</stringProp> @@ -18,16 +18,6 @@ <stringProp name="Argument.value">30007</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> - <elementProp name="POLICY_PARTICIPANT_HOST" elementType="Argument"> - <stringProp name="Argument.name">POLICY_PARTICIPANT_HOST</stringProp> - <stringProp name="Argument.value">localhost</stringProp> - <stringProp name="Argument.metadata">=</stringProp> - </elementProp> - <elementProp name="POLICY_PARTICIPANT_PORT" elementType="Argument"> - <stringProp name="Argument.name">POLICY_PARTICIPANT_PORT</stringProp> - <stringProp name="Argument.value">30008</stringProp> - <stringProp name="Argument.metadata">=</stringProp> - </elementProp> <elementProp name="HOME_PATH" elementType="Argument"> <stringProp name="Argument.name">HOME_PATH</stringProp> <stringProp name="Argument.value">./</stringProp> @@ -56,7 +46,7 @@ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> <collectionProp name="AuthManager.auth_list"> <elementProp name="" elementType="Authorization"> - <stringProp name="Authorization.url">https://${RUNTIME_HOST}:${RUNTIME_PORT}/onap/policy/clamp/acm/v2</stringProp> + <stringProp name="Authorization.url">http://${RUNTIME_HOST}:${RUNTIME_PORT}/onap/policy/clamp/acm/v2</stringProp> <stringProp name="Authorization.username">runtimeUser</stringProp> <stringProp name="Authorization.password">zb!XztG34</stringProp> <stringProp name="Authorization.domain"></stringProp> @@ -94,1029 +84,1489 @@ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> </SetupThreadGroup> <hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Comission Automation Composition definition" enabled="true"> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Commission AutomationComposition definition" enabled="true"> <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> <collectionProp name="Arguments.arguments"> <elementProp name="" elementType="HTTPArgument"> <boolProp name="HTTPArgument.always_encode">false</boolProp> <stringProp name="Argument.value">{
 - "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"
 - ]
 + "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
 + }
 }
 - ]
 - },
 - "entityIds": {
 - "type": "map",
 - "description": "Map of values that identify the resource. If none are provided, it is assumed that the\nentity that generated the ONSET event will be the target.\n",
 - "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"
 - ]
 + "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
 + }
 }
 - ],
 - "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"
 - ]
 + "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
 + }
 }
 - ],
 - "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"
 - }
 - }
 - }
 - }
 - },
 - "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\nPolicy Types. This does NOT support the legacy Policy YAML policy type.\n",
 - "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\ntimeout for each operation listed.\n",
 - "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"
 + "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
 + }
 + }
 },
 - "participant_id": {
 - "type": "onap.datatypes.ToscaConceptIdentifier",
 - "requred": true,
 - "metadata": {
 - "common": true
 - }
 + "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
 + }
 + }
 },
 - "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"
 + "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
 + }
 + }
 },
 - "startPhase": {
 - "type": "integer",
 - "required": false,
 - "constraints": [
 - {
 - "greater_or_equal": 0
 + "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"
 + }
 + }
 }
 - ],
 - "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
 + "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
 + }
 }
 - ],
 - "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
 + "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"
 + }
 }
 - ],
 - "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
 + "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"
 + }
 }
 - ],
 - "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
 + "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"
 + }
 }
 - ],
 - "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"
 + "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"
 },
 - "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"
 + "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"
 + }
 + }
 + }
 }
 - }
 },
 - "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
 + "node_types": {
 + "org.onap.policy.clamp.acm.Participant": {
 + "version": "1.0.1",
 + "derived_from": "tosca.nodetypes.Root",
 + "properties": {
 + "provider": {
 + "type": "string",
 + "required": false
 + }
 + }
 },
 - "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
 + "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"
 + }
 + }
 },
 - "configs": {
 - "type": "list",
 - "required": false
 + "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"
 + }
 + }
 },
 - "requirements": {
 - "type": "string",
 - "requred": false
 + "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
 + }
 + }
 },
 - "templates": {
 - "type": "list",
 - "required": false,
 - "entry_schema": null
 + "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
 + }
 + }
 },
 - "values": {
 - "type": "string",
 - "requred": 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"
 + }
 + }
 }
 - }
 },
 - "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"
 + "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"
 + }
 + }
 },
 - "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"
 - }
 - }
 - }
 - },
 - "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"
 + "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"
 + }
 },
 - "namespace": "onap",
 - "releaseName": "onap-dcae-pmsh",
 - "repository": {
 - "repoName": "chartmuseum",
 - "address": "http://chart-museum:80",
 - "userName": "onapinitializer",
 - "password": "demo123456!"
 + "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
 + }
 },
 - "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\", \"automationCompositionName\":\"automationComposition-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.K8SAutomationCompositionParticipant": {
 + "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.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"
 + "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
 + }
 },
 - {
 - "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement",
 - "version": "1.2.3"
 + "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": [
 {
 - "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement",
 - "version": "1.2.3"
 + "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"
 + }
 }
 - ]
 - }
 - }
 + ]
 }
 - }
 }</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> @@ -1124,9 +1574,9 @@ </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/commission</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions</stringProp> <stringProp name="HTTPSampler.method">POST</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> @@ -1139,7 +1589,7 @@ <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49587">201</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> @@ -1147,78 +1597,31 @@ <intProp name="Assertion.test_type">1</intProp> </ResponseAssertion> <hashTree/> + <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true"> + <stringProp name="JSONPostProcessor.referenceNames">compositionId</stringProp> + <stringProp name="JSONPostProcessor.jsonPathExprs">$.compositionId</stringProp> + <stringProp name="JSONPostProcessor.match_numbers"></stringProp> + <stringProp name="Scope.variable">compositionId</stringProp> + </JSONPostProcessor> + <hashTree/> + <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell PostProcessor" enabled="true"> + <stringProp name="filename"></stringProp> + <stringProp name="parameters"></stringProp> + <boolProp name="resetInterpreter">false</boolProp> + <stringProp name="script">props.put("compositionId", vars.get("compositionId"));</stringProp> + </BeanShellPostProcessor> + <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Instantiate automation composition" enabled="true"> - <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> - <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> - <collectionProp name="Arguments.arguments"> - <elementProp name="" elementType="HTTPArgument"> - <boolProp name="HTTPArgument.always_encode">false</boolProp> - <stringProp name="Argument.value">{
 - "automationCompositionList": [
 - {
 - "name": "PMSHInstance0",
 - "version": "1.0.1",
 - "definition": {
 - "name": "org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition",
 - "version": "1.2.3"
 - },
 - "state": "UNINITIALISED",
 - "orderedState": "UNINITIALISED",
 - "description": "PMSH automation composition instance 0",
 - "elements": {
 - "709c62b3-8918-41b9-a747-d21eb79c6c21": {
 - "id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
 - "definition": {
 - "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement",
 - "version": "1.2.3"
 - },
 - "participantId": {
 - "name": "org.onap.PM_Policy",
 - "version": "1.0.0"
 - },
 - "participantType": {
 - "name": "org.onap.policy.clamp.acm.PolicyParticipant",
 - "version": "2.3.1"
 - },
 - "state": "UNINITIALISED",
 - "orderedState": "UNINITIALISED",
 - "description": "Monitoring Policy Automation Composition Element for the PMSH instance 0 automation composition"
 - },
 - "709c62b3-8918-41b9-a747-d21eb79c6c22": {
 - "id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
 - "definition": {
 - "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement",
 - "version": "1.2.3"
 - },
 - "participantId": {
 - "name": "org.onap.PM_Policy",
 - "version": "1.0.0"
 - },
 - "participantType": {
 - "name": "org.onap.policy.clamp.acm.PolicyParticipant",
 - "version": "2.3.1"
 - },
 - "state": "UNINITIALISED",
 - "orderedState": "UNINITIALISED",
 - "description": "Operational Policy Automation Composition Element for the PMSH instance 0 automation composition"
 - }
 - }
 - }
 - ]
 -}
 -
 -</stringProp> - <stringProp name="Argument.metadata">=</stringProp> - </elementProp> - </collectionProp> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Register participants" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation</stringProp> - <stringProp name="HTTPSampler.method">POST</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/participants</stringProp> + <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1230,40 +1633,35 @@ <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49588">202</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> <boolProp name="Assertion.assume_success">false</boolProp> <intProp name="Assertion.test_type">1</intProp> + <stringProp name="Scope.variable"></stringProp> </ResponseAssertion> <hashTree/> </hashTree> - </hashTree> - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="AutomationComposition Test Flow" enabled="true"> - <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> - <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> - <boolProp name="LoopController.continue_forever">false</boolProp> - <intProp name="LoopController.loops">-1</intProp> - </elementProp> - <stringProp name="ThreadGroup.num_threads">${USERS}</stringProp> - <stringProp name="ThreadGroup.ramp_time">1</stringProp> - <boolProp name="ThreadGroup.scheduler">true</boolProp> - <stringProp name="ThreadGroup.duration">7200</stringProp> - <stringProp name="ThreadGroup.delay"></stringProp> - <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> - </ThreadGroup> - <hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check acm state" enabled="true"> - <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments"/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Prime AC definitions" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "primeOrder": "PRIME"
 +}</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation</stringProp> - <stringProp name="HTTPSampler.method">GET</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}</stringProp> + <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1271,46 +1669,113 @@ <stringProp name="HTTPSampler.embedded_url_re"></stringProp> <stringProp name="HTTPSampler.connect_timeout"></stringProp> <stringProp name="HTTPSampler.response_timeout"></stringProp> - <stringProp name="TestPlan.comments">Basic Health Check</stringProp> </HTTPSamplerProxy> <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49588">202</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> <boolProp name="Assertion.assume_success">false</boolProp> <intProp name="Assertion.test_type">1</intProp> + <stringProp name="Scope.variable"></stringProp> </ResponseAssertion> <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Change State to PASSIVE" enabled="true"> + <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="true"> + <stringProp name="WhileController.condition">${__javaScript("${primeState}" != "PRIMED")}</stringProp> + </WhileController> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Verify Priming" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "primeOrder": "PRIME"
 +}</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> + <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> + <collectionProp name="Asserion.test_strings"> + <stringProp name="49586">200</stringProp> + </collectionProp> + <stringProp name="Assertion.custom_message"></stringProp> + <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> + <boolProp name="Assertion.assume_success">false</boolProp> + <intProp name="Assertion.test_type">1</intProp> + <stringProp name="Scope.variable"></stringProp> + </ResponseAssertion> + <hashTree/> + <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true"> + <stringProp name="JSONPostProcessor.referenceNames">primeState</stringProp> + <stringProp name="JSONPostProcessor.jsonPathExprs">$.state</stringProp> + <stringProp name="JSONPostProcessor.match_numbers"></stringProp> + <stringProp name="Scope.variable">compositionId</stringProp> + </JSONPostProcessor> + <hashTree/> + </hashTree> + </hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Instantiate acm" enabled="true"> <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> <collectionProp name="Arguments.arguments"> <elementProp name="" elementType="HTTPArgument"> <boolProp name="HTTPArgument.always_encode">false</boolProp> <stringProp name="Argument.value">{
 - "orderedState": "PASSIVE",
 - "automationCompositionIdentifierList": [
 - {
 - "name": "PMSHInstance0",
 - "version": "1.0.1"
 + "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"
 + }
 + }
 }
 - ]
 -}
 -</stringProp> + }
 +}</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> </collectionProp> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation/command</stringProp> - <stringProp name="HTTPSampler.method">PUT</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1320,33 +1785,77 @@ <stringProp name="HTTPSampler.response_timeout"></stringProp> </HTTPSamplerProxy> <hashTree> - <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> - <stringProp name="ConstantTimer.delay">6000</stringProp> - </ConstantTimer> - <hashTree/> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49588">202</stringProp> - <stringProp name="51508">400</stringProp> - <stringProp name="51514">406</stringProp> + <stringProp name="49587">201</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> - <boolProp name="Assertion.assume_success">true</boolProp> - <intProp name="Assertion.test_type">34</intProp> + <boolProp name="Assertion.assume_success">false</boolProp> + <intProp name="Assertion.test_type">1</intProp> </ResponseAssertion> <hashTree/> + <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true"> + <stringProp name="JSONPostProcessor.referenceNames">instanceId</stringProp> + <stringProp name="JSONPostProcessor.jsonPathExprs">$.instanceId</stringProp> + <stringProp name="JSONPostProcessor.match_numbers"></stringProp> + <stringProp name="Scope.variable">instanceId</stringProp> + </JSONPostProcessor> + <hashTree/> + <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell PostProcessor" enabled="true"> + <boolProp name="resetInterpreter">false</boolProp> + <stringProp name="parameters"></stringProp> + <stringProp name="filename"></stringProp> + <stringProp name="script">props.put("instanceId", vars.get("instanceId"));</stringProp> + </BeanShellPostProcessor> + <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check acm state" enabled="true"> - <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments"/> + </hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="AutomationComposition Test Flow" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <intProp name="LoopController.loops">-1</intProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">${USERS}</stringProp> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> + <boolProp name="ThreadGroup.scheduler">true</boolProp> + <stringProp name="ThreadGroup.duration">7200</stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true"> + <stringProp name="filename"></stringProp> + <stringProp name="parameters"></stringProp> + <boolProp name="resetInterpreter">false</boolProp> + <stringProp name="script">String compositionId = props.get("compositionId"); +String instanceId = props.get("instanceId"); +vars.put("compositionId", compositionId); +vars.put("instanceId", instanceId); +</stringProp> + </BeanShellPreProcessor> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Deploy AC instance" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "deployOrder": "DEPLOY"
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation</stringProp> - <stringProp name="HTTPSampler.method">GET</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId}</stringProp> + <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1354,34 +1863,32 @@ <stringProp name="HTTPSampler.embedded_url_re"></stringProp> <stringProp name="HTTPSampler.connect_timeout"></stringProp> <stringProp name="HTTPSampler.response_timeout"></stringProp> - <stringProp name="TestPlan.comments">Basic Health Check</stringProp> </HTTPSamplerProxy> <hashTree> + <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> + <stringProp name="ConstantTimer.delay">6000</stringProp> + </ConstantTimer> + <hashTree/> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49588">202</stringProp> + <stringProp name="51508">400</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> - <boolProp name="Assertion.assume_success">false</boolProp> - <intProp name="Assertion.test_type">1</intProp> + <boolProp name="Assertion.assume_success">true</boolProp> + <intProp name="Assertion.test_type">33</intProp> </ResponseAssertion> <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Change State to UNINITIALISED" enabled="true"> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Undeploy AC instance" enabled="true"> <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> <collectionProp name="Arguments.arguments"> <elementProp name="" elementType="HTTPArgument"> <boolProp name="HTTPArgument.always_encode">false</boolProp> <stringProp name="Argument.value">{
 - "orderedState": "UNINITIALISED",
 - "automationCompositionIdentifierList": [
 - {
 - "name": "PMSHInstance0",
 - "version": "1.0.1"
 - }
 - ]
 + "deployOrder": "UNDEPLOY"
 }
 </stringProp> <stringProp name="Argument.metadata">=</stringProp> @@ -1390,9 +1897,9 @@ </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation/command</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} </stringProp> <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> @@ -1405,14 +1912,13 @@ <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="51508">400</stringProp> - <stringProp name="51514">406</stringProp> <stringProp name="49588">202</stringProp> + <stringProp name="51508">400</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> <boolProp name="Assertion.assume_success">true</boolProp> - <intProp name="Assertion.test_type">34</intProp> + <intProp name="Assertion.test_type">33</intProp> </ResponseAssertion> <hashTree/> <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> @@ -1420,16 +1926,42 @@ </ConstantTimer> <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check acm state" enabled="true"> + </hashTree> + <PostThreadGroup guiclass="PostThreadGroupGui" testclass="PostThreadGroup" testname="tearDown Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1</stringProp> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </PostThreadGroup> + <hashTree> + <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true"> + <stringProp name="filename"></stringProp> + <stringProp name="parameters"></stringProp> + <boolProp name="resetInterpreter">false</boolProp> + <stringProp name="script">String compositionId = props.get("compositionId"); +String instanceId = props.get("instanceId"); +vars.put("compositionId", compositionId); +vars.put("instanceId", instanceId); +</stringProp> + </BeanShellPreProcessor> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Uninstantiate AC instance" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation</stringProp> - <stringProp name="HTTPSampler.method">GET</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId}</stringProp> + <stringProp name="HTTPSampler.method">DELETE</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1437,7 +1969,6 @@ <stringProp name="HTTPSampler.embedded_url_re"></stringProp> <stringProp name="HTTPSampler.connect_timeout"></stringProp> <stringProp name="HTTPSampler.response_timeout"></stringProp> - <stringProp name="TestPlan.comments">Basic Health Check</stringProp> </HTTPSamplerProxy> <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> @@ -1451,35 +1982,25 @@ </ResponseAssertion> <hashTree/> </hashTree> - <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="false"> - <stringProp name="ConstantTimer.delay">1000</stringProp> - </ConstantTimer> - <hashTree/> - </hashTree> - <PostThreadGroup guiclass="PostThreadGroupGui" testclass="PostThreadGroup" testname="tearDown Thread Group" enabled="true"> - <stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp> - <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> - <boolProp name="LoopController.continue_forever">false</boolProp> - <stringProp name="LoopController.loops">1</stringProp> - </elementProp> - <stringProp name="ThreadGroup.num_threads">1</stringProp> - <stringProp name="ThreadGroup.ramp_time">1</stringProp> - <boolProp name="ThreadGroup.scheduler">false</boolProp> - <stringProp name="ThreadGroup.duration"></stringProp> - <stringProp name="ThreadGroup.delay"></stringProp> - <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> - </PostThreadGroup> - <hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete instantiated acm" enabled="true"> - <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments"/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Deprime AC definition" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "primeOrder": "DEPRIME"
 +}</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation?name=PMSHInstance0&version=1.0.1</stringProp> - <stringProp name="HTTPSampler.method">DELETE</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}</stringProp> + <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1491,7 +2012,7 @@ <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49588">202</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> @@ -1499,10 +2020,6 @@ <intProp name="Assertion.test_type">1</intProp> </ResponseAssertion> <hashTree/> - <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> - <stringProp name="ConstantTimer.delay">6000</stringProp> - </ConstantTimer> - <hashTree/> </hashTree> <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete AutomationComposition Definition" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> @@ -1510,9 +2027,9 @@ </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/commission?name=NULL&version=0.0.0</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}</stringProp> <stringProp name="HTTPSampler.method">DELETE</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> @@ -1569,7 +2086,7 @@ <connectTime>true</connectTime> </value> </objProp> - <stringProp name="filename">${LOGS_PATH}testresults.jtl</stringProp> + <stringProp name="filename">/home/ramesh/run-test/testresults.jtl</stringProp> </ResultCollector> <hashTree/> <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> diff --git a/testsuites/stability/src/main/resources/testplans/stability.jmx b/testsuites/stability/src/main/resources/testplans/stability.jmx index 8fe84c86c..abf978128 100644 --- a/testsuites/stability/src/main/resources/testplans/stability.jmx +++ b/testsuites/stability/src/main/resources/testplans/stability.jmx @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1"> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.5"> <hashTree> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Policy Clamp ACM Stability" enabled="true"> <stringProp name="TestPlan.comments">Policy Clamp ACM Stability Tests</stringProp> @@ -36,7 +36,7 @@ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> <collectionProp name="AuthManager.auth_list"> <elementProp name="" elementType="Authorization"> - <stringProp name="Authorization.url">https://${RUNTIME_HOST}:${RUNTIME_PORT}/onap/policy/clamp/acm/v2</stringProp> + <stringProp name="Authorization.url">http://${RUNTIME_HOST}:${RUNTIME_PORT}/onap/policy/clamp/acm/v2</stringProp> <stringProp name="Authorization.username">runtimeUser</stringProp> <stringProp name="Authorization.password">zb!XztG34</stringProp> <stringProp name="Authorization.domain"></stringProp> @@ -81,1022 +81,1482 @@ <elementProp name="" elementType="HTTPArgument"> <boolProp name="HTTPArgument.always_encode">false</boolProp> <stringProp name="Argument.value">{
 - "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"
 - ]
 + "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
 + }
 }
 - ]
 - },
 - "entityIds": {
 - "type": "map",
 - "description": "Map of values that identify the resource. If none are provided, it is assumed that the\nentity that generated the ONSET event will be the target.\n",
 - "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"
 - ]
 + "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
 + }
 }
 - ],
 - "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"
 - ]
 + "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
 + }
 }
 - ],
 - "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"
 - }
 - }
 - }
 - }
 - },
 - "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\nPolicy Types. This does NOT support the legacy Policy YAML policy type.\n",
 - "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\ntimeout for each operation listed.\n",
 - "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"
 + "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
 + }
 + }
 },
 - "participant_id": {
 - "type": "onap.datatypes.ToscaConceptIdentifier",
 - "requred": true,
 - "metadata": {
 - "common": true
 - }
 + "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
 + }
 + }
 },
 - "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"
 + "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
 + }
 + }
 },
 - "startPhase": {
 - "type": "integer",
 - "required": false,
 - "constraints": [
 - {
 - "greater_or_equal": 0
 + "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"
 + }
 + }
 }
 - ],
 - "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
 + "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
 + }
 }
 - ],
 - "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
 + "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"
 + }
 }
 - ],
 - "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
 + "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"
 + }
 }
 - ],
 - "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
 + "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"
 + }
 }
 - ],
 - "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"
 + "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"
 },
 - "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"
 + "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"
 + }
 + }
 + }
 }
 - }
 },
 - "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
 + "node_types": {
 + "org.onap.policy.clamp.acm.Participant": {
 + "version": "1.0.1",
 + "derived_from": "tosca.nodetypes.Root",
 + "properties": {
 + "provider": {
 + "type": "string",
 + "required": false
 + }
 + }
 },
 - "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
 + "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"
 + }
 + }
 },
 - "configs": {
 - "type": "list",
 - "required": false
 + "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"
 + }
 + }
 },
 - "requirements": {
 - "type": "string",
 - "requred": false
 + "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
 + }
 + }
 },
 - "templates": {
 - "type": "list",
 - "required": false,
 - "entry_schema": null
 + "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
 + }
 + }
 },
 - "values": {
 - "type": "string",
 - "requred": 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"
 + }
 + }
 }
 - }
 },
 - "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"
 + "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"
 + }
 + }
 },
 - "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"
 - }
 - }
 - }
 - },
 - "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"
 + "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"
 + }
 },
 - "namespace": "onap",
 - "releaseName": "onap-dcae-pmsh",
 - "repository": {
 - "repoName": "chartmuseum",
 - "address": "http://chart-museum:80",
 - "userName": "onapinitializer",
 - "password": "demo123456!"
 + "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
 + }
 },
 - "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\", \"automationCompositionName\":\"automationComposition-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.K8SAutomationCompositionParticipant": {
 + "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.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"
 + "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
 + }
 },
 - {
 - "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement",
 - "version": "1.2.3"
 + "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": [
 {
 - "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement",
 - "version": "1.2.3"
 + "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"
 + }
 }
 - ]
 - }
 - }
 + ]
 }
 - }
 }</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> @@ -1104,9 +1564,9 @@ </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/commission</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions</stringProp> <stringProp name="HTTPSampler.method">POST</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> @@ -1119,7 +1579,7 @@ <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49587">201</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> @@ -1127,78 +1587,31 @@ <intProp name="Assertion.test_type">1</intProp> </ResponseAssertion> <hashTree/> + <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true"> + <stringProp name="JSONPostProcessor.referenceNames">compositionId</stringProp> + <stringProp name="JSONPostProcessor.jsonPathExprs">$.compositionId</stringProp> + <stringProp name="JSONPostProcessor.match_numbers"></stringProp> + <stringProp name="Scope.variable">compositionId</stringProp> + </JSONPostProcessor> + <hashTree/> + <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell PostProcessor" enabled="true"> + <stringProp name="filename"></stringProp> + <stringProp name="parameters"></stringProp> + <boolProp name="resetInterpreter">false</boolProp> + <stringProp name="script">props.put("compositionId", vars.get("compositionId"));</stringProp> + </BeanShellPostProcessor> + <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Instantiate acm" enabled="true"> - <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> - <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> - <collectionProp name="Arguments.arguments"> - <elementProp name="" elementType="HTTPArgument"> - <boolProp name="HTTPArgument.always_encode">false</boolProp> - <stringProp name="Argument.value">{
 - "automationCompositionList": [
 - {
 - "name": "PMSHInstance0",
 - "version": "1.0.1",
 - "definition": {
 - "name": "org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition",
 - "version": "1.2.3"
 - },
 - "state": "UNINITIALISED",
 - "orderedState": "UNINITIALISED",
 - "description": "PMSH automation composition instance 0",
 - "elements": {
 - "709c62b3-8918-41b9-a747-d21eb79c6c21": {
 - "id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
 - "definition": {
 - "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement",
 - "version": "1.2.3"
 - },
 - "participantId": {
 - "name": "org.onap.PM_Policy",
 - "version": "1.0.0"
 - },
 - "participantType": {
 - "name": "org.onap.policy.clamp.acm.PolicyParticipant",
 - "version": "2.3.1"
 - },
 - "state": "UNINITIALISED",
 - "orderedState": "UNINITIALISED",
 - "description": "Monitoring Policy Automation Composition Element for the PMSH instance 0 automation composition"
 - },
 - "709c62b3-8918-41b9-a747-d21eb79c6c22": {
 - "id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
 - "definition": {
 - "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement",
 - "version": "1.2.3"
 - },
 - "participantId": {
 - "name": "org.onap.PM_Policy",
 - "version": "1.0.0"
 - },
 - "participantType": {
 - "name": "org.onap.policy.clamp.acm.PolicyParticipant",
 - "version": "2.3.1"
 - },
 - "state": "UNINITIALISED",
 - "orderedState": "UNINITIALISED",
 - "description": "Operational Policy Automation Composition Element for the PMSH instance 0 automation composition"
 - }
 - }
 - }
 - ]
 -}
 -
 -</stringProp> - <stringProp name="Argument.metadata">=</stringProp> - </elementProp> - </collectionProp> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Register participants" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation</stringProp> - <stringProp name="HTTPSampler.method">POST</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/participants</stringProp> + <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1210,40 +1623,35 @@ <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49588">202</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> <boolProp name="Assertion.assume_success">false</boolProp> <intProp name="Assertion.test_type">1</intProp> + <stringProp name="Scope.variable"></stringProp> </ResponseAssertion> <hashTree/> </hashTree> - </hashTree> - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="AutomationComposition Test Flow" enabled="true"> - <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> - <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> - <boolProp name="LoopController.continue_forever">false</boolProp> - <intProp name="LoopController.loops">-1</intProp> - </elementProp> - <stringProp name="ThreadGroup.num_threads">1</stringProp> - <stringProp name="ThreadGroup.ramp_time">1</stringProp> - <boolProp name="ThreadGroup.scheduler">true</boolProp> - <stringProp name="ThreadGroup.duration">259200</stringProp> - <stringProp name="ThreadGroup.delay"></stringProp> - <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> - </ThreadGroup> - <hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check acm state" enabled="true"> - <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments"/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Prime AC definitions" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "primeOrder": "PRIME"
 +}</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation</stringProp> - <stringProp name="HTTPSampler.method">GET</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}</stringProp> + <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1251,46 +1659,113 @@ <stringProp name="HTTPSampler.embedded_url_re"></stringProp> <stringProp name="HTTPSampler.connect_timeout"></stringProp> <stringProp name="HTTPSampler.response_timeout"></stringProp> - <stringProp name="TestPlan.comments">Basic Health Check</stringProp> </HTTPSamplerProxy> <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49588">202</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> <boolProp name="Assertion.assume_success">false</boolProp> <intProp name="Assertion.test_type">1</intProp> + <stringProp name="Scope.variable"></stringProp> </ResponseAssertion> <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Change State to PASSIVE" enabled="true"> + <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="true"> + <stringProp name="WhileController.condition">${__javaScript("${primeState}" != "PRIMED")}</stringProp> + </WhileController> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Verify Priming" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "primeOrder": "PRIME"
 +}</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> + <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> + <collectionProp name="Asserion.test_strings"> + <stringProp name="49586">200</stringProp> + </collectionProp> + <stringProp name="Assertion.custom_message"></stringProp> + <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> + <boolProp name="Assertion.assume_success">false</boolProp> + <intProp name="Assertion.test_type">1</intProp> + <stringProp name="Scope.variable"></stringProp> + </ResponseAssertion> + <hashTree/> + <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true"> + <stringProp name="JSONPostProcessor.referenceNames">primeState</stringProp> + <stringProp name="JSONPostProcessor.jsonPathExprs">$.state</stringProp> + <stringProp name="JSONPostProcessor.match_numbers"></stringProp> + <stringProp name="Scope.variable">compositionId</stringProp> + </JSONPostProcessor> + <hashTree/> + </hashTree> + </hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Instantiate acm" enabled="true"> <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> <collectionProp name="Arguments.arguments"> <elementProp name="" elementType="HTTPArgument"> <boolProp name="HTTPArgument.always_encode">false</boolProp> <stringProp name="Argument.value">{
 - "orderedState": "PASSIVE",
 - "automationCompositionIdentifierList": [
 - {
 - "name": "PMSHInstance0",
 - "version": "1.0.1"
 + "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"
 + }
 + }
 }
 - ]
 -}
 -</stringProp> + }
 +}</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> </collectionProp> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation/command</stringProp> - <stringProp name="HTTPSampler.method">PUT</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1300,33 +1775,77 @@ <stringProp name="HTTPSampler.response_timeout"></stringProp> </HTTPSamplerProxy> <hashTree> - <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> - <stringProp name="ConstantTimer.delay">6000</stringProp> - </ConstantTimer> - <hashTree/> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49588">202</stringProp> - <stringProp name="51508">400</stringProp> - <stringProp name="51514">406</stringProp> + <stringProp name="49587">201</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> - <boolProp name="Assertion.assume_success">true</boolProp> - <intProp name="Assertion.test_type">34</intProp> + <boolProp name="Assertion.assume_success">false</boolProp> + <intProp name="Assertion.test_type">1</intProp> </ResponseAssertion> <hashTree/> + <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true"> + <stringProp name="JSONPostProcessor.referenceNames">instanceId</stringProp> + <stringProp name="JSONPostProcessor.jsonPathExprs">$.instanceId</stringProp> + <stringProp name="JSONPostProcessor.match_numbers"></stringProp> + <stringProp name="Scope.variable">instanceId</stringProp> + </JSONPostProcessor> + <hashTree/> + <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell PostProcessor" enabled="true"> + <boolProp name="resetInterpreter">false</boolProp> + <stringProp name="parameters"></stringProp> + <stringProp name="filename"></stringProp> + <stringProp name="script">props.put("instanceId", vars.get("instanceId"));</stringProp> + </BeanShellPostProcessor> + <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check acm state" enabled="true"> - <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments"/> + </hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="AutomationComposition Test Flow" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <intProp name="LoopController.loops">-1</intProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1</stringProp> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> + <boolProp name="ThreadGroup.scheduler">true</boolProp> + <stringProp name="ThreadGroup.duration">120</stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true"> + <stringProp name="filename"></stringProp> + <stringProp name="parameters"></stringProp> + <boolProp name="resetInterpreter">false</boolProp> + <stringProp name="script">String compositionId = props.get("compositionId"); +String instanceId = props.get("instanceId"); +vars.put("compositionId", compositionId); +vars.put("instanceId", instanceId); +</stringProp> + </BeanShellPreProcessor> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Deploy AC instance" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "deployOrder": "DEPLOY"
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation</stringProp> - <stringProp name="HTTPSampler.method">GET</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId}</stringProp> + <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1334,34 +1853,73 @@ <stringProp name="HTTPSampler.embedded_url_re"></stringProp> <stringProp name="HTTPSampler.connect_timeout"></stringProp> <stringProp name="HTTPSampler.response_timeout"></stringProp> - <stringProp name="TestPlan.comments">Basic Health Check</stringProp> </HTTPSamplerProxy> <hashTree> + <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> + <stringProp name="ConstantTimer.delay">6000</stringProp> + </ConstantTimer> + <hashTree/> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49588">202</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> - <boolProp name="Assertion.assume_success">false</boolProp> - <intProp name="Assertion.test_type">1</intProp> + <boolProp name="Assertion.assume_success">true</boolProp> + <intProp name="Assertion.test_type">33</intProp> </ResponseAssertion> <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Change State to UNINITIALISED" enabled="true"> + <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="true"> + <stringProp name="WhileController.condition">${__javaScript("${deployState}" != "DEPLOYED")}</stringProp> + </WhileController> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Verify acm state" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> + <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId}</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> + <collectionProp name="Asserion.test_strings"> + <stringProp name="49586">200</stringProp> + </collectionProp> + <stringProp name="Assertion.custom_message"></stringProp> + <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> + <boolProp name="Assertion.assume_success">false</boolProp> + <intProp name="Assertion.test_type">1</intProp> + </ResponseAssertion> + <hashTree/> + <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true"> + <stringProp name="JSONPostProcessor.referenceNames">deployState</stringProp> + <stringProp name="JSONPostProcessor.jsonPathExprs">$.deployState</stringProp> + <stringProp name="JSONPostProcessor.match_numbers"></stringProp> + <stringProp name="Scope.variable">compositionId</stringProp> + </JSONPostProcessor> + <hashTree/> + </hashTree> + </hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Undeploy AC instance" enabled="true"> <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> <collectionProp name="Arguments.arguments"> <elementProp name="" elementType="HTTPArgument"> <boolProp name="HTTPArgument.always_encode">false</boolProp> <stringProp name="Argument.value">{
 - "orderedState": "UNINITIALISED",
 - "automationCompositionIdentifierList": [
 - {
 - "name": "PMSHInstance0",
 - "version": "1.0.1"
 - }
 - ]
 + "deployOrder": "UNDEPLOY"
 }
 </stringProp> <stringProp name="Argument.metadata">=</stringProp> @@ -1370,9 +1928,9 @@ </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation/command</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} </stringProp> <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> @@ -1385,14 +1943,12 @@ <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="51508">400</stringProp> - <stringProp name="51514">406</stringProp> <stringProp name="49588">202</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> <boolProp name="Assertion.assume_success">true</boolProp> - <intProp name="Assertion.test_type">34</intProp> + <intProp name="Assertion.test_type">33</intProp> </ResponseAssertion> <hashTree/> <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> @@ -1400,16 +1956,84 @@ </ConstantTimer> <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check acm state" enabled="true"> + <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="true"> + <stringProp name="WhileController.condition">${__javaScript("${undeployState}" != "UNDEPLOYED")}</stringProp> + </WhileController> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Verify acm state" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> + <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId}</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> + <collectionProp name="Asserion.test_strings"> + <stringProp name="49586">200</stringProp> + </collectionProp> + <stringProp name="Assertion.custom_message"></stringProp> + <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> + <boolProp name="Assertion.assume_success">false</boolProp> + <intProp name="Assertion.test_type">1</intProp> + </ResponseAssertion> + <hashTree/> + <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true"> + <stringProp name="JSONPostProcessor.referenceNames">undeployState</stringProp> + <stringProp name="JSONPostProcessor.jsonPathExprs">$.deployState</stringProp> + <stringProp name="JSONPostProcessor.match_numbers"></stringProp> + <stringProp name="Scope.variable">compositionId</stringProp> + </JSONPostProcessor> + <hashTree/> + </hashTree> + </hashTree> + </hashTree> + <PostThreadGroup guiclass="PostThreadGroupGui" testclass="PostThreadGroup" testname="tearDown Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1</stringProp> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </PostThreadGroup> + <hashTree> + <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true"> + <stringProp name="filename"></stringProp> + <stringProp name="parameters"></stringProp> + <boolProp name="resetInterpreter">false</boolProp> + <stringProp name="script">String compositionId = props.get("compositionId"); +String instanceId = props.get("instanceId"); +vars.put("compositionId", compositionId); +vars.put("instanceId", instanceId); +</stringProp> + </BeanShellPreProcessor> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Uninstantiate AC instance" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation</stringProp> - <stringProp name="HTTPSampler.method">GET</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId}</stringProp> + <stringProp name="HTTPSampler.method">DELETE</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1417,7 +2041,6 @@ <stringProp name="HTTPSampler.embedded_url_re"></stringProp> <stringProp name="HTTPSampler.connect_timeout"></stringProp> <stringProp name="HTTPSampler.response_timeout"></stringProp> - <stringProp name="TestPlan.comments">Basic Health Check</stringProp> </HTTPSamplerProxy> <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> @@ -1431,31 +2054,25 @@ </ResponseAssertion> <hashTree/> </hashTree> - </hashTree> - <PostThreadGroup guiclass="PostThreadGroupGui" testclass="PostThreadGroup" testname="tearDown Thread Group" enabled="true"> - <stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp> - <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> - <boolProp name="LoopController.continue_forever">false</boolProp> - <stringProp name="LoopController.loops">1</stringProp> - </elementProp> - <stringProp name="ThreadGroup.num_threads">1</stringProp> - <stringProp name="ThreadGroup.ramp_time">1</stringProp> - <boolProp name="ThreadGroup.scheduler">false</boolProp> - <stringProp name="ThreadGroup.duration"></stringProp> - <stringProp name="ThreadGroup.delay"></stringProp> - <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> - </PostThreadGroup> - <hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete instantiated acm" enabled="true"> - <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments"/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Deprime AC definition" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "primeOrder": "DEPRIME"
 +}</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/instantiation?name=PMSHInstance0&version=1.0.1</stringProp> - <stringProp name="HTTPSampler.method">DELETE</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}</stringProp> + <stringProp name="HTTPSampler.method">PUT</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> @@ -1467,7 +2084,7 @@ <hashTree> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> + <stringProp name="49588">202</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> @@ -1475,10 +2092,6 @@ <intProp name="Assertion.test_type">1</intProp> </ResponseAssertion> <hashTree/> - <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> - <stringProp name="ConstantTimer.delay">6000</stringProp> - </ConstantTimer> - <hashTree/> </hashTree> <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete AutomationComposition Definition" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> @@ -1486,9 +2099,9 @@ </elementProp> <stringProp name="HTTPSampler.domain">${RUNTIME_HOST}</stringProp> <stringProp name="HTTPSampler.port">${RUNTIME_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/commission?name=NULL&version=0.0.0</stringProp> + <stringProp name="HTTPSampler.path">/onap/policy/clamp/acm/v2/compositions/${compositionId}</stringProp> <stringProp name="HTTPSampler.method">DELETE</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> @@ -1545,7 +2158,7 @@ <connectTime>true</connectTime> </value> </objProp> - <stringProp name="filename">./acm_stability/testsummary.jtl</stringProp> + <stringProp name="filename">/home/ramesh/run-test/testsummary.jtl</stringProp> </ResultCollector> <hashTree/> <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> @@ -1582,7 +2195,7 @@ <connectTime>true</connectTime> </value> </objProp> - <stringProp name="filename">./acm_stability/resultTree.log</stringProp> + <stringProp name="filename">/home/ramesh/acm_stability/testsummary.jtl</stringProp> </ResultCollector> <hashTree/> <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> @@ -1619,7 +2232,7 @@ <connectTime>true</connectTime> </value> </objProp> - <stringProp name="filename">./acm_stability/resultTable.log</stringProp> + <stringProp name="filename">/home/ramesh/./acm_stability/testsummary.jtl</stringProp> </ResultCollector> <hashTree/> </hashTree> |