-Dserver.ssl.keyStorePassword="${KEYSTORE_PASSWD}" \
-Djavax.net.ssl.trustStore="${TRUSTSTORE}" \
-Djavax.net.ssl.trustStorePassword="${TRUSTSTORE_PASSWD}" \
+ -Dcom.sun.management.jmxremote.rmi.port=9090 \
+ -Dcom.sun.management.jmxremote=true \
+ -Dcom.sun.management.jmxremote.port=9090 \
+ -Dcom.sun.management.jmxremote.ssl=false \
+ -Dcom.sun.management.jmxremote.authenticate=false \
+ -Dcom.sun.management.jmxremote.local.only=false \
-jar /app/app.jar \
--spring.config.location="${POLICY_HOME}/config/ClRuntimeParameters.yaml"
implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl
databaseDriver: org.mariadb.jdbc.Driver
databaseUrl: jdbc:mariadb://${mariadb.host:mariadb}:${mariadb.port:3306}/controlloop
- databaseUser: policy
- databasePassword: P01icY
+ databaseUser: policy_user
+ databasePassword: policy_user
persistenceUnit: CommissioningMariaDb
topicParameterGroup:
topicSources:
--- /dev/null
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.onap.policy.clamp</groupId>
+ <artifactId>clamp-testsuites</artifactId>
+ <version>6.1.3-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>clamp-performance</artifactId>
+</project>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Policy Clamp ControlLoop Performance" enabled="true">
+ <stringProp name="TestPlan.comments">Policy Clamp ControlLoop Performance Tests</stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">true</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="RUNTIME_HOST" elementType="Argument">
+ <stringProp name="Argument.name">RUNTIME_HOST</stringProp>
+ <stringProp name="Argument.value">192.168.32.9</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="RUNTIME_PORT" elementType="Argument">
+ <stringProp name="Argument.name">RUNTIME_PORT</stringProp>
+ <stringProp name="Argument.value">6969</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">192.168.32.8</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">6970</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>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="LOGS_PATH" elementType="Argument">
+ <stringProp name="Argument.name">LOGS_PATH</stringProp>
+ <stringProp name="Argument.value">${HOME_PATH}/controlloop_perf/</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="DURATION" elementType="Argument">
+ <stringProp name="Argument.name">DURATION</stringProp>
+ <stringProp name="Argument.value">${__P(DURATION,14400)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="USERS" elementType="Argument">
+ <stringProp name="Argument.name">USERS</stringProp>
+ <stringProp name="Argument.value">${__P(USERS,5)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <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/controlloop/v2</stringProp>
+ <stringProp name="Authorization.username">healthcheck</stringProp>
+ <stringProp name="Authorization.password">zb!XztG34</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.clearEachIteration">true</boolProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Accept</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp 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">260000</stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </SetupThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Comission control loop 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_1_0",
+ "data_types": {
+ "onap.datatypes.ToscaConceptIdentifier": {
+ "derived_from": "tosca.datatypes.Root",
+ "properties": {
+ "name": {
+ "type": "string",
+ "required": true
+ },
+ "version": {
+ "type": "string",
+ "required": true
+ }
+ }
+ },
+ "org.onap.datatypes.policy.clamp.controlloop.DCAEMicroserviceControlLoopElementConsulInfo": {
+ "name": "org.onap.datatypes.policy.clamp.controlloop.DCAEMicroserviceControlLoopElementConsulInfo",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "properties": {
+ "consulUrl": {
+ "name": "consulUrl",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Consul url for this entry",
+ "required": true
+ },
+ "consul_body": {
+ "name": "consulBody",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Body of Consul entry",
+ "required": true
+ }
+ }
+ },
+ "onap.datatype.controlloop.Target": {
+ "derived_from": "tosca.datatypes.Root",
+ "description": "Definition for a entity in A&AI to perform a control loop operation on",
+ "properties": {
+ "targetType": {
+ "type": "string",
+ "description": "Category for the target type",
+ "required": true,
+ "constraints": [
+ {
+ "valid_values": [
+ "VNF",
+ "VM",
+ "VFMODULE",
+ "PNF"
+ ]
+ }
+ ]
+ },
+ "entityIds": {
+ "type": "map",
+ "description": "Map of values that identify the resource. If none are provided, it is assumed that the\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.controlloop.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.controlloop.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.controlloop.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.controlloop.Actor",
+ "description": "The definition of the operation to be performed.",
+ "required": true
+ },
+ "timeout": {
+ "type": "integer",
+ "description": "The amount of time for the actor to perform the operation.",
+ "required": true
+ },
+ "retries": {
+ "type": "integer",
+ "description": "The number of retries the actor should attempt to perform the operation.",
+ "required": true,
+ "default": 0
+ },
+ "success": {
+ "type": "string",
+ "description": "Points to the operation to invoke on success. A value of \"final_success\" indicates and end to the operation.",
+ "required": false,
+ "default": "final_success"
+ },
+ "failure": {
+ "type": "string",
+ "description": "Points to the operation to invoke on Actor operation failure.",
+ "required": false,
+ "default": "final_failure"
+ },
+ "failure_timeout": {
+ "type": "string",
+ "description": "Points to the operation to invoke when the time out for the operation occurs.",
+ "required": false,
+ "default": "final_failure_timeout"
+ },
+ "failure_retries": {
+ "type": "string",
+ "description": "Points to the operation to invoke when the current operation has exceeded its max retries.",
+ "required": false,
+ "default": "final_failure_retries"
+ },
+ "failure_exception": {
+ "type": "string",
+ "description": "Points to the operation to invoke when the current operation causes an exception.",
+ "required": false,
+ "default": "final_failure_exception"
+ },
+ "failure_guard": {
+ "type": "string",
+ "description": "Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.",
+ "required": false,
+ "default": "final_failure_guard"
+ }
+ }
+ },
+ "onap.datatypes.monitoring.managedObjectDNsBasic": {
+ "constraints": [],
+ "properties": {
+ "DN": {
+ "name": "DN",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Managed object distinguished name",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.managedObjectDNsBasic",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.managedObjectDNsBasics": {
+ "constraints": [],
+ "properties": {
+ "managedObjectDNsBasic": {
+ "name": "managedObjectDNsBasic",
+ "type": "map",
+ "typeVersion": "0.0.0",
+ "description": "Managed object distinguished name object",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.managedObjectDNsBasic",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.managedObjectDNsBasics",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.measurementGroup": {
+ "constraints": [],
+ "properties": {
+ "measurementTypes": {
+ "name": "measurementTypes",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of measurement types",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.measurementTypes",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "managedObjectDNsBasic": {
+ "name": "managedObjectDNsBasic",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of managed object distinguished names",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.managedObjectDNsBasics",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.measurementGroup",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.measurementGroups": {
+ "constraints": [],
+ "properties": {
+ "measurementGroup": {
+ "name": "measurementGroup",
+ "type": "map",
+ "typeVersion": "0.0.0",
+ "description": "Measurement Group",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.measurementGroup",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.measurementGroups",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.measurementType": {
+ "constraints": [],
+ "properties": {
+ "measurementType": {
+ "name": "measurementType",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Measurement type",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.measurementType",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.measurementTypes": {
+ "constraints": [],
+ "properties": {
+ "measurementType": {
+ "name": "measurementType",
+ "type": "map",
+ "typeVersion": "0.0.0",
+ "description": "Measurement type object",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.measurementType",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.measurementTypes",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.nfFilter": {
+ "constraints": [],
+ "properties": {
+ "modelNames": {
+ "name": "modelNames",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of model names",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "modelInvariantIDs": {
+ "name": "modelInvariantIDs",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of model invariant IDs",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "modelVersionIDs": {
+ "name": "modelVersionIDs",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of model version IDs",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "nfNames": {
+ "name": "nfNames",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of network functions",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.nfFilter",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.subscription": {
+ "constraints": [],
+ "properties": {
+ "measurementGroups": {
+ "name": "measurementGroups",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "Measurement Groups",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.measurementGroups",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "fileBasedGP": {
+ "name": "fileBasedGP",
+ "type": "integer",
+ "typeVersion": "0.0.0",
+ "description": "File based granularity period",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ },
+ "fileLocation": {
+ "name": "fileLocation",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "ROP file location",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ },
+ "subscriptionName": {
+ "name": "subscriptionName",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Name of the subscription",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ },
+ "administrativeState": {
+ "name": "administrativeState",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "State of the subscription",
+ "required": true,
+ "constraints": [
+ {
+ "valid_values": [
+ "LOCKED",
+ "UNLOCKED"
+ ]
+ }
+ ],
+ "metadata": {}
+ },
+ "nfFilter": {
+ "name": "nfFilter",
+ "type": "map",
+ "typeVersion": "0.0.0",
+ "description": "Network function filter",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.nfFilter",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.subscription",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ }
+ },
+ "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.test123": {
+ "derived_from": "tosca.policies.Root",
+ "description": "a base policy type for all policies that govern monitoring provisioning",
+ "version": "1.0.0",
+ "name": "onap.policies.test123"
+ },
+ "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.controlloop.operational.Common": {
+ "derived_from": "tosca.policies.Root",
+ "version": "1.0.0",
+ "name": "onap.policies.controlloop.operational.Common",
+ "description": "Operational Policy for Control Loop 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 control loop 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 control loop from DCAE.",
+ "required": true,
+ "default": false
+ },
+ "trigger": {
+ "type": "string",
+ "description": "Initial operation to execute upon receiving an Onset event message for the Control Loop.",
+ "required": true
+ },
+ "operations": {
+ "type": "list",
+ "description": "List of operations to be performed when Control Loop is triggered.",
+ "required": true,
+ "entry_schema": {
+ "type": "onap.datatype.controlloop.Operation"
+ }
+ }
+ }
+ },
+ "onap.policies.controlloop.operational.common.Apex": {
+ "derived_from": "onap.policies.controlloop.operational.Common",
+ "type_version": "1.0.0",
+ "version": "1.0.0",
+ "name": "onap.policies.controlloop.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.controlloop.Participant": {
+ "version": "1.0.1",
+ "derived_from": "tosca.nodetypes.Root",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "requred": false
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.ControlLoopElement": {
+ "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 control loop element"
+ },
+ "participantType": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "required": true,
+ "metadata": {
+ "common": true
+ },
+ "description": "The identity of the participant type that hosts this type of Control Loop Element"
+ },
+ "startPhase": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "metadata": {
+ "common": true
+ },
+ "description": "A value indicating the start phase in which this control loop element will be started, the first start phase is zero. Control Loop Elements are started in their start_phase order and stopped in reverse start phase order. Control Loop Elements with the same start phase are started and stopped simultaneously"
+ },
+ "uninitializedToPassiveTimeout": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "default": 60,
+ "metadata": {
+ "common": true
+ },
+ "description": "The maximum time in seconds to wait for a state chage from uninitialized to passive"
+ },
+ "passiveToRunningTimeout": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "default": 60,
+ "metadata": {
+ "common": true
+ },
+ "description": "The maximum time in seconds to wait for a state chage from passive to running"
+ },
+ "runningToPassiveTimeout": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "default": 60,
+ "metadata": {
+ "common": true
+ },
+ "description": "The maximum time in seconds to wait for a state chage from running to passive"
+ },
+ "passiveToUninitializedTimeout": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "default": 60,
+ "metadata": {
+ "common": true
+ },
+ "description": "The maximum time in seconds to wait for a state chage from passive to uninitialized"
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.ControlLoop": {
+ "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 control loop element"
+ },
+ "elements": {
+ "type": "list",
+ "required": true,
+ "metadata": {
+ "common": true
+ },
+ "entry_schema": {
+ "type": "onap.datatypes.ToscaConceptIdentifier"
+ },
+ "description": "Specifies a list of control loop element definitions that make up this control loop definition"
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement",
+ "properties": {
+ "dcae_blueprint_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": false
+ },
+ "dcae_blueprint": {
+ "type": "onap.dcae.cloudify_blueprint",
+ "requred": false
+ },
+ "consul_info": {
+ "type": "list",
+ "required": false,
+ "entry_schema": {
+ "type": "org.onap.datatypes.policy.clamp.controlloop.DCAEMicroserviceControlLoopElementConsulInfo"
+ }
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.PolicyControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement",
+ "properties": {
+ "policy_type_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": true
+ },
+ "policy_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": false
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.DerivedPolicyControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.PolicyControlLoopElement",
+ "properties": {
+ "policy_type_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": true
+ },
+ "policy_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": false
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.DerivedDerivedPolicyControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.DerivedPolicyControlLoopElement",
+ "properties": {
+ "policy_type_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": true
+ },
+ "policy_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": false
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.CDSControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement",
+ "properties": {
+ "cds_blueprint_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": true
+ }
+ }
+ }
+ },
+ "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.dcae.controlloop.DCAEMicroserviceControlLoopParticipant": {
+ "version": "2.3.4",
+ "type": "org.onap.policy.clamp.controlloop.Participant",
+ "type_version": "1.0.1",
+ "description": "Participant for DCAE microservices",
+ "properties": {
+ "provider": "ONAP"
+ }
+ },
+ "org.onap.policy.controlloop.PolicyControlLoopParticipant": {
+ "version": "2.3.1",
+ "type": "org.onap.policy.clamp.controlloop.Participant",
+ "type_version": "1.0.1",
+ "description": "Participant for DCAE microservices",
+ "properties": {
+ "provider": "ONAP"
+ }
+ },
+ "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement": {
+ "version": "1.2.3",
+ "type": "org.onap.policy.clamp.controlloop.PolicyControlLoopElement",
+ "type_version": "1.0.0",
+ "description": "Control loop element for the monitoring policy for Performance Management Subscription Handling",
+ "properties": {
+ "provider": "Ericsson",
+ "participantType": {
+ "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+ "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_OperationalPolicyControlLoopElement": {
+ "version": "1.2.3",
+ "type": "org.onap.policy.clamp.controlloop.PolicyControlLoopElement",
+ "type_version": "1.0.0",
+ "description": "Control loop element for the operational policy for Performance Management Subscription Handling",
+ "properties": {
+ "provider": "Ericsson",
+ "participantType": {
+ "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+ "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.domain.pmsh.PMSHControlLoopDefinition": {
+ "version": "1.2.3",
+ "type": "org.onap.policy.clamp.controlloop.ControlLoop",
+ "type_version": "1.0.0",
+ "description": "Control loop for Performance Management Subscription Handling",
+ "properties": {
+ "provider": "Ericsson",
+ "elements": [
+ {
+ "name": "org.onap.domain.pmsh.PMSH_DCAEMicroservice",
+ "version": "1.2.3"
+ },
+ {
+ "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement",
+ "version": "1.2.3"
+ },
+ {
+ "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement",
+ "version": "1.2.3"
+ }
+ ]
+ }
+ }
+ }
+ }
+}</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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/commission</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>
+ <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/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Instantiate control loop" 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">{
+ "controlLoopList": [
+ {
+ "name": "PMSHInstance0",
+ "version": "1.0.1",
+ "definition": {
+ "name": "org.onap.domain.pmsh.PMSHControlLoopDefinition",
+ "version": "1.2.3"
+ },
+ "state": "UNINITIALISED",
+ "orderedState": "UNINITIALISED",
+ "description": "PMSH control loop instance 0",
+ "elements": {
+ "709c62b3-8918-41b9-a747-d21eb79c6c21": {
+ "id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
+ "definition": {
+ "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement",
+ "version": "1.2.3"
+ },
+ "participantType":{
+ "name":"org.onap.policy.controlloop.PolicyControlLoopParticipant",
+ "version":"2.3.1"
+ },
+ "participantId":{
+ "name":"org.onap.PM_Policy",
+ "version":"1.0.0"
+ },
+ "state":"UNINITIALISED",
+ "orderedState":"UNINITIALISED",
+ "toscaServiceTemplateFragment":{
+ "data_types":{
+ "onap.datatype.controlloop.Actor":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "payload":{
+ "name":"payload",
+ "type":"map",
+ "type_version":"0.0.0",
+ "description":"Name/value pairs of payload information passed by Policy to the actor",
+ "required":false,
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0"
+ },
+ "metadata":{
+ "clamp_possible_values":"ClampExecution:CDS/payload"
+ }
+ },
+ "target":{
+ "name":"target",
+ "type":"onap.datatype.controlloop.Target",
+ "type_version":"0.0.0",
+ "description":"The resource the operation should be performed on.",
+ "required":true
+ },
+ "actor":{
+ "name":"actor",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The actor performing the operation.",
+ "required":true,
+ "metadata":{
+ "clamp_possible_values":"Dictionary:DefaultActors,ClampExecution:CDS/actor"
+ }
+ },
+ "operation":{
+ "name":"operation",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The operation the actor is performing.",
+ "required":true,
+ "metadata":{
+ "clamp_possible_values":"Dictionary:DefaultOperations,ClampExecution:CDS/operation"
+ }
+ }
+ },
+ "name":"onap.datatype.controlloop.Actor",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ },
+ "description":"An actor/operation/target definition"
+ },
+ "onap.datatype.controlloop.Operation":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "failure_retries":{
+ "name":"failure_retries",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke when the current operation has exceeded its max retries.",
+ "default":"final_failure_retries",
+ "required":false
+ },
+ "id":{
+ "name":"id",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Unique identifier for the operation",
+ "required":true
+ },
+ "failure_timeout":{
+ "name":"failure_timeout",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke when the time out for the operation occurs.",
+ "default":"final_failure_timeout",
+ "required":false
+ },
+ "failure":{
+ "name":"failure",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke on Actor operation failure.",
+ "default":"final_failure",
+ "required":false
+ },
+ "operation":{
+ "name":"operation",
+ "type":"onap.datatype.controlloop.Actor",
+ "type_version":"0.0.0",
+ "description":"The definition of the operation to be performed.",
+ "required":true
+ },
+ "failure_guard":{
+ "name":"failure_guard",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.",
+ "default":"final_failure_guard",
+ "required":false
+ },
+ "retries":{
+ "name":"retries",
+ "type":"integer",
+ "type_version":"0.0.0",
+ "description":"The number of retries the actor should attempt to perform the operation.",
+ "default":0.0,
+ "required":true
+ },
+ "timeout":{
+ "name":"timeout",
+ "type":"integer",
+ "type_version":"0.0.0",
+ "description":"The amount of time for the actor to perform the operation.",
+ "required":true
+ },
+ "failure_exception":{
+ "name":"failure_exception",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke when the current operation causes an exception.",
+ "default":"final_failure_exception",
+ "required":false
+ },
+ "description":{
+ "name":"description",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"A user-friendly description of the intent for the operation",
+ "required":false
+ },
+ "success":{
+ "name":"success",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke on success. A value of \"final_success\" indicates and end to the operation.",
+ "default":"final_success",
+ "required":false
+ }
+ },
+ "name":"onap.datatype.controlloop.Operation",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ },
+ "description":"An operation supported by an actor"
+ },
+ "onap.datatype.controlloop.Target":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "entityIds":{
+ "name":"entityIds",
+ "type":"map",
+ "type_version":"0.0.0",
+ "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,
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0"
+ },
+ "metadata":{
+ "clamp_possible_values":"ClampExecution:CSAR_RESOURCES"
+ }
+ },
+ "targetType":{
+ "name":"targetType",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Category for the target type",
+ "required":true,
+ "constraints":[
+ {
+ "valid_values":[
+ "VNF",
+ "VM",
+ "VFMODULE",
+ "PNF"
+ ]
+ }
+ ]
+ }
+ },
+ "name":"onap.datatype.controlloop.Target",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ },
+ "description":"Definition for a entity in A&AI to perform a control loop operation on"
+ },
+ "onap.datatypes.ToscaConceptIdentifier":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "version":{
+ "name":"version",
+ "type":"string",
+ "type_version":"0.0.0",
+ "required":true
+ },
+ "name":{
+ "name":"name",
+ "type":"string",
+ "type_version":"0.0.0",
+ "required":true
+ }
+ },
+ "name":"onap.datatypes.ToscaConceptIdentifier",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ }
+ },
+ "onap.datatypes.monitoring.managedObjectDNsBasic":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "DN":{
+ "name":"DN",
+ "type":"string",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"Managed object distinguished name object",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.managedObjectDNsBasic",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"List of measurement types",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.measurementTypes",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "managedObjectDNsBasic":{
+ "name":"managedObjectDNsBasic",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of managed object distinguished names",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.managedObjectDNsBasics",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"Measurement Group",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.measurementGroup",
+ "type_version":"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",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"Measurement type object",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.measurementType",
+ "type_version":"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":{
+ "modelVersionIDs":{
+ "name":"modelVersionIDs",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of model version IDs",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "modelInvariantIDs":{
+ "name":"modelInvariantIDs",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of model invariant IDs",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "modelNames":{
+ "name":"modelNames",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of model names",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "nfNames":{
+ "name":"nfNames",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of network functions",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"string",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"Measurement Groups",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.measurementGroups",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "fileBasedGP":{
+ "name":"fileBasedGP",
+ "type":"integer",
+ "type_version":"0.0.0",
+ "description":"File based granularity period",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "metadata":{
+ 
+ }
+ },
+ "fileLocation":{
+ "name":"fileLocation",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"ROP file location",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "metadata":{
+ 
+ }
+ },
+ "subscriptionName":{
+ "name":"subscriptionName",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Name of the subscription",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "metadata":{
+ 
+ }
+ },
+ "administrativeState":{
+ "name":"administrativeState",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"State of the subscription",
+ "required":true,
+ "constraints":[
+ {
+ "valid_values":[
+ "LOCKED",
+ "UNLOCKED"
+ ]
+ }
+ ],
+ "metadata":{
+ 
+ }
+ },
+ "nfFilter":{
+ "name":"nfFilter",
+ "type":"map",
+ "type_version":"0.0.0",
+ "description":"Network function filter",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.nfFilter",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ }
+ },
+ "name":"onap.datatypes.monitoring.subscription",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ }
+ }
+ },
+ "policy_types":{
+ "onap.policies.Monitoring":{
+ "properties":{
+ 
+ },
+ "name":"onap.policies.Monitoring",
+ "version":"1.0.0",
+ "derived_from":"tosca.policies.Root",
+ "metadata":{
+ 
+ },
+ "description":"a base policy type for all policies that govern monitoring provisioning"
+ },
+ "onap.policies.test123":{
+ "properties":{
+ 
+ },
+ "name":"onap.policies.test123",
+ "version":"1.0.0",
+ "derived_from":"tosca.policies.Root",
+ "metadata":{
+ 
+ },
+ "description":"a base policy type for all policies that govern monitoring provisioning"
+ },
+ "onap.policies.controlloop.operational.Common":{
+ "properties":{
+ "abatement":{
+ "name":"abatement",
+ "type":"boolean",
+ "type_version":"0.0.0",
+ "description":"Whether an abatement event message will be expected for the control loop from DCAE.",
+ "default":false,
+ "required":true
+ },
+ "operations":{
+ "name":"operations",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of operations to be performed when Control Loop is triggered.",
+ "required":true,
+ "entry_schema":{
+ "type":"onap.datatype.controlloop.Operation",
+ "type_version":"0.0.0"
+ }
+ },
+ "trigger":{
+ "name":"trigger",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Initial operation to execute upon receiving an Onset event message for the Control Loop.",
+ "required":true
+ },
+ "timeout":{
+ "name":"timeout",
+ "type":"integer",
+ "type_version":"0.0.0",
+ "description":"Overall timeout for executing all the operations. This timeout should equal or exceed the total\ntimeout for each operation listed.\n",
+ "required":true
+ },
+ "id":{
+ "name":"id",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The unique control loop id.",
+ "required":true
+ }
+ },
+ "name":"onap.policies.controlloop.operational.Common",
+ "version":"1.0.0",
+ "derived_from":"tosca.policies.Root",
+ "metadata":{
+ 
+ },
+ "description":"Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\nPolicy Types. This does NOT support the legacy Policy YAML policy type.\n"
+ },
+ "onap.policies.controlloop.operational.common.Apex":{
+ "properties":{
+ "engineServiceParameters":{
+ "name":"engineServiceParameters",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The engine parameters like name, instanceCount, policy implementation, parameters etc.",
+ "required":true
+ },
+ "eventOutputParameters":{
+ "name":"eventOutputParameters",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The event output parameters.",
+ "required":true
+ },
+ "javaProperties":{
+ "name":"javaProperties",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Name/value pairs of properties to be set for APEX if needed.",
+ "required":false
+ },
+ "eventInputParameters":{
+ "name":"eventInputParameters",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The event input parameters.",
+ "required":true
+ }
+ },
+ "name":"onap.policies.controlloop.operational.common.Apex",
+ "version":"1.0.0",
+ "derived_from":"onap.policies.controlloop.operational.Common",
+ "metadata":{
+ 
+ },
+ "description":"Operational policies for Apex PDP"
+ },
+ "onap.policies.monitoring.dcae-pm-subscription-handler":{
+ "properties":{
+ "pmsh_policy":{
+ "name":"pmsh_policy",
+ "type":"onap.datatypes.monitoring.subscription",
+ "type_version":"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":{
+ 
+ }
+ }
+ },
+ "topology_template":{
+ 
+ },
+ "name":"NULL",
+ "version":"0.0.0"
+ },
+ "propertiesMap": {
+ "provider_instance": {
+ "name": "provider_instance",
+ "version": "1.2.3",
+ "type": "org.onap.datatypes.policy.clamp.controlloop.policControlLoopElement.Chart",
+ "typeVersion": "1.0.0",
+ "description": "The helm chart for the microservice",
+ "required": true
+ }
+ },
+ "description": "Monitoring Policy Control Loop Element for the PMSH instance 0 control loop"
+ },
+ "709c62b3-8918-41b9-a747-d21eb79c6c22": {
+ "id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
+ "definition": {
+ "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement",
+ "version": "1.2.3"
+ },
+ "participantType":{
+ "name":"org.onap.policy.controlloop.PolicyControlLoopParticipant",
+ "version":"2.3.1"
+ },
+ "participantId":{
+ "name":"org.onap.PM_Policy",
+ "version":"1.0.0"
+ },
+ "state":"UNINITIALISED",
+ "orderedState":"UNINITIALISED",
+ "propertiesMap": {
+ "provider_instance": {
+ "name": "provider_instance",
+ "version": "1.2.3",
+ "type": "org.onap.datatypes.policy.clamp.controlloop.policControlLoopElement.Chart",
+ "typeVersion": "1.0.0",
+ "description": "The helm chart for the microservice",
+ "required": true
+ }
+ },
+ "description": "Operational Policy Control Loop Element for the PMSH instance 0 control loop"
+ }
+ }
+ }
+ ]
+}</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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation</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>
+ <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/>
+ </hashTree>
+ </hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="ControlLoop 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 controlloop 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">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation</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>
+ <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>
+ </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/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Change State to PASSIVE" 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",
+ "controlLoopIdentifierList": [
+ {
+ "name": "PMSHInstance0",
+ "version": "1.0.1"
+ }
+ ]
+}</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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation/command</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>
+ <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>
+ <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>
+ </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>
+ </ResponseAssertion>
+ <hashTree/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check controlloop 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">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation</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>
+ <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>
+ </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/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Change State to UNINITIALISED" 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",
+ "controlLoopIdentifierList": [
+ {
+ "name": "PMSHInstance0",
+ "version": "1.0.1"
+ }
+ ]
+}</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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation/command</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>
+ <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="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>
+ </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="Check controlloop 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">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation</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>
+ <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>
+ </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/>
+ </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 controlloop" 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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation?name=PMSHInstance0&version=1.0.1</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>
+ <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/>
+ <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 ControlLoop Definition" 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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/commission?name=NULL&version=0.0.0</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>
+ <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/>
+ </hashTree>
+ </hashTree>
+ <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename">${LOGS_PATH}testresults.jtl</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename">${LOGS_PATH}resultTree.log</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename">${LOGS_PATH}resultTable.log</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>
--- /dev/null
+#!/bin/bash
+
+#============LICENSE_START=======================================================
+#Copyright (C) 2021 Nordix Foundation.
+#================================================================================
+#Licensed under the Apache License, Version 2.0 (the "License");
+#you may not use this file except in compliance with the License.
+#You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+#============LICENSE_END=========================================================
+
+LOGFILE=$1
+if [[ ! -f $LOGFILE ]]; then
+ echo "The file '$LOGFILE' in not provided."
+ echo "Please provide log file to process."
+ exit 1
+fi
+
+echo "File being processed: " $LOGFILE
+RES=$(awk -F "," 'NR>1 { total += $15 } END { print total/NR }' $LOGFILE)
+echo "Average Latency: " $RES
+LC=$(awk 'END{print NR}' $LOGFILE)
+echo "Total Requests:" $LC
+echo "Requests/sec:" $((LC/5))
+
--- /dev/null
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.onap.policy.clamp</groupId>
+ <artifactId>policy-clamp</artifactId>
+ <version>6.1.3-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>clamp-testsuites</artifactId>
+ <packaging>pom</packaging>
+
+ <properties>
+ <!-- There is no code in this sub-module, only holds interfaces. So skip sonar. -->
+ <sonar.skip>true</sonar.skip>
+ </properties>
+
+ <modules>
+ <module>stability</module>
+ <module>performance</module>
+ </modules>
+</project>
--- /dev/null
+#-------------------------------------------------------------------------------
+# ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#-------------------------------------------------------------------------------
+
+To set up S3P test environment with all docker images, either build the docker images locally with
+"mvn clean install -P docker" in clamp/packages directory Or use policy/docker/csit to bring up docker images.
+
+Important Instructions to setup environment using CSIT:
+-------------------------------------------------------
+Step 1: $cd policy/docker/csit
+
+Step 2:
+$vi run-project-csit.sh
+Comment the on_exit cleanup function call in run-project-csit.sh file. By doing this, docker images once started will not be shutdown.
+All images will be up and running, to carryout any Stability or Performance tests using JMeter.
+# ensure that teardown and other finalizing steps are always executed
+#trap on_exit EXIT
+
+Step 3:
+./run-project-csit.sh clamp
+This command will bring up all required docker images
+
+Step 4: Ensure the IP's and Ports in stability.jmx and performance.jmx are changed, and reflecting to the IP's of docker images.
+Example:
+$cd ./clamp/testsuites/stability/src/main/resources/testplans/stability.jmx
+ <elementProp name="RUNTIME_HOST" elementType="Argument">
+ <stringProp name="Argument.name">RUNTIME_HOST</stringProp>
+ <stringProp name="Argument.value">192.168.48.9</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+
+
+On successfull docker image bring up:
+------------------------------------
+$docker ps
+CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+a9cb0cd103cf onap/policy-clamp-cl-runtime:latest "/opt/app/policy/bin…" 41 seconds ago Up 40 seconds 6969/tcp policy-clamp-cl-runtime
+886e572b8438 onap/policy-clamp-cl-pf-ppnt:latest "/opt/app/policy/bin…" 42 seconds ago Up 41 seconds 6973/tcp policy-clamp-cl-pf-ppnt
+035707b1b95f nexus3.onap.org:10001/onap/policy-api:2.5-SNAPSHOT-latest "./wait_for_port.sh …" 42 seconds ago Up 42 seconds 6969/tcp policy-api
+d34204f95ff3 onap/policy-clamp-cl-http-ppnt:latest "/opt/app/policy/bin…" 43 seconds ago Up 42 seconds 6971/tcp policy-clamp-cl-http-ppnt
+4470e608c9a8 onap/policy-clamp-cl-k8s-ppnt:latest "/opt/app/policy/bin…" 43 seconds ago Up 42 seconds 6972/tcp, 8083/tcp policy-clamp-cl-k8s-ppnt
+62229d46b79c nexus3.onap.org:10001/onap/policy-models-simulator:2.5-SNAPSHOT-latest "bash simulators.sh" 45 seconds ago Up 43 seconds 3905/tcp, 6666/tcp, 6668-6670/tcp, 6680/tcp simulator
+efaf0ca5e1f0 nexus3.onap.org:10001/mariadb:10.5.8 "docker-entrypoint.s…" 45 seconds ago Up 43 seconds 3306/tcp mariadb
+
+To start performance tests:
+--------------------------
+nohup ./jMeter/apache-jmeter-5.2.1/bin/jmeter -n -t performance.jmx -l testresults.jtl
+
+To start stability tests:
+--------------------------
+nohup ./jMeter/apache-jmeter-5.2.1/bin/jmeter -n -t stability.jmx -l testresults.jtl
+
+To remove all docker images after Stability (72hrs) and Performance(2hrs) test runs:
+-----------------------------------------------------------------------------------
+cd policy/docker/csit
+docker-compose -f ./docker-compose-all.yml down -v
+
--- /dev/null
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.onap.policy.clamp</groupId>
+ <artifactId>clamp-testsuites</artifactId>
+ <version>6.1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>clamp-stability</artifactId>
+</project>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Policy Clamp Controlloop Stability" enabled="true">
+ <stringProp name="TestPlan.comments">Policy Clamp Controlloop Stability Tests</stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">true</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="RUNTIME_HOST" elementType="Argument">
+ <stringProp name="Argument.name">RUNTIME_HOST</stringProp>
+ <stringProp name="Argument.value">192.168.48.9</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="RUNTIME_PORT" elementType="Argument">
+ <stringProp name="Argument.name">RUNTIME_PORT</stringProp>
+ <stringProp name="Argument.value">6969</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">192.168.48.8</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="POLICY_PARTICIPANT_HOST_PORT" elementType="Argument">
+ <stringProp name="Argument.name">POLICY_PARTICIPANT_HOST_PORT</stringProp>
+ <stringProp name="Argument.value">6973</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <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/controlloop/v2</stringProp>
+ <stringProp name="Authorization.username">healthcheck</stringProp>
+ <stringProp name="Authorization.password">zb!XztG34</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.clearEachIteration">true</boolProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">X-ONAP-RequestID</stringProp>
+ <stringProp name="Header.value">709c62b3-8918-41b9-a747-d21eb79c6c20</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp 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">260000</stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </SetupThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Commission Contorlloop 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_1_0",
+ "data_types": {
+ "onap.datatypes.ToscaConceptIdentifier": {
+ "derived_from": "tosca.datatypes.Root",
+ "properties": {
+ "name": {
+ "type": "string",
+ "required": true
+ },
+ "version": {
+ "type": "string",
+ "required": true
+ }
+ }
+ },
+ "org.onap.datatypes.policy.clamp.controlloop.DCAEMicroserviceControlLoopElementConsulInfo": {
+ "name": "org.onap.datatypes.policy.clamp.controlloop.DCAEMicroserviceControlLoopElementConsulInfo",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "properties": {
+ "consulUrl": {
+ "name": "consulUrl",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Consul url for this entry",
+ "required": true
+ },
+ "consul_body": {
+ "name": "consulBody",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Body of Consul entry",
+ "required": true
+ }
+ }
+ },
+ "onap.datatype.controlloop.Target": {
+ "derived_from": "tosca.datatypes.Root",
+ "description": "Definition for a entity in A&AI to perform a control loop operation on",
+ "properties": {
+ "targetType": {
+ "type": "string",
+ "description": "Category for the target type",
+ "required": true,
+ "constraints": [
+ {
+ "valid_values": [
+ "VNF",
+ "VM",
+ "VFMODULE",
+ "PNF"
+ ]
+ }
+ ]
+ },
+ "entityIds": {
+ "type": "map",
+ "description": "Map of values that identify the resource. If none are provided, it is assumed that the\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.controlloop.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.controlloop.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.controlloop.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.controlloop.Actor",
+ "description": "The definition of the operation to be performed.",
+ "required": true
+ },
+ "timeout": {
+ "type": "integer",
+ "description": "The amount of time for the actor to perform the operation.",
+ "required": true
+ },
+ "retries": {
+ "type": "integer",
+ "description": "The number of retries the actor should attempt to perform the operation.",
+ "required": true,
+ "default": 0
+ },
+ "success": {
+ "type": "string",
+ "description": "Points to the operation to invoke on success. A value of \"final_success\" indicates and end to the operation.",
+ "required": false,
+ "default": "final_success"
+ },
+ "failure": {
+ "type": "string",
+ "description": "Points to the operation to invoke on Actor operation failure.",
+ "required": false,
+ "default": "final_failure"
+ },
+ "failure_timeout": {
+ "type": "string",
+ "description": "Points to the operation to invoke when the time out for the operation occurs.",
+ "required": false,
+ "default": "final_failure_timeout"
+ },
+ "failure_retries": {
+ "type": "string",
+ "description": "Points to the operation to invoke when the current operation has exceeded its max retries.",
+ "required": false,
+ "default": "final_failure_retries"
+ },
+ "failure_exception": {
+ "type": "string",
+ "description": "Points to the operation to invoke when the current operation causes an exception.",
+ "required": false,
+ "default": "final_failure_exception"
+ },
+ "failure_guard": {
+ "type": "string",
+ "description": "Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.",
+ "required": false,
+ "default": "final_failure_guard"
+ }
+ }
+ },
+ "onap.datatypes.monitoring.managedObjectDNsBasic": {
+ "constraints": [],
+ "properties": {
+ "DN": {
+ "name": "DN",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Managed object distinguished name",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.managedObjectDNsBasic",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.managedObjectDNsBasics": {
+ "constraints": [],
+ "properties": {
+ "managedObjectDNsBasic": {
+ "name": "managedObjectDNsBasic",
+ "type": "map",
+ "typeVersion": "0.0.0",
+ "description": "Managed object distinguished name object",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.managedObjectDNsBasic",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.managedObjectDNsBasics",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.measurementGroup": {
+ "constraints": [],
+ "properties": {
+ "measurementTypes": {
+ "name": "measurementTypes",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of measurement types",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.measurementTypes",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "managedObjectDNsBasic": {
+ "name": "managedObjectDNsBasic",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of managed object distinguished names",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.managedObjectDNsBasics",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.measurementGroup",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.measurementGroups": {
+ "constraints": [],
+ "properties": {
+ "measurementGroup": {
+ "name": "measurementGroup",
+ "type": "map",
+ "typeVersion": "0.0.0",
+ "description": "Measurement Group",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.measurementGroup",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.measurementGroups",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.measurementType": {
+ "constraints": [],
+ "properties": {
+ "measurementType": {
+ "name": "measurementType",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Measurement type",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.measurementType",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.measurementTypes": {
+ "constraints": [],
+ "properties": {
+ "measurementType": {
+ "name": "measurementType",
+ "type": "map",
+ "typeVersion": "0.0.0",
+ "description": "Measurement type object",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.measurementType",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.measurementTypes",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.nfFilter": {
+ "constraints": [],
+ "properties": {
+ "modelNames": {
+ "name": "modelNames",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of model names",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "modelInvariantIDs": {
+ "name": "modelInvariantIDs",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of model invariant IDs",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "modelVersionIDs": {
+ "name": "modelVersionIDs",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of model version IDs",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "nfNames": {
+ "name": "nfNames",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "List of network functions",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.nfFilter",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ },
+ "onap.datatypes.monitoring.subscription": {
+ "constraints": [],
+ "properties": {
+ "measurementGroups": {
+ "name": "measurementGroups",
+ "type": "list",
+ "typeVersion": "0.0.0",
+ "description": "Measurement Groups",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.measurementGroups",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ },
+ "fileBasedGP": {
+ "name": "fileBasedGP",
+ "type": "integer",
+ "typeVersion": "0.0.0",
+ "description": "File based granularity period",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ },
+ "fileLocation": {
+ "name": "fileLocation",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "ROP file location",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ },
+ "subscriptionName": {
+ "name": "subscriptionName",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "Name of the subscription",
+ "required": true,
+ "constraints": [],
+ "metadata": {}
+ },
+ "administrativeState": {
+ "name": "administrativeState",
+ "type": "string",
+ "typeVersion": "0.0.0",
+ "description": "State of the subscription",
+ "required": true,
+ "constraints": [
+ {
+ "valid_values": [
+ "LOCKED",
+ "UNLOCKED"
+ ]
+ }
+ ],
+ "metadata": {}
+ },
+ "nfFilter": {
+ "name": "nfFilter",
+ "type": "map",
+ "typeVersion": "0.0.0",
+ "description": "Network function filter",
+ "required": true,
+ "constraints": [],
+ "entry_schema": {
+ "type": "onap.datatypes.monitoring.nfFilter",
+ "typeVersion": "0.0.0",
+ "constraints": []
+ },
+ "metadata": {}
+ }
+ },
+ "name": "onap.datatypes.monitoring.subscription",
+ "version": "0.0.0",
+ "derived_from": "tosca.datatypes.Root",
+ "metadata": {}
+ }
+ },
+ "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.test123": {
+ "derived_from": "tosca.policies.Root",
+ "description": "a base policy type for all policies that govern monitoring provisioning",
+ "version": "1.0.0",
+ "name": "onap.policies.test123"
+ },
+ "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.controlloop.operational.Common": {
+ "derived_from": "tosca.policies.Root",
+ "version": "1.0.0",
+ "name": "onap.policies.controlloop.operational.Common",
+ "description": "Operational Policy for Control Loop 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 control loop 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 control loop from DCAE.",
+ "required": true,
+ "default": false
+ },
+ "trigger": {
+ "type": "string",
+ "description": "Initial operation to execute upon receiving an Onset event message for the Control Loop.",
+ "required": true
+ },
+ "operations": {
+ "type": "list",
+ "description": "List of operations to be performed when Control Loop is triggered.",
+ "required": true,
+ "entry_schema": {
+ "type": "onap.datatype.controlloop.Operation"
+ }
+ }
+ }
+ },
+ "onap.policies.controlloop.operational.common.Apex": {
+ "derived_from": "onap.policies.controlloop.operational.Common",
+ "type_version": "1.0.0",
+ "version": "1.0.0",
+ "name": "onap.policies.controlloop.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.controlloop.Participant": {
+ "version": "1.0.1",
+ "derived_from": "tosca.nodetypes.Root",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "requred": false
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.ControlLoopElement": {
+ "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 control loop element"
+ },
+ "participantType": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "required": true,
+ "metadata": {
+ "common": true
+ },
+ "description": "The identity of the participant type that hosts this type of Control Loop Element"
+ },
+ "startPhase": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "metadata": {
+ "common": true
+ },
+ "description": "A value indicating the start phase in which this control loop element will be started, the first start phase is zero. Control Loop Elements are started in their start_phase order and stopped in reverse start phase order. Control Loop Elements with the same start phase are started and stopped simultaneously"
+ },
+ "uninitializedToPassiveTimeout": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "default": 60,
+ "metadata": {
+ "common": true
+ },
+ "description": "The maximum time in seconds to wait for a state chage from uninitialized to passive"
+ },
+ "passiveToRunningTimeout": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "default": 60,
+ "metadata": {
+ "common": true
+ },
+ "description": "The maximum time in seconds to wait for a state chage from passive to running"
+ },
+ "runningToPassiveTimeout": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "default": 60,
+ "metadata": {
+ "common": true
+ },
+ "description": "The maximum time in seconds to wait for a state chage from running to passive"
+ },
+ "passiveToUninitializedTimeout": {
+ "type": "integer",
+ "required": false,
+ "constraints": [
+ {
+ "greater_or_equal": 0
+ }
+ ],
+ "default": 60,
+ "metadata": {
+ "common": true
+ },
+ "description": "The maximum time in seconds to wait for a state chage from passive to uninitialized"
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.ControlLoop": {
+ "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 control loop element"
+ },
+ "elements": {
+ "type": "list",
+ "required": true,
+ "metadata": {
+ "common": true
+ },
+ "entry_schema": {
+ "type": "onap.datatypes.ToscaConceptIdentifier"
+ },
+ "description": "Specifies a list of control loop element definitions that make up this control loop definition"
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement",
+ "properties": {
+ "dcae_blueprint_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": false
+ },
+ "dcae_blueprint": {
+ "type": "onap.dcae.cloudify_blueprint",
+ "requred": false
+ },
+ "consul_info": {
+ "type": "list",
+ "required": false,
+ "entry_schema": {
+ "type": "org.onap.datatypes.policy.clamp.controlloop.DCAEMicroserviceControlLoopElementConsulInfo"
+ }
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.PolicyControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement",
+ "properties": {
+ "policy_type_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": true
+ },
+ "policy_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": false
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.DerivedPolicyControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.PolicyControlLoopElement",
+ "properties": {
+ "policy_type_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": true
+ },
+ "policy_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": false
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.DerivedDerivedPolicyControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.DerivedPolicyControlLoopElement",
+ "properties": {
+ "policy_type_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": true
+ },
+ "policy_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": false
+ }
+ }
+ },
+ "org.onap.policy.clamp.controlloop.CDSControlLoopElement": {
+ "version": "1.0.1",
+ "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement",
+ "properties": {
+ "cds_blueprint_id": {
+ "type": "onap.datatypes.ToscaConceptIdentifier",
+ "requred": true
+ }
+ }
+ }
+ },
+ "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.dcae.controlloop.DCAEMicroserviceControlLoopParticipant": {
+ "version": "2.3.4",
+ "type": "org.onap.policy.clamp.controlloop.Participant",
+ "type_version": "1.0.1",
+ "description": "Participant for DCAE microservices",
+ "properties": {
+ "provider": "ONAP"
+ }
+ },
+ "org.onap.policy.controlloop.PolicyControlLoopParticipant": {
+ "version": "2.3.1",
+ "type": "org.onap.policy.clamp.controlloop.Participant",
+ "type_version": "1.0.1",
+ "description": "Participant for DCAE microservices",
+ "properties": {
+ "provider": "ONAP"
+ }
+ },
+ "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement": {
+ "version": "1.2.3",
+ "type": "org.onap.policy.clamp.controlloop.PolicyControlLoopElement",
+ "type_version": "1.0.0",
+ "description": "Control loop element for the monitoring policy for Performance Management Subscription Handling",
+ "properties": {
+ "provider": "Ericsson",
+ "participantType": {
+ "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+ "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_OperationalPolicyControlLoopElement": {
+ "version": "1.2.3",
+ "type": "org.onap.policy.clamp.controlloop.PolicyControlLoopElement",
+ "type_version": "1.0.0",
+ "description": "Control loop element for the operational policy for Performance Management Subscription Handling",
+ "properties": {
+ "provider": "Ericsson",
+ "participantType": {
+ "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+ "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.domain.pmsh.PMSHControlLoopDefinition": {
+ "version": "1.2.3",
+ "type": "org.onap.policy.clamp.controlloop.ControlLoop",
+ "type_version": "1.0.0",
+ "description": "Control loop for Performance Management Subscription Handling",
+ "properties": {
+ "provider": "Ericsson",
+ "elements": [
+ {
+ "name": "org.onap.domain.pmsh.PMSH_DCAEMicroservice",
+ "version": "1.2.3"
+ },
+ {
+ "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement",
+ "version": "1.2.3"
+ },
+ {
+ "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement",
+ "version": "1.2.3"
+ }
+ ]
+ }
+ }
+ }
+ }
+}</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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/commission</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>
+ <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/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Instantiate controlloop" 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">{
+ "controlLoopList": [
+ {
+ "name": "PMSHInstance0",
+ "version": "1.0.1",
+ "definition": {
+ "name": "org.onap.domain.pmsh.PMSHControlLoopDefinition",
+ "version": "1.2.3"
+ },
+ "state": "UNINITIALISED",
+ "orderedState": "UNINITIALISED",
+ "description": "PMSH control loop instance 0",
+ "elements": {
+ "709c62b3-8918-41b9-a747-d21eb79c6c21": {
+ "id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
+ "definition": {
+ "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement",
+ "version": "1.2.3"
+ },
+ "participantType":{
+ "name":"org.onap.policy.controlloop.PolicyControlLoopParticipant",
+ "version":"2.3.1"
+ },
+ "participantId":{
+ "name":"org.onap.PM_Policy",
+ "version":"1.0.0"
+ },
+ "state":"UNINITIALISED",
+ "orderedState":"UNINITIALISED",
+ "toscaServiceTemplateFragment":{
+ "data_types":{
+ "onap.datatype.controlloop.Actor":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "payload":{
+ "name":"payload",
+ "type":"map",
+ "type_version":"0.0.0",
+ "description":"Name/value pairs of payload information passed by Policy to the actor",
+ "required":false,
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0"
+ },
+ "metadata":{
+ "clamp_possible_values":"ClampExecution:CDS/payload"
+ }
+ },
+ "target":{
+ "name":"target",
+ "type":"onap.datatype.controlloop.Target",
+ "type_version":"0.0.0",
+ "description":"The resource the operation should be performed on.",
+ "required":true
+ },
+ "actor":{
+ "name":"actor",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The actor performing the operation.",
+ "required":true,
+ "metadata":{
+ "clamp_possible_values":"Dictionary:DefaultActors,ClampExecution:CDS/actor"
+ }
+ },
+ "operation":{
+ "name":"operation",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The operation the actor is performing.",
+ "required":true,
+ "metadata":{
+ "clamp_possible_values":"Dictionary:DefaultOperations,ClampExecution:CDS/operation"
+ }
+ }
+ },
+ "name":"onap.datatype.controlloop.Actor",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ },
+ "description":"An actor/operation/target definition"
+ },
+ "onap.datatype.controlloop.Operation":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "failure_retries":{
+ "name":"failure_retries",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke when the current operation has exceeded its max retries.",
+ "default":"final_failure_retries",
+ "required":false
+ },
+ "id":{
+ "name":"id",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Unique identifier for the operation",
+ "required":true
+ },
+ "failure_timeout":{
+ "name":"failure_timeout",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke when the time out for the operation occurs.",
+ "default":"final_failure_timeout",
+ "required":false
+ },
+ "failure":{
+ "name":"failure",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke on Actor operation failure.",
+ "default":"final_failure",
+ "required":false
+ },
+ "operation":{
+ "name":"operation",
+ "type":"onap.datatype.controlloop.Actor",
+ "type_version":"0.0.0",
+ "description":"The definition of the operation to be performed.",
+ "required":true
+ },
+ "failure_guard":{
+ "name":"failure_guard",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.",
+ "default":"final_failure_guard",
+ "required":false
+ },
+ "retries":{
+ "name":"retries",
+ "type":"integer",
+ "type_version":"0.0.0",
+ "description":"The number of retries the actor should attempt to perform the operation.",
+ "default":0.0,
+ "required":true
+ },
+ "timeout":{
+ "name":"timeout",
+ "type":"integer",
+ "type_version":"0.0.0",
+ "description":"The amount of time for the actor to perform the operation.",
+ "required":true
+ },
+ "failure_exception":{
+ "name":"failure_exception",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke when the current operation causes an exception.",
+ "default":"final_failure_exception",
+ "required":false
+ },
+ "description":{
+ "name":"description",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"A user-friendly description of the intent for the operation",
+ "required":false
+ },
+ "success":{
+ "name":"success",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Points to the operation to invoke on success. A value of \"final_success\" indicates and end to the operation.",
+ "default":"final_success",
+ "required":false
+ }
+ },
+ "name":"onap.datatype.controlloop.Operation",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ },
+ "description":"An operation supported by an actor"
+ },
+ "onap.datatype.controlloop.Target":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "entityIds":{
+ "name":"entityIds",
+ "type":"map",
+ "type_version":"0.0.0",
+ "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,
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0"
+ },
+ "metadata":{
+ "clamp_possible_values":"ClampExecution:CSAR_RESOURCES"
+ }
+ },
+ "targetType":{
+ "name":"targetType",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Category for the target type",
+ "required":true,
+ "constraints":[
+ {
+ "valid_values":[
+ "VNF",
+ "VM",
+ "VFMODULE",
+ "PNF"
+ ]
+ }
+ ]
+ }
+ },
+ "name":"onap.datatype.controlloop.Target",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ },
+ "description":"Definition for a entity in A&AI to perform a control loop operation on"
+ },
+ "onap.datatypes.ToscaConceptIdentifier":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "version":{
+ "name":"version",
+ "type":"string",
+ "type_version":"0.0.0",
+ "required":true
+ },
+ "name":{
+ "name":"name",
+ "type":"string",
+ "type_version":"0.0.0",
+ "required":true
+ }
+ },
+ "name":"onap.datatypes.ToscaConceptIdentifier",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ }
+ },
+ "onap.datatypes.monitoring.managedObjectDNsBasic":{
+ "constraints":[
+ 
+ ],
+ "properties":{
+ "DN":{
+ "name":"DN",
+ "type":"string",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"Managed object distinguished name object",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.managedObjectDNsBasic",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"List of measurement types",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.measurementTypes",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "managedObjectDNsBasic":{
+ "name":"managedObjectDNsBasic",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of managed object distinguished names",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.managedObjectDNsBasics",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"Measurement Group",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.measurementGroup",
+ "type_version":"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",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"Measurement type object",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.measurementType",
+ "type_version":"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":{
+ "modelVersionIDs":{
+ "name":"modelVersionIDs",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of model version IDs",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "modelInvariantIDs":{
+ "name":"modelInvariantIDs",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of model invariant IDs",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "modelNames":{
+ "name":"modelNames",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of model names",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"string",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "nfNames":{
+ "name":"nfNames",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of network functions",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"string",
+ "type_version":"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",
+ "type_version":"0.0.0",
+ "description":"Measurement Groups",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.measurementGroups",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ },
+ "fileBasedGP":{
+ "name":"fileBasedGP",
+ "type":"integer",
+ "type_version":"0.0.0",
+ "description":"File based granularity period",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "metadata":{
+ 
+ }
+ },
+ "fileLocation":{
+ "name":"fileLocation",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"ROP file location",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "metadata":{
+ 
+ }
+ },
+ "subscriptionName":{
+ "name":"subscriptionName",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Name of the subscription",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "metadata":{
+ 
+ }
+ },
+ "administrativeState":{
+ "name":"administrativeState",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"State of the subscription",
+ "required":true,
+ "constraints":[
+ {
+ "valid_values":[
+ "LOCKED",
+ "UNLOCKED"
+ ]
+ }
+ ],
+ "metadata":{
+ 
+ }
+ },
+ "nfFilter":{
+ "name":"nfFilter",
+ "type":"map",
+ "type_version":"0.0.0",
+ "description":"Network function filter",
+ "required":true,
+ "constraints":[
+ 
+ ],
+ "entry_schema":{
+ "type":"onap.datatypes.monitoring.nfFilter",
+ "type_version":"0.0.0",
+ "constraints":[
+ 
+ ]
+ },
+ "metadata":{
+ 
+ }
+ }
+ },
+ "name":"onap.datatypes.monitoring.subscription",
+ "version":"0.0.0",
+ "derived_from":"tosca.datatypes.Root",
+ "metadata":{
+ 
+ }
+ }
+ },
+ "policy_types":{
+ "onap.policies.Monitoring":{
+ "properties":{
+ 
+ },
+ "name":"onap.policies.Monitoring",
+ "version":"1.0.0",
+ "derived_from":"tosca.policies.Root",
+ "metadata":{
+ 
+ },
+ "description":"a base policy type for all policies that govern monitoring provisioning"
+ },
+ "onap.policies.test123":{
+ "properties":{
+ 
+ },
+ "name":"onap.policies.test123",
+ "version":"1.0.0",
+ "derived_from":"tosca.policies.Root",
+ "metadata":{
+ 
+ },
+ "description":"a base policy type for all policies that govern monitoring provisioning"
+ },
+ "onap.policies.controlloop.operational.Common":{
+ "properties":{
+ "abatement":{
+ "name":"abatement",
+ "type":"boolean",
+ "type_version":"0.0.0",
+ "description":"Whether an abatement event message will be expected for the control loop from DCAE.",
+ "default":false,
+ "required":true
+ },
+ "operations":{
+ "name":"operations",
+ "type":"list",
+ "type_version":"0.0.0",
+ "description":"List of operations to be performed when Control Loop is triggered.",
+ "required":true,
+ "entry_schema":{
+ "type":"onap.datatype.controlloop.Operation",
+ "type_version":"0.0.0"
+ }
+ },
+ "trigger":{
+ "name":"trigger",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Initial operation to execute upon receiving an Onset event message for the Control Loop.",
+ "required":true
+ },
+ "timeout":{
+ "name":"timeout",
+ "type":"integer",
+ "type_version":"0.0.0",
+ "description":"Overall timeout for executing all the operations. This timeout should equal or exceed the total\ntimeout for each operation listed.\n",
+ "required":true
+ },
+ "id":{
+ "name":"id",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The unique control loop id.",
+ "required":true
+ }
+ },
+ "name":"onap.policies.controlloop.operational.Common",
+ "version":"1.0.0",
+ "derived_from":"tosca.policies.Root",
+ "metadata":{
+ 
+ },
+ "description":"Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\nPolicy Types. This does NOT support the legacy Policy YAML policy type.\n"
+ },
+ "onap.policies.controlloop.operational.common.Apex":{
+ "properties":{
+ "engineServiceParameters":{
+ "name":"engineServiceParameters",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The engine parameters like name, instanceCount, policy implementation, parameters etc.",
+ "required":true
+ },
+ "eventOutputParameters":{
+ "name":"eventOutputParameters",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The event output parameters.",
+ "required":true
+ },
+ "javaProperties":{
+ "name":"javaProperties",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"Name/value pairs of properties to be set for APEX if needed.",
+ "required":false
+ },
+ "eventInputParameters":{
+ "name":"eventInputParameters",
+ "type":"string",
+ "type_version":"0.0.0",
+ "description":"The event input parameters.",
+ "required":true
+ }
+ },
+ "name":"onap.policies.controlloop.operational.common.Apex",
+ "version":"1.0.0",
+ "derived_from":"onap.policies.controlloop.operational.Common",
+ "metadata":{
+ 
+ },
+ "description":"Operational policies for Apex PDP"
+ },
+ "onap.policies.monitoring.dcae-pm-subscription-handler":{
+ "properties":{
+ "pmsh_policy":{
+ "name":"pmsh_policy",
+ "type":"onap.datatypes.monitoring.subscription",
+ "type_version":"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":{
+ 
+ }
+ }
+ },
+ "topology_template":{
+ 
+ },
+ "name":"NULL",
+ "version":"0.0.0"
+ },
+ "propertiesMap": {
+ "provider_instance": {
+ "name": "provider_instance",
+ "version": "1.2.3",
+ "type": "org.onap.datatypes.policy.clamp.controlloop.policControlLoopElement.Chart",
+ "typeVersion": "1.0.0",
+ "description": "The helm chart for the microservice",
+ "required": true
+ }
+ },
+ "description": "Monitoring Policy Control Loop Element for the PMSH instance 0 control loop"
+ },
+ "709c62b3-8918-41b9-a747-d21eb79c6c22": {
+ "id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
+ "definition": {
+ "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement",
+ "version": "1.2.3"
+ },
+ "participantType":{
+ "name":"org.onap.policy.controlloop.PolicyControlLoopParticipant",
+ "version":"2.3.1"
+ },
+ "participantId":{
+ "name":"org.onap.PM_Policy",
+ "version":"1.0.0"
+ },
+ "state":"UNINITIALISED",
+ "orderedState":"UNINITIALISED",
+ "propertiesMap": {
+ "provider_instance": {
+ "name": "provider_instance",
+ "version": "1.2.3",
+ "type": "org.onap.datatypes.policy.clamp.controlloop.policControlLoopElement.Chart",
+ "typeVersion": "1.0.0",
+ "description": "The helm chart for the microservice",
+ "required": true
+ }
+ },
+ "description": "Operational Policy Control Loop Element for the PMSH instance 0 control loop"
+ }
+ }
+ }
+ ]
+}</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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation</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>
+ <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/>
+ </hashTree>
+ </hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="ControlLoop 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 controlloop 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">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation</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>
+ <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>
+ </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/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Change State to PASSIVE" 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",
+ "controlLoopIdentifierList": [
+ {
+ "name": "PMSHInstance0",
+ "version": "1.0.1"
+ }
+ ]
+}</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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation/command</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>
+ <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>
+ <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>
+ </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>
+ </ResponseAssertion>
+ <hashTree/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check controlloop 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">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation</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>
+ <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>
+ </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/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Change State to UNINITIALISED" 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",
+ "controlLoopIdentifierList": [
+ {
+ "name": "PMSHInstance0",
+ "version": "1.0.1"
+ }
+ ]
+}</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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation/command</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>
+ <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="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>
+ </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="Check controlloop 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">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation</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>
+ <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>
+ </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/>
+ </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 controlloop" 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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/instantiation?name=PMSHInstance0&version=1.0.1</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>
+ <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/>
+ <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 ControlLoop Definition" 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.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/onap/controlloop/v2/commission?name=NULL&version=0.0.0</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>
+ <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/>
+ </hashTree>
+ </hashTree>
+ <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename">./controlloop_stability/testsummary.jtl</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename">./controlloop_stability/resultTree.log</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename">./controlloop_stability/resultTable.log</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>