false true false API_HOST 10.12.5.193 = API_PORT 30709 = https://${API_HOST}:${API_PORT}/policy/api/v1 healthcheck zb!XztG34 true false Accept application/json Content-Type application/json continue false 1 1 1 false true ${API_HOST} ${API_PORT} https /policy/api/v1/statistics GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.code == 200; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 33; } continue false -1 5 5 true 259200 5 true true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "policy_types": { "onap.policies.Monitoring": { "derived_from": "tosca.policies.Root", "version": "6.0.0", "description": "a base policy type for all policies that govern monitoring provisioning" }, "onap.policies.monitoring.cdap.tca.hi.lo.app": { "derived_from": "onap.policies.Monitoring", "version": "6.0.${__threadNum}", "properties": { "tca_policy": { "type": "onap.datatypes.monitoring.tca_policy", "description": "TCA Policy JSON", "required": true } } } }, "data_types": { "onap.datatypes.monitoring.metricsPerEventName": { "derived_from": "tosca.datatypes.Root", "properties": { "controlLoopSchemaType": { "type": "string", "required": true, "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM", "constraints": [ { "valid_values": [ "VM", "VNF" ] } ] }, "eventName": { "type": "string", "required": true, "description": "Event name to which thresholds need to be applied" }, "policyName": { "type": "string", "required": true, "description": "TCA Policy Scope Name" }, "policyScope": { "type": "string", "required": true, "description": "TCA Policy Scope" }, "policyVersion": { "type": "string", "required": true, "description": "TCA Policy Scope Version" }, "thresholds": { "type": "list", "required": true, "description": "Thresholds associated with eventName", "entry_schema": { "type": "onap.datatypes.monitoring.thresholds" } } } }, "onap.datatypes.monitoring.tca_policy": { "derived_from": "tosca.datatypes.Root", "properties": { "domain": { "type": "string", "required": true, "description": "Domain name to which TCA needs to be applied", "default": "measurementsForVfScaling", "constraints": [ { "equal": "measurementsForVfScaling" } ] }, "metricsPerEventName": { "type": "list", "required": true, "description": "Contains eventName and threshold details that need to be applied to given eventName", "entry_schema": { "type": "onap.datatypes.monitoring.metricsPerEventName" } } } }, "onap.datatypes.monitoring.thresholds": { "derived_from": "tosca.datatypes.Root", "properties": { "closedLoopControlName": { "type": "string", "required": true, "description": "Closed Loop Control Name associated with the threshold" }, "closedLoopEventStatus": { "type": "string", "required": true, "description": "Closed Loop Event Status of the threshold", "constraints": [ { "valid_values": [ "ONSET", "ABATED" ] } ] }, "direction": { "type": "string", "required": true, "description": "Direction of the threshold", "constraints": [ { "valid_values": [ "LESS", "LESS_OR_EQUAL", "GREATER", "GREATER_OR_EQUAL", "EQUAL" ] } ] }, "fieldPath": { "type": "string", "required": true, "description": "Json field Path as per CEF message which needs to be analyzed for TCA", "constraints": [ { "valid_values": [ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage", "$.event.measurementsForVfScalingFields.meanRequestLatency", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed", "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value" ] } ] }, "severity": { "type": "string", "required": true, "description": "Threshold Event Severity", "constraints": [ { "valid_values": [ "CRITICAL", "MAJOR", "MINOR", "WARNING", "NORMAL" ] } ] }, "thresholdValue": { "type": "integer", "required": true, "description": "Threshold value for the field Path inside CEF message" }, "version": { "type": "string", "required": true, "description": "Version number associated with the threshold" } } } } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 2; assert res.policy_types.values()[0] instanceof Map; assert res.policy_types.values()[1] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "policy_types": { "onap.policies.Monitoring": { "derived_from": "tosca.policies.Root", "version": "1.0.0", "description": "a base policy type for all policies that govern monitoring provisioning" }, "onap.policies.monitoring.cdap.tca.hi.lo.app": { "derived_from": "onap.policies.Monitoring", "version": "7.0.${__threadNum}", "properties": { "tca_policy": { "type": "onap.datatypes.monitoring.tca_policy", "description": "TCA Policy JSON", "required": true } } } }, "data_types": { "onap.datatypes.monitoring.metricsPerEventName": { "derived_from": "tosca.datatypes.Root", "properties": { "controlLoopSchemaType": { "type": "string", "required": true, "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM", "constraints": [ { "valid_values": [ "VM", "VNF" ] } ] }, "eventName": { "type": "string", "required": true, "description": "Event name to which thresholds need to be applied" }, "policyName": { "type": "string", "required": true, "description": "TCA Policy Scope Name" }, "policyScope": { "type": "string", "required": true, "description": "TCA Policy Scope" }, "policyVersion": { "type": "string", "required": true, "description": "TCA Policy Scope Version" }, "thresholds": { "type": "list", "required": true, "description": "Thresholds associated with eventName", "entry_schema": { "type": "onap.datatypes.monitoring.thresholds" } } } }, "onap.datatypes.monitoring.tca_policy": { "derived_from": "tosca.datatypes.Root", "properties": { "domain": { "type": "string", "required": true, "description": "Domain name to which TCA needs to be applied", "default": "measurementsForVfScaling", "constraints": [ { "equal": "measurementsForVfScaling" } ] }, "metricsPerEventName": { "type": "list", "required": true, "description": "Contains eventName and threshold details that need to be applied to given eventName", "entry_schema": { "type": "onap.datatypes.monitoring.metricsPerEventName" } } } }, "onap.datatypes.monitoring.thresholds": { "derived_from": "tosca.datatypes.Root", "properties": { "closedLoopControlName": { "type": "string", "required": true, "description": "Closed Loop Control Name associated with the threshold" }, "closedLoopEventStatus": { "type": "string", "required": true, "description": "Closed Loop Event Status of the threshold", "constraints": [ { "valid_values": [ "ONSET", "ABATED" ] } ] }, "direction": { "type": "string", "required": true, "description": "Direction of the threshold", "constraints": [ { "valid_values": [ "LESS", "LESS_OR_EQUAL", "GREATER", "GREATER_OR_EQUAL", "EQUAL" ] } ] }, "fieldPath": { "type": "string", "required": true, "description": "Json field Path as per CEF message which needs to be analyzed for TCA", "constraints": [ { "valid_values": [ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated", "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait", "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage", "$.event.measurementsForVfScalingFields.meanRequestLatency", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree", "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed", "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value" ] } ] }, "severity": { "type": "string", "required": true, "description": "Threshold Event Severity", "constraints": [ { "valid_values": [ "CRITICAL", "MAJOR", "MINOR", "WARNING", "NORMAL" ] } ] }, "thresholdValue": { "type": "integer", "required": true, "description": "Threshold value for the field Path inside CEF message" }, "version": { "type": "string", "required": true, "description": "Version number associated with the threshold" } } } } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 2; assert res.policy_types.values()[0] instanceof Map; assert res.policy_types.values()[1] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "policy_types": { "onap.policies.optimization.resource.AffinityPolicy": { "derived_from": "onap.policies.optimization.Resource", "version": "6.0.${__threadNum}", "properties": { "applicableResources": { "type": "list", "required": true, "entry_schema": { "type": "string", "constraints": [ { "valid_values": [ "any", "all" ] } ] } }, "affinityProperties": { "type": "policy.data.affinityProperties_properties", "required": true } } } }, "data_types": { "policy.data.affinityProperties_properties": { "derived_from": "tosca.nodes.Root", "properties": { "qualifier": { "type": "string", "constraints": [ { "valid_values": [ "same", "different" ] } ] }, "category": { "type": "string", "required": true } } } } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 1; assert res.policy_types.values()[0] instanceof Map; // assert res.policy_types.values()[1] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "policy_types": { "onap.policies.controlloop.guard.common.Blacklist": { "derived_from": "onap.policies.controlloop.guard.Common", "type_version": "1.0.0", "version": "6.0.${__threadNum}", "description": "Supports blacklist of entity id's from performing control loop actions on.", "properties": { "blacklist": { "type": "list", "description": "List of entity id's not allowed to have control loop operations on.", "required": true, "entry_schema": { "type": "string" } } } } } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 1; assert res.policy_types.values()[0] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "policy_types": { "onap.policies.Native": { "derived_from": "tosca.policies.Root", "description": "a base policy type for all native PDP policies", "version": "1.0.0" }, "onap.policies.native.Apex": { "derived_from": "onap.policies.Native", "description": "a policy type for native apex policies", "version": "6.0.${__threadNum}", "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" } } } } }, "data_types": { "onap.datatypes.native.apex.EngineService": { "derived_from": "tosca.datatypes.Root", "properties": { "name": { "type": "string", "description": "Specifies the engine name", "required": false, "default": "ApexEngineService" }, "version": { "type": "string", "description": "Specifies the engine version in double dotted format", "required": false, "default": "1.0.0" }, "id": { "type": "integer", "description": "Specifies the engine id", "required": true }, "instance_count": { "type": "integer", "description": "Specifies the number of engine threads that should be run", "required": true }, "deployment_port": { "type": "integer", "description": "Specifies the port to connect to for engine administration", "required": false, "default": 1 }, "policy_model_file_name": { "type": "string", "description": "The name of the file from which to read the APEX policy model", "required": false }, "policy_type_impl": { "type": "string", "description": "The policy type implementation from which to read the APEX policy model", "required": false }, "periodic_event_period": { "type": "string", "description": "The time interval in milliseconds for the periodic scanning event, 0 means don't scan", "required": false }, "engine": { "type": "onap.datatypes.native.apex.engineservice.Engine", "description": "The parameters for all engines in the APEX engine service", "required": true } } }, "onap.datatypes.native.apex.EventHandler": { "derived_from": "tosca.datatypes.Root", "properties": { "name": { "type": "string", "description": "Specifies the event handler name, if not specified this is set to the key name", "required": false }, "carrier_technology": { "type": "onap.datatypes.native.apex.CarrierTechnology", "description": "Specifies the carrier technology of the event handler (such as REST/Web Socket/Kafka)", "required": true }, "event_protocol": { "type": "onap.datatypes.native.apex.EventProtocol", "description": "Specifies the event protocol of events for the event handler (such as Yaml/JSON/XML/POJO)", "required": true }, "event_name": { "type": "string", "description": "Specifies the event name for events on this event handler, if not specified, the event name is read from or written to the event being received or sent", "required": false }, "event_name_filter": { "type": "string", "description": "Specifies a filter as a regular expression, events that do not match the filter are dropped, the default is to let all events through", "required": false }, "synchronous_mode": { "type": "boolean", "description": "Specifies the event handler is syncronous (receive event and send response)", "required": false, "default": false }, "synchronous_peer": { "type": "string", "description": "The peer event handler (output for input or input for output) of this event handler in synchronous mode, this parameter is mandatory if the event handler is in synchronous mode", "required": false }, "synchronous_timeout": { "type": "integer", "description": "The timeout in milliseconds for responses to be issued by APEX torequests, this parameter is mandatory if the event handler is in synchronous mode", "required": false }, "requestor_mode": { "type": "boolean", "description": "Specifies the event handler is in requestor mode (send event and wait for response mode)", "required": false, "default": false }, "requestor_peer": { "type": "string", "description": "The peer event handler (output for input or input for output) of this event handler in requestor mode, this parameter is mandatory if the event handler is in requestor mode", "required": false }, "requestor_timeout": { "type": "integer", "description": "The timeout in milliseconds for wait for responses to requests, this parameter is mandatory if the event handler is in requestor mode", "required": false } } }, "onap.datatypes.native.apex.CarrierTechnology": { "derived_from": "tosca.datatypes.Root", "properties": { "label": { "type": "string", "description": "The label (name) of the carrier technology (such as REST, Kafka, WebSocket)", "required": true }, "plugin_parameter_class_name": { "type": "string", "description": "The class name of the class that overrides default handling of event input or output for this carrier technology, defaults to the supplied input or output class", "required": false } } }, "onap.datatypes.native.apex.EventProtocol": { "derived_from": "tosca.datatypes.Root", "properties": { "label": { "type": "string", "description": "The label (name) of the event protocol (such as Yaml, JSON, XML, or POJO)", "required": true }, "event_protocol_plugin_class": { "type": "string", "description": "The class name of the class that overrides default handling of the event protocol for this carrier technology, defaults to the supplied event protocol class", "required": false } } }, "onap.datatypes.native.apex.Environment": { "derived_from": "tosca.datatypes.Root", "properties": { "name": { "type": "string", "description": "The name of the environment variable", "required": true }, "value": { "type": "string", "description": "The value of the environment variable", "required": true } } }, "onap.datatypes.native.apex.engineservice.Engine": { "derived_from": "tosca.datatypes.Root", "properties": { "context": { "type": "onap.datatypes.native.apex.engineservice.engine.Context", "description": "The properties for handling context in APEX engines, defaults to using Java maps for context", "required": false }, "executors": { "type": "map", "description": "The plugins for policy executors used in engines such as javascript, MVEL, Jython", "required": true, "entry_schema": { "description": "The plugin class path for this policy executor", "type": "string" } } } }, "onap.datatypes.native.apex.engineservice.engine.Context": { "derived_from": "tosca.datatypes.Root", "properties": { "distributor": { "type": "onap.datatypes.native.apex.Plugin", "description": "The plugin to be used for distributing context between APEX PDPs at runtime", "required": false }, "schemas": { "type": "map", "description": "The plugins for context schemas available in APEX PDPs such as Java and Avro", "required": false, "entry_schema": { "type": "onap.datatypes.native.apex.Plugin" } }, "locking": { "type": "onap.datatypes.native.apex.Plugin", "description": "The plugin to be used for locking context in and between APEX PDPs at runtime", "required": false }, "persistence": { "type": "onap.datatypes.native.apex.Plugin", "description": "The plugin to be used for persisting context for APEX PDPs at runtime", "required": false } } }, "onap.datatypes.native.apex.Plugin": { "derived_from": "tosca.datatypes.Root", "properties": { "name": { "type": "string", "description": "The name of the executor such as Javascript, Jython or MVEL", "required": true }, "plugin_class_name": { "type": "string", "description": "The class path of the plugin class for this executor" } } } } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 2; assert res.policy_types.values()[0] instanceof Map; assert res.policy_types.values()[1] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "policy_types": { "onap.policies.Native": { "derived_from": "tosca.policies.Root", "description": "a base policy type for all native PDP policies", "version": "1.0.0" }, "onap.policies.native.Drools": { "derived_from": "onap.policies.Native", "description": "a base policy type for all native PDP policies", "version": "1.0.0" }, "onap.policies.native.drools.Controller": { "derived_from": "onap.policies.native.Drools", "description": "a policy type for a drools controller configuration", "version": "6.0.${__threadNum}", "properties": { "controllerName": { "type": "string", "required": true, "description": "the drools controller name" }, "sourceTopics": { "type": "list", "required": false, "description": "source topics and applicable events", "entry_schema": { "type": "onap.datatypes.dmaap.topic" } }, "sinkTopics": { "type": "list", "required": false, "description": "sink topics and applicable events", "entry_schema": { "type": "onap.datatypes.dmaap.topic" } }, "customConfig": { "type": "map", "required": false, "description": "any use case specific configurations relevant to the drools controller", "entry_schema": { "type": "string" } } } }, "onap.policies.native.drools.Artifact": { "derived_from": "onap.policies.native.Drools", "description": "a policy type for native drools artifact policies", "version": "6.0.${__threadNum}", "properties": { "rulesArtifact": { "type": "onap.datatypes.native.rules_artifact", "required": true, "description": "the GAV information of the maven artifact" }, "controller": { "type": "onap.datatypes.drools.controller.relation", "required": true, "description": "the drools controller to which the current native policy is assigned" } } } }, "data_types": { "onap.datatypes.dmaap.topic": { "derived_from": "tosca.datatypes.Root", "properties": { "topicName": { "type": "string", "required": true, "description": "the dmaap topic name" }, "events": { "type": "list", "required": true, "description": "events used by this topic", "entry_schema": { "type": "onap.datatypes.dmaap.events" } } } }, "onap.datatypes.dmaap.events": { "derived_from": "tosca.datatypes.Root", "properties": { "eventClass": { "type": "string", "required": true, "description": "the event canonical class for serialization" }, "eventFilter": { "type": "string", "required": false, "description": "the JSONPath based condition to filter out the events to serialize" }, "customSerialization": { "type": "onap.datatypes.dmaap.custom_serialization", "required": false, "description": "overrides the default serialization/deserialization mechanisms with custom ones" } } }, "onap.datatypes.dmaap.custom_serialization": { "derived_from": "tosca.datatypes.Root", "properties": { "customSerializerClass": { "type": "string", "required": true, "description": "the class that contains the JSON parser serializer/deserializer." }, "jsonParser": { "type": "string", "required": true, "description": "static field in customSerialized class with the json parser (currently only gson supported)" } } }, "onap.datatypes.native.rules_artifact": { "derived_from": "tosca.datatypes.Root", "properties": { "groupId": { "type": "string", "required": true, "description": "the groupId of the maven artifact" }, "artifactId": { "type": "string", "required": true, "description": "the artifactId of the maven artifact" }, "version": { "type": "string", "required": true, "description": "the version of the maven artifact" } } }, "onap.datatypes.drools.controller.relation": { "derived_from": "tosca.datatypes.Root", "properties": { "controllerName": { "type": "string", "required": true, "description": "the name of drools controller policy" } } } } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 4; assert res.policy_types.values()[0] instanceof Map; assert res.policy_types.values()[1] instanceof Map; assert res.policy_types.values()[2] instanceof Map; assert res.policy_types.values()[3] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "policy_types": { "onap.policies.Native": { "derived_from": "tosca.policies.Root", "description": "a base policy type for all native PDP policies", "version": "1.0.0" }, "onap.policies.native.Xacml": { "derived_from": "onap.policies.Native", "description": "a policy type for native xacml policies", "version": "6.0.${__threadNum}", "properties": { "policy": { "type": "string", "required": true, "description": "The XML XACML 3.0 PolicySet or Policy", "metadata": { "encoding": "Base64" } } } } } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 2; assert res.policy_types.values()[0] instanceof Map; assert res.policy_types.values()[1] instanceof Map; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 33; def n = 33; for (i=0; i<n; i++) { assert res.policy_types.values()[i] instanceof Map; } } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app GET true false true false This is not working in Frankfurt and hence disabled. 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() > 0 && res.policy_types.size() < 10; for (i=0; i<res.policy_types.size(); i++) { assert res.policy_types.values()[i] instanceof Map; } } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 2; assert res.policy_types.get('onap.policies.monitoring.cdap.tca.hi.lo.app') instanceof Map; assert res.policy_types.get('onap.policies.monitoring.cdap.tca.hi.lo.app').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.optimization.resource.AffinityPolicy/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 3; assert res.policy_types.get('onap.policies.optimization.resource.AffinityPolicy') instanceof Map; assert res.policy_types.get('onap.policies.optimization.resource.AffinityPolicy').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 2; assert res.policy_types.get('onap.policies.controlloop.guard.common.Blacklist') instanceof Map; assert res.policy_types.get('onap.policies.controlloop.guard.common.Blacklist').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.Apex/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 2; assert res.policy_types.get('onap.policies.native.Apex') instanceof Map; assert res.policy_types.get('onap.policies.native.Apex').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.drools.Controller/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 3; assert res.policy_types.get('onap.policies.native.drools.Controller') instanceof Map; assert res.policy_types.get('onap.policies.native.drools.Controller').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.Xacml/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 2; assert res.policy_types.get('onap.policies.native.Xacml') instanceof Map; assert res.policy_types.get('onap.policies.native.Xacml').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/latest GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() > 0 && res.policy_types.size() < 10; assert res.policy_types.get('onap.policies.monitoring.cdap.tca.hi.lo.app') instanceof Map; assert res.policy_types.get('onap.policies.monitoring.cdap.tca.hi.lo.app').version ==~ /7.0.\d+/; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "topology_template": { "policies": [ { "onap.restart.tca": { "type": "onap.policies.monitoring.cdap.tca.hi.lo.app", "type_version": "6.0.${__threadNum}", "version": "6.0.${__threadNum}", "metadata": { "policy-id": "onap.restart.tca" }, "properties": { "tca_policy": { "domain": "measurementsForVfScaling", "metricsPerEventName": [ { "eventName": "Measurement_vGMUX", "controlLoopSchemaType": "VNF", "policyScope": "DCAE", "policyName": "DCAE.Config_tca-hi-lo", "policyVersion": "v0.0.1", "thresholds": [ { "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", "thresholdValue": 0, "direction": "EQUAL", "severity": "MAJOR", "closedLoopEventStatus": "ABATED" }, { "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", "thresholdValue": 0, "direction": "GREATER", "severity": "CRITICAL", "closedLoopEventStatus": "ONSET" } ] } ] } } } } ] } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "topology_template": { "policies": [ { "onap.restart.tca": { "type": "onap.policies.monitoring.cdap.tca.hi.lo.app", "type_version": "7.0.${__threadNum}", "version": "7.0.${__threadNum}", "metadata": { "policy-id": "onap.restart.tca" }, "properties": { "tca_policy": { "domain": "measurementsForVfScaling", "metricsPerEventName": [ { "eventName": "Measurement_vGMUX", "controlLoopSchemaType": "VNF", "policyScope": "DCAE", "policyName": "DCAE.Config_tca-hi-lo", "policyVersion": "v0.0.1", "thresholds": [ { "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", "thresholdValue": 0, "direction": "EQUAL", "severity": "MAJOR", "closedLoopEventStatus": "ABATED" }, { "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", "thresholdValue": 0, "direction": "GREATER", "severity": "CRITICAL", "closedLoopEventStatus": "ONSET" } ] } ] } } } } ] } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "topology_template": { "policies": [ { "OSDF_CASABLANCA.Affinity_Default": { "type": "onap.policies.optimization.resource.AffinityPolicy", "version": "6.0.${__threadNum}", "type_version": "6.0.${__threadNum}", "metadata": { "policy-id": "OSDF_CASABLANCA.Affinity_Default", "policy-version": 1 }, "properties": { "scope": [], "services": [], "resources": [], "geography": [], "identity": "affinity_vCPE", "applicableResources": "any", "affinityProperties": { "qualifier": "same", "category": "complex" } } } } ] } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.optimization.resource.AffinityPolicy/versions/2.0.0/policies POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "topology_template": { "policies": [ { "guard.blacklist.scaleout": { "type": "onap.policies.controlloop.guard.common.Blacklist", "type_version": "6.0.${__threadNum}", "version": "6.0.${__threadNum}", "metadata": { "policy-id": "guard.blacklist.scaleout" }, "properties": { "actor": "SO", "operation": "VF Module Create", "id": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3", "blacklist": [ "the-vfmodule-where-root-is-true", "another-vfmodule-where-root-is-true" ] } } } ] } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/policies POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "topology_template": { "policies": [ { "operational.apex.vCPE": { "type": "onap.policies.native.Apex", "type_version": "6.0.${__threadNum}", "derived_from": "tosca.policies.Root", "name": "operational.apex.vCPE", "version": "6.0.${__threadNum}", "properties": { "engineServiceParameters": { "name": "MyApexEngine", "version": "0.0.1", "id": 45, "instanceCount": 4, "deploymentPort": 12561, "policy_type_impl": { }, "engineParameters": { "executorParameters": { "JAVASCRIPT": { "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters" } }, "contextParameters": { "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters", "schemaParameters": { "Avro": { "parameterClassName": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters" }, "Java": { "parameterClassName": "org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters", "jsonAdapters": { "Instant": { "adaptedClass": "java.time.Instant", "adaptorClass": "org.onap.policy.controlloop.util.Serialization$GsonInstantAdapter" } } } } }, "taskParameters": [ { "key": "ParameterKey1", "value": "ParameterValue1" }, { "taskId": "AAILookupTask:0.0.1", "key": "SomeKeyForThisTask", "value": "Value" } ] } }, "eventInputParameters": { "GuardRequestorConsumer": { "carrierTechnologyParameters": { "carrierTechnology": "RESTREQUESTOR", "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters", "parameters": { "url": "http://111.222.333.444:5555/pdp/api/getDecision", "httpMethod": "POST", "restRequestTimeout": 2000, "httpHeader": "Authorization:aaaaaaaaa== ClientAuth:bbbbbbbbb=" } }, "eventProtocolParameters": { "eventProtocol": "JSON" }, "eventName": "GuardResponseEvent", "eventNameFilter": "GuardResponseEvent", "requestorMode": true, "requestorPeer": "GuardRequestorProducer", "requestorTimeout": 500 }, "DCAEConsumer": { "carrierTechnologyParameters": { "carrierTechnology": "RESTCLIENT", "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", "parameters": { "url": "http://message-router:3904/events/unauthenticated.DCAE_CL_OUTPUT/APEX/1?timeout=60000" } }, "eventProtocolParameters": { "eventProtocol": "JSON", "parameters": { "nameAlias": "closedLoopControlName", "versionAlias": "version", "sourceAlias": "from", "pojoField": "VirtualControlLoopEvent" } }, "eventName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e" }, "APPCConsumer": { "carrierTechnologyParameters": { "carrierTechnology": "RESTCLIENT", "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", "parameters": { "url": "http://message-router:3904/events/APPC-LCM-WRITE/APEX/1?timeout=60000" } }, "eventProtocolParameters": { "eventProtocol": "JSON", "parameters": { "versionAlias": "version", "pojoField": "APPCLCMResponseEvent" } }, "eventName": "APPCRestartVNFResponseEvent", "eventNameFilter": "APPCRestartVNFResponseEvent" } }, "eventOutputParameters": { "logProducer": { "carrierTechnologyParameters": { "carrierTechnology": "FILE", "parameters": { "fileName": "/tmp/VCPEEventsOut.json" } }, "eventProtocolParameters": { "eventProtocol": "JSON" } }, "GuardRequestorProducer": { "carrierTechnologyParameters": { "carrierTechnology": "RESTREQUESTOR", "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters" }, "eventProtocolParameters": { "eventProtocol": "JSON" }, "eventNameFilter": "GuardRequestEvent", "requestorMode": true, "requestorPeer": "GuardRequestorConsumer", "requestorTimeout": 500 }, "APPCProducer": { "carrierTechnologyParameters": { "carrierTechnology": "RESTCLIENT", "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", "parameters": { "url": "http://message-router:3904/events/APPC-LCM-READ" } }, "eventProtocolParameters": { "eventProtocol": "JSON", "parameters": { "versionAlias": "version", "sourceAlias": "from", "pojoField": "APPCLCMRequestEvent" } }, "eventNameFilter": "APPCRestartVNFRequestEvent" }, "PolicyLogProducer": { "carrierTechnologyParameters": { "carrierTechnology": "RESTCLIENT", "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", "parameters": { "url": "http://message-router:3904/events/POLICY-CL-MGT" } }, "eventProtocolParameters": { "eventProtocol": "JSON", "parameters": { "versionAlias": "version", "sourceAlias": "from", "pojoField": "VirtualControlLoopNotification" } }, "eventNameFilter": "ControlLoopLogEvent" } } } } } ] } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policies POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "topology_template": { "policies": [ { "usecases.artifacts": { "type": "onap.policies.native.drools.Artifact", "type_version": "6.0.${__threadNum}", "name": "usecases.artifacts", "version": "6.0.${__threadNum}", "metadata": { "policy-id": "usecases.artifacts" }, "properties": { "rulesArtifact": { "groupId": "org.onap.policy.drools-applications.controlloop.common", "artifactId": "controller-usecases", "version": "1.6.1" }, "controller": { "name": "frankfurt" } } } } ] } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policies POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; } true false { "tosca_definitions_version": "tosca_simple_yaml_1_1_0", "topology_template": { "policies": [ { "onap.policies.native.xacml.NativeXacmlPolicy": { "type": "onap.policies.native.Xacml", "type_version": "6.0.${__threadNum}", "version": "6.0.${__threadNum}", "metadata": { "policy-id": "onap.policies.native.xacml.NativeXacmlPolicy" }, "properties": { "tca_policy": { "domain": "measurementsForVfScaling", "metricsPerEventName": [ { "eventName": "Measurement_vGMUX", "controlLoopSchemaType": "VNF", "policyScope": "DCAE", "policyName": "DCAE.Config_tca-hi-lo", "policyVersion": "v0.0.1", "thresholds": [ { "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", "thresholdValue": 0, "direction": "EQUAL", "severity": "MAJOR", "closedLoopEventStatus": "ABATED" }, { "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", "thresholdValue": 0, "direction": "GREATER", "severity": "CRITICAL", "closedLoopEventStatus": "ONSET" } ] } ] } } } } ] } } = ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/2.0.0/policies POST true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/6.0.${__threadNum}/policies GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size > 0 && res.topology_template.policies.size < 10; for (i=0; i<res.topology_template.policies.size; i++) { assert res.topology_template.policies[i] instanceof Map; } } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/6.0.${__threadNum}/policies GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size > 0 && res.topology_template.policies.size < 6; for (i=0; i<res.topology_template.policies.size; i++) { assert res.topology_template.policies[i] instanceof Map; assert res.topology_template.policies[i].get('onap.restart.tca').version == "6.0.${__threadNum}"; } } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/6.0.${__threadNum}/policies/onap.restart.tca/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies [0].get('onap.restart.tca').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.optimization.resource.AffinityPolicy/versions/6.0.${__threadNum}/policies/OSDF_CASABLANCA.Affinity_Default/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies [0].get('OSDF_CASABLANCA.Affinity_Default').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/6.0.${__threadNum}/policies/guard.blacklist.scaleout/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies [0].get('guard.blacklist.scaleout').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.Apex/versions/6.0.${__threadNum}/policies/operational.apex.vCPE/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies [0].get('operational.apex.vCPE').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.drools.Artifact/versions/6.0.${__threadNum}/policies/usecases.artifacts/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies [0].get('usecases.artifacts').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.Xacml/versions/6.0.${__threadNum}/policies/onap.policies.native.xacml.NativeXacmlPolicy/versions/6.0.${__threadNum} GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies [0].get('onap.policies.native.xacml.NativeXacmlPolicy').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/6.0.${__threadNum}/policies/onap.restart.tca/versions/latest GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies [0].get('onap.restart.tca').version ==~ /6.0.\d+/; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/6.0.${__threadNum}/policies/onap.restart.tca/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies[0].get('onap.restart.tca').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/6.0.${__threadNum}/policies/onap.restart.tca/versions/7.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies[0].get('onap.restart.tca').version == "7.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.optimization.resource.AffinityPolicy/versions/6.0.${__threadNum}/policies/OSDF_CASABLANCA.Affinity_Default/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies[0].get('OSDF_CASABLANCA.Affinity_Default').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/6.0.${__threadNum}/policies/guard.blacklist.scaleout/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies[0].get('guard.blacklist.scaleout').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.Apex/versions/6.0.${__threadNum}/policies/operational.apex.vCPE/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies[0].get('operational.apex.vCPE').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.drools.Artifact/versions/6.0.${__threadNum}/policies/usecases.artifacts/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies[0].get('usecases.artifacts').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.Xacml/versions/6.0.${__threadNum}/policies/onap.policies.native.xacml.NativeXacmlPolicy/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.topology_template.policies instanceof List; assert res.topology_template.policies.size == 1; assert res.topology_template.policies[0] instanceof Map; assert res.topology_template.policies[0].get('onap.policies.native.xacml.NativeXacmlPolicy').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '409') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof List; assert res.policy_types.size == 1; assert res.policy_types[0] instanceof Map; assert res.policy_types[0].get('onap.policies.monitoring.cdap.tca.hi.lo.app').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/7.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '409') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof List; assert res.policy_types.size == 1; assert res.policy_types[0] instanceof Map; assert res.policy_types[0].get('onap.policies.monitoring.cdap.tca.hi.lo.app').version == "7.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.optimization.resource.AffinityPolicy/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '409') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof List; assert res.policy_types.size == 1; assert res.policy_types[0] instanceof Map; assert res.policy_types[0].get('onap.policies.optimization.resource.AffinityPolicy').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.get('onap.policies.controlloop.guard.common.Blacklist').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.Apex/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.get('onap.policies.native.Apex').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.drools.Controller/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.get('onap.policies.native.drools.Controller').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.drools.Artifact/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.get('onap.policies.native.drools.Artifact').version == "6.0.${__threadNum}"; } ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes/onap.policies.native.Xacml/versions/6.0.${__threadNum} DELETE true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.get('onap.policies.native.Xacml').version == "6.0.${__threadNum}"; } stoptest false 1 1 1 false true ${API_HOST} ${API_PORT} https /policy/api/v1/healthcheck GET true false true false 200 Assertion.response_code false 1 true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.code == 200; assert res.name == "Policy API"; assert res.healthy==true; assert res.message=="alive"; } groovy ${API_HOST} ${API_PORT} https /policy/api/v1/policytypes GET true false true false 200 Assertion.response_code false 1 groovy true import groovy.json.JsonSlurper; def res = []; if (prev.getResponseCode() == '200') { def jsonSlurper = new JsonSlurper(); res = jsonSlurper.parseText(prev.getResponseDataAsString()); assert res instanceof Map; assert res.policy_types instanceof Map; assert res.policy_types.size() == 27; } false saveConfig true true true true true true true false true true false false false true false false false true 0 true true true true true true /home/liam/work/WIndriver/summary.log false saveConfig true true true true true true true false true true false false false true false false false true 0 true true true true true true /home/ubuntu/s3p/stability.log false saveConfig true true true true true true true false true true false false false true false false false true 0 true true true true true true /home/liam/work/WIndriver/Results.log