From e90986687347e86b5cfdbe850d1e0129d73ed10f Mon Sep 17 00:00:00 2001 From: rameshiyer27 Date: Mon, 3 Apr 2023 00:57:58 +0100 Subject: [PATCH] Add CSIT for ACM in docker Included policy particiant tests in docker. Http and Kubernetes will be tested in kubernetes env. Issue-ID: POLICY-4541 Signed-off-by: zrrmmua Change-Id: I2dcc294d9127307ef74a0f47791aed9d641b37f2 --- .../config/clamp/HttpParticipantParameters.yaml | 10 +- .../clamp/KubernetesParticipantParameters.yaml | 10 +- .../config/clamp/PolicyParticipantParameters.yaml | 10 +- compose/docker-compose.yml | 11 +- csit/resources/scripts/setup-clamp.sh | 4 +- csit/resources/tests/data/ACDepriming.json | 3 + csit/resources/tests/data/ACPriming.json | 3 + .../tests/data/AutomationComposition.json | 67 +- csit/resources/tests/data/DeployAC.json | 3 + csit/resources/tests/data/InstantiateAC.json | 51 - csit/resources/tests/data/PassivateAC.json | 9 - csit/resources/tests/data/PassiveCommand.json | 5 - csit/resources/tests/data/UndeployAC.json | 3 + csit/resources/tests/data/acelement-usecase.yaml | 1117 +++++++ .../tests/data/functional-pmsh-usecase.yaml | 3404 -------------------- csit/resources/tests/policy-clamp-test.robot | 237 +- csit/run-k8s-csit-enable.sh | 114 +- helm/policy/Chart.yaml | 1 + .../components/policy-drools-pdp/values.yaml | 2 +- helm/policy/values.yaml | 10 +- 20 files changed, 1400 insertions(+), 3674 deletions(-) create mode 100644 csit/resources/tests/data/ACDepriming.json create mode 100644 csit/resources/tests/data/ACPriming.json create mode 100644 csit/resources/tests/data/DeployAC.json delete mode 100644 csit/resources/tests/data/InstantiateAC.json delete mode 100644 csit/resources/tests/data/PassivateAC.json delete mode 100644 csit/resources/tests/data/PassiveCommand.json create mode 100644 csit/resources/tests/data/UndeployAC.json create mode 100644 csit/resources/tests/data/acelement-usecase.yaml delete mode 100644 csit/resources/tests/data/functional-pmsh-usecase.yaml diff --git a/compose/config/clamp/HttpParticipantParameters.yaml b/compose/config/clamp/HttpParticipantParameters.yaml index 038e97af..878eed75 100644 --- a/compose/config/clamp/HttpParticipantParameters.yaml +++ b/compose/config/clamp/HttpParticipantParameters.yaml @@ -14,12 +14,7 @@ participant: intermediaryParameters: reportingTimeIntervalMs: 120000 description: Participant Description - participantId: - name: HttpParticipant0 - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.HttpParticipant - version: 2.3.4 + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c01 clampAutomationCompositionTopics: topicSources: - topic: POLICY-ACRUNTIME-PARTICIPANT @@ -34,6 +29,9 @@ participant: - ${topicServer:message-router} topicCommInfrastructure: dmaap useHttps: false + participantSupportedElementTypes: + - typeName: org.onap.policy.clamp.acm.HttpAutomationCompositionElement + typeVersion: 1.0.0 management: endpoints: web: diff --git a/compose/config/clamp/KubernetesParticipantParameters.yaml b/compose/config/clamp/KubernetesParticipantParameters.yaml index d9c3326f..3449a5d1 100644 --- a/compose/config/clamp/KubernetesParticipantParameters.yaml +++ b/compose/config/clamp/KubernetesParticipantParameters.yaml @@ -17,12 +17,7 @@ participant: intermediaryParameters: reportingTimeIntervalMs: 120000 description: Participant Description - participantId: - name: K8sParticipant0 - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.KubernetesParticipant - version: 2.3.4 + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c02 clampAutomationCompositionTopics: topicSources: - @@ -39,6 +34,9 @@ participant: - ${topicServer:message-router} topicCommInfrastructure: dmaap useHttps: false + participantSupportedElementTypes: + - typeName: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement + typeVersion: 1.0.0 management: endpoints: diff --git a/compose/config/clamp/PolicyParticipantParameters.yaml b/compose/config/clamp/PolicyParticipantParameters.yaml index 8db98a78..443a0cae 100644 --- a/compose/config/clamp/PolicyParticipantParameters.yaml +++ b/compose/config/clamp/PolicyParticipantParameters.yaml @@ -30,12 +30,7 @@ participant: intermediaryParameters: reportingTimeIntervalMs: 120000 description: Participant Description - participantId: - name: org.onap.PM_Policy - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.PolicyParticipant - version: 2.3.1 + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c03 clampAutomationCompositionTopics: topicSources: - @@ -52,6 +47,9 @@ participant: - ${topicServer:message-router} topicCommInfrastructure: dmaap useHttps: false + participantSupportedElementTypes: + - typeName: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement + typeVersion: 1.0.0 management: endpoints: web: diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml index 429e9889..dfb6b641 100644 --- a/compose/docker-compose.yml +++ b/compose/docker-compose.yml @@ -242,6 +242,10 @@ services: depends_on: - mariadb - simulator + - policy-clamp-ac-http-ppnt + - policy-clamp-ac-k8s-ppnt + - policy-clamp-ac-pf-ppnt + - apex-pdp hostname: policy-clamp-runtime-acm ports: - ${ACM_PORT}:6969 @@ -253,8 +257,13 @@ services: command: [ '-c', './acm-runtime.sh', 'mariadb', '3306', - 'message-router', '3904' + 'message-router', '3904', + 'policy-clamp-ac-http-ppnt', '6969', + 'policy-clamp-ac-k8s-ppnt', '6969', + 'policy-clamp-ac-pf-ppnt', '6969', + 'apex-pdp', '6969' ] + policy-clamp-ac-http-ppnt: image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_VERSION} container_name: policy-clamp-ac-http-ppnt diff --git a/csit/resources/scripts/setup-clamp.sh b/csit/resources/scripts/setup-clamp.sh index 923b5218..e680cf09 100755 --- a/csit/resources/scripts/setup-clamp.sh +++ b/csit/resources/scripts/setup-clamp.sh @@ -28,4 +28,6 @@ unset http_proxy https_proxy export SUITES="policy-clamp-test.robot" ROBOT_VARIABLES="-v POLICY_RUNTIME_ACM_IP:localhost:${ACM_PORT} --v POLICY_API_IP:localhost:${POLICY_API_PORT}" +-v POLICY_API_IP:localhost:${API_PORT} -v POLICY_PAP_IP:localhost:${PAP_PORT}" + + diff --git a/csit/resources/tests/data/ACDepriming.json b/csit/resources/tests/data/ACDepriming.json new file mode 100644 index 00000000..d2311b97 --- /dev/null +++ b/csit/resources/tests/data/ACDepriming.json @@ -0,0 +1,3 @@ +{ + "primeOrder": "DEPRIME" +} \ No newline at end of file diff --git a/csit/resources/tests/data/ACPriming.json b/csit/resources/tests/data/ACPriming.json new file mode 100644 index 00000000..76fafeca --- /dev/null +++ b/csit/resources/tests/data/ACPriming.json @@ -0,0 +1,3 @@ +{ + "primeOrder": "PRIME" +} \ No newline at end of file diff --git a/csit/resources/tests/data/AutomationComposition.json b/csit/resources/tests/data/AutomationComposition.json index b58d6118..57148256 100644 --- a/csit/resources/tests/data/AutomationComposition.json +++ b/csit/resources/tests/data/AutomationComposition.json @@ -1,64 +1,25 @@ { - "name": "PMSHInstance0", + "name": "DemoInstance0", "version": "1.0.1", "compositionId": "COMPOSITIONIDPLACEHOLDER", - "state": "UNINITIALISED", - "orderedState": "UNINITIALISED", - "description": "PMSH automation composition instance 0", + "description": "Demo automation composition instance 0", "elements": { "709c62b3-8918-41b9-a747-d21eb79c6c20": { "id": "709c62b3-8918-41b9-a747-d21eb79c6c20", "definition": { - "name": "org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement", + "name": "onap.policy.clamp.ac.element.Policy_AutomationCompositionElement", "version": "1.2.3" }, - "participantId": { - "name": "K8sParticipant0", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.policy.clamp.acm.KubernetesParticipant", - "version": "2.3.4" - }, - "state": "UNINITIALISED", - "orderedState": "UNINITIALISED", - "description": "Automation composition element for the K8S microservice for PMSH" - }, - "709c62b3-8918-41b9-a747-d21eb79c6c21": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c21", - "definition": { - "name": "org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement", - "version": "1.2.3" - }, - "participantId": { - "name": "HttpParticipant0", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.policy.clamp.acm.HttpParticipant", - "version": "2.3.4" - }, - "state": "UNINITIALISED", - "orderedState": "UNINITIALISED", - "description": "Automation composition element for the http requests of PMSH microservice" - }, - "709c62b3-8918-41b9-a747-d21eb79c6c22": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c22", - "definition": { - "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement", - "version": "1.2.3" - }, - "participantId": { - "name": "org.onap.PM_Policy", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.policy.clamp.acm.PolicyParticipant", - "version": "2.3.1" - }, - "state": "UNINITIALISED", - "orderedState": "UNINITIALISED", - "description": "Automation composition element for the operational policy for Performance Management Subscription Handling" + "description": "Policy Automation Composition Element for the Demo", + "properties": { + "policy_type_id": { + "name": "onap.policies.native.Apex", + "version": "1.0.0" + }, + "policy_id": { + "get_input": "acm_element_policy" + } + } } } -} +} \ No newline at end of file diff --git a/csit/resources/tests/data/DeployAC.json b/csit/resources/tests/data/DeployAC.json new file mode 100644 index 00000000..cf65ba65 --- /dev/null +++ b/csit/resources/tests/data/DeployAC.json @@ -0,0 +1,3 @@ +{ + "deployOrder": "DEPLOY" +} \ No newline at end of file diff --git a/csit/resources/tests/data/InstantiateAC.json b/csit/resources/tests/data/InstantiateAC.json deleted file mode 100644 index 4e93c032..00000000 --- a/csit/resources/tests/data/InstantiateAC.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "automationCompositionList": [ - { - "name": "PMSHInstance0", - "version": "1.0.1", - "compositionId": "COMPOSITIONIDPLACEHOLDER", - "state": "UNINITIALISED", - "orderedState": "UNINITIALISED", - "description": "PMSH automation composition instance 0", - "elements": { - "709c62b3-8918-41b9-a747-d21eb79c6c21": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c21", - "definition": { - "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement", - "version": "1.2.3" - }, - "participantId": { - "name": "org.onap.PM_Policy", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.policy.clamp.acm.PolicyParticipant", - "version": "2.3.1" - }, - "state": "UNINITIALISED", - "orderedState": "UNINITIALISED", - "description": "Monitoring Policy Automation Composition Element for the PMSH instance 0 automation composition" - }, - "709c62b3-8918-41b9-a747-d21eb79c6c22": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c22", - "definition": { - "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement", - "version": "1.2.3" - }, - "participantId": { - "name": "org.onap.PM_Policy", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.policy.clamp.acm.PolicyParticipant", - "version": "2.3.1" - }, - "state": "UNINITIALISED", - "orderedState": "UNINITIALISED", - "description": "Operational Policy Automation Composition Element for the PMSH instance 0 automation composition" - } - } - } - ] -} - diff --git a/csit/resources/tests/data/PassivateAC.json b/csit/resources/tests/data/PassivateAC.json deleted file mode 100644 index bd4c4a21..00000000 --- a/csit/resources/tests/data/PassivateAC.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "orderedState": "PASSIVE", - "automationCompositionIdentifierList": [ - { - "name": "PMSHInstance0", - "version": "1.0.1" - } - ] -} diff --git a/csit/resources/tests/data/PassiveCommand.json b/csit/resources/tests/data/PassiveCommand.json deleted file mode 100644 index 48422d7e..00000000 --- a/csit/resources/tests/data/PassiveCommand.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "instantiationCommand": { - "orderedState": "PASSIVE" - } -} diff --git a/csit/resources/tests/data/UndeployAC.json b/csit/resources/tests/data/UndeployAC.json new file mode 100644 index 00000000..148bca11 --- /dev/null +++ b/csit/resources/tests/data/UndeployAC.json @@ -0,0 +1,3 @@ +{ + "deployOrder": "UNDEPLOY" +} \ No newline at end of file diff --git a/csit/resources/tests/data/acelement-usecase.yaml b/csit/resources/tests/data/acelement-usecase.yaml new file mode 100644 index 00000000..94deb943 --- /dev/null +++ b/csit/resources/tests/data/acelement-usecase.yaml @@ -0,0 +1,1117 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2023 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========================================================= +tosca_definitions_version: tosca_simple_yaml_1_3 +data_types: + onap.datatypes.ToscaConceptIdentifier: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + version: + type: string + required: true + + onap.datatypes.native.apex.EngineService: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + description: Specifies the engine name + required: false + default: "ApexEngineService" + version: + type: string + description: Specifies the engine version in double dotted format + required: false + default: "1.0.0" + id: + type: integer + description: Specifies the engine id + required: true + instance_count: + type: integer + description: Specifies the number of engine threads that should be run + required: true + deployment_port: + type: integer + description: Specifies the port to connect to for engine administration + required: false + default: 1 + policy_model_file_name: + type: string + description: The name of the file from which to read the APEX policy model + required: false + policy_type_impl: + type: string + description: The policy type implementation from which to read the APEX policy model + required: false + periodic_event_period: + type: string + description: The time interval in milliseconds for the periodic scanning event, 0 means don't scan + required: false + engine: + type: onap.datatypes.native.apex.engineservice.Engine + description: The parameters for all engines in the APEX engine service + required: true + onap.datatypes.native.apex.EventHandler: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + description: Specifies the event handler name, if not specified this is set to the key name + required: false + carrier_technology: + type: onap.datatypes.native.apex.CarrierTechnology + description: Specifies the carrier technology of the event handler (such as REST/Web Socket/Kafka) + required: true + event_protocol: + type: onap.datatypes.native.apex.EventProtocol + description: Specifies the event protocol of events for the event handler (such as Yaml/JSON/XML/POJO) + required: true + event_name: + type: string + description: Specifies the event name for events on this event handler, if not specified, the event name is read from or written to the event being received or sent + required: false + event_name_filter: + type: string + description: Specifies a filter as a regular expression, events that do not match the filter are dropped, the default is to let all events through + required: false + synchronous_mode: + type: boolean + description: Specifies the event handler is syncronous (receive event and send response) + required: false + default: false + synchronous_peer: + type: string + description: The peer event handler (output for input or input for output) of this event handler in synchronous mode, this parameter is mandatory if the event handler is in synchronous mode + required: false + synchronous_timeout: + type: integer + description: The timeout in milliseconds for responses to be issued by APEX torequests, this parameter is mandatory if the event handler is in synchronous mode + required: false + requestor_mode: + type: boolean + description: Specifies the event handler is in requestor mode (send event and wait for response mode) + required: false + default: false + requestor_peer: + type: string + description: The peer event handler (output for input or input for output) of this event handler in requestor mode, this parameter is mandatory if the event handler is in requestor mode + required: false + requestor_timeout: + type: integer + description: The timeout in milliseconds for wait for responses to requests, this parameter is mandatory if the event handler is in requestor mode + required: false + onap.datatypes.native.apex.CarrierTechnology: + derived_from: tosca.datatypes.Root + properties: + label: + type: string + description: The label (name) of the carrier technology (such as REST, Kafka, WebSocket) + required: true + plugin_parameter_class_name: + type: string + description: The class name of the class that overrides default handling of event input or output for this carrier technology, defaults to the supplied input or output class + required: false + onap.datatypes.native.apex.EventProtocol: + derived_from: tosca.datatypes.Root + properties: + label: + type: string + description: The label (name) of the event protocol (such as Yaml, JSON, XML, or POJO) + required: true + event_protocol_plugin_class: + type: string + description: The class name of the class that overrides default handling of the event protocol for this carrier technology, defaults to the supplied event protocol class + required: false + onap.datatypes.native.apex.Environment: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + description: The name of the environment variable + required: true + value: + type: string + description: The value of the environment variable + required: true + onap.datatypes.native.apex.engineservice.Engine: + derived_from: tosca.datatypes.Root + properties: + context: + type: onap.datatypes.native.apex.engineservice.engine.Context + description: The properties for handling context in APEX engines, defaults to using Java maps for context + required: false + executors: + type: map + description: The plugins for policy executors used in engines such as javascript, MVEL, Jython + required: true + entry_schema: + description: The plugin class path for this policy executor + type: string + onap.datatypes.native.apex.engineservice.engine.Context: + derived_from: tosca.datatypes.Root + properties: + distributor: + type: onap.datatypes.native.apex.Plugin + description: The plugin to be used for distributing context between APEX PDPs at runtime + required: false + schemas: + type: map + description: The plugins for context schemas available in APEX PDPs such as Java and Avro + required: false + entry_schema: + type: onap.datatypes.native.apex.Plugin + locking: + type: onap.datatypes.native.apex.Plugin + description: The plugin to be used for locking context in and between APEX PDPs at runtime + required: false + persistence: + type: onap.datatypes.native.apex.Plugin + description: The plugin to be used for persisting context for APEX PDPs at runtime + required: false + onap.datatypes.native.apex.Plugin: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + description: The name of the executor such as Javascript, Jython or MVEL + required: true + plugin_class_name: + type: string + description: The class path of the plugin class for this executor + + org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest: + version: 1.0.0 + derived_from: tosca.datatypes.Root + properties: + restRequestId: + type: onap.datatypes.ToscaConceptIdentifier + required: true + description: The name and version of a REST request to be sent to a REST endpoint + httpMethod: + type: string + required: true + constraints: + - valid_values: + - POST + - PUT + - GET + - DELETE + description: The REST method to use + path: + type: string + required: true + description: The path of the REST request relative to the base URL + body: + type: string + required: false + description: The body of the REST request for PUT and POST requests + expectedResponse: + type: integer + required: true + constraints: [] + description: THe expected HTTP status code for the REST request + org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity: + version: 1.0.0 + derived_from: tosca.datatypes.Root + properties: + configurationEntityId: + type: onap.datatypes.ToscaConceptIdentifier + required: true + description: The name and version of a Configuration Entity to be handled + by the HTTP Automation Composition Element + restSequence: + type: list + entry_schema: + type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest + type_version: 1.0.0 + description: A sequence of REST commands to send to the REST endpoint + +policy_types: + onap.policies.Native: + derived_from: tosca.policies.Root + description: a base policy type for all native PDP policies + version: 1.0.0 + name: onap.policies.Native + onap.policies.native.Apex: + derived_from: onap.policies.Native + description: a policy type for native apex policies + version: 1.0.0 + name: onap.policies.native.Apex + properties: + engine_service: + type: onap.datatypes.native.apex.EngineService + description: APEX Engine Service Parameters + inputs: + type: map + description: Inputs for handling events coming into the APEX engine + entry_schema: + type: onap.datatypes.native.apex.EventHandler + outputs: + type: map + description: Outputs for handling events going out of the APEX engine + entry_schema: + type: onap.datatypes.native.apex.EventHandler + environment: + type: list + description: Envioronmental parameters for the APEX engine + entry_schema: + type: onap.datatypes.native.apex.Environment + +node_types: + org.onap.policy.clamp.acm.Participant: + version: 1.0.1 + derived_from: tosca.nodetypes.Root + properties: + provider: + type: string + required: false + org.onap.policy.clamp.acm.AutomationCompositionElement: + version: 1.0.1 + derived_from: tosca.nodetypes.Root + properties: + provider: + type: string + required: false + metadata: + common: true + description: Specifies the organization that provides the automation composition element + startPhase: + type: integer + required: false + constraints: + - greater_or_equal: 0 + metadata: + common: true + description: A value indicating the start phase in which this automation composition element will be started, the + first start phase is zero. Automation Composition Elements are started in their start_phase order and stopped + in reverse start phase order. Automation Composition Elements with the same start phase are started and + stopped simultaneously + uninitializedToPassiveTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from uninitialized to passive + passiveToRunningTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from passive to running + runningToPassiveTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from running to passive + passiveToUninitializedTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from passive to uninitialized + org.onap.policy.clamp.acm.AutomationComposition: + version: 1.0.1 + derived_from: tosca.nodetypes.Root + properties: + provider: + type: string + required: false + metadata: + common: true + description: Specifies the organization that provides the automation composition element + elements: + type: list + required: true + metadata: + common: true + entry_schema: + type: onap.datatypes.ToscaConceptIdentifier + description: Specifies a list of automation composition element definitions that make up this automation composition definition + org.onap.policy.clamp.acm.PolicyAutomationCompositionElement: + version: 1.0.0 + derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement + properties: + policy_type_id: + type: onap.datatypes.ToscaConceptIdentifier + required: true + policy_id: + type: onap.datatypes.ToscaConceptIdentifier + required: false + org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement: + version: 1.0.0 + derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement + properties: + chart: + type: string + required: true + configs: + type: list + required: false + requirements: + type: string + required: false + templates: + type: list + required: false + entry_schema: + values: + type: string + required: true + org.onap.policy.clamp.acm.HttpAutomationCompositionElement: + version: 1.0.0 + derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement + properties: + baseUrl: + type: string + required: true + description: The base URL to be prepended to each path, identifies the host for the REST endpoints. + httpHeaders: + type: map + required: false + entry_schema: + type: string + description: HTTP headers to send on REST requests + configurationEntities: + type: map + required: true + entry_schema: + type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity + type_version: 1.0.0 + description: The connfiguration entities the Automation Composition Element is managing and their associated REST requests + +topology_template: + inputs: + acm_element_policy: + type: onap.datatypes.ToscaConceptIdentifier + description: The ID of the operational policy to use + default: + name: onap.policies.native.apex.ac.element + version: 1.0.0 + node_templates: + org.onap.policy.clamp.acm.PolicyParticipant: + version: 2.3.1 + type: org.onap.policy.clamp.acm.Participant + type_version: 1.0.1 + description: Participant for Policy microservices + properties: + provider: ONAP + onap.policy.clamp.ac.element.Policy_AutomationCompositionElement: + version: 1.2.3 + type: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement + type_version: 1.0.0 + description: Automation composition element for the operational policy for Performance Management Subscription Handling + properties: + provider: Ericsson + startPhase: 0 + + org.onap.k8s.acm.K8SAutomationCompositionParticipant: + version: 2.3.4 + type: org.onap.policy.clamp.acm.Participant + type_version: 1.0.1 + description: Participant for K8S + properties: + provider: ONAP + onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement: + # Chart from any chart repository configured on helm client. + version: 1.2.3 + type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement + type_version: 1.0.0 + description: Automation composition element for the K8S microservice for AC Element Starter + properties: + provider: ONAP + startPhase: 0 + uninitializedToPassiveTimeout: 300 + podStatusCheckInterval: 30 + onap.policy.clamp.ac.element.K8S_BridgeAutomationCompositionElement: + # Chart from any chart repository configured on helm client. + version: 1.2.3 + type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement + type_version: 1.0.0 + description: Automation composition element for the K8S microservice for AC Element Bridge + properties: + provider: ONAP + startPhase: 0 + uninitializedToPassiveTimeout: 300 + podStatusCheckInterval: 30 + onap.policy.clamp.ac.element.K8S_SinkAutomationCompositionElement: + # Chart from any chart repository configured on helm client. + version: 1.2.3 + type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement + type_version: 1.0.0 + description: Automation composition element for the K8S microservice for AC Element Sink + properties: + provider: ONAP + startPhase: 0 + uninitializedToPassiveTimeout: 300 + podStatusCheckInterval: 30 + + org.onap.policy.clamp.acm.HttpParticipant: + version: 2.3.4 + type: org.onap.policy.clamp.acm.Participant + type_version: 1.0.1 + description: Participant for Http requests + properties: + provider: ONAP + onap.policy.clamp.ac.element.Http_StarterAutomationCompositionElement: + # Http config for AC Element Starter. + version: 1.2.3 + type: org.onap.policy.clamp.acm.HttpAutomationCompositionElement + type_version: 1.0.0 + description: Automation composition element for the http requests of AC Element Starter microservice + properties: + provider: ONAP + uninitializedToPassiveTimeout: 300 + startPhase: 1 + onap.policy.clamp.ac.element.Http_BridgeAutomationCompositionElement: + # Http config for AC Element Bridge. + version: 1.2.3 + type: org.onap.policy.clamp.acm.HttpAutomationCompositionElement + type_version: 1.0.0 + description: Automation composition element for the http requests of AC Element Bridge microservice + properties: + provider: ONAP + uninitializedToPassiveTimeout: 300 + startPhase: 1 + onap.policy.clamp.ac.element.Http_SinkAutomationCompositionElement: + # Http config for AC Element Sink. + version: 1.2.3 + type: org.onap.policy.clamp.acm.HttpAutomationCompositionElement + type_version: 1.0.0 + description: Automation composition element for the http requests of AC Element Sink microservice + properties: + provider: ONAP + uninitializedToPassiveTimeout: 300 + startPhase: 1 + + onap.policy.clamp.ac.element.AutomationCompositionDefinition: + version: 1.2.3 + type: org.onap.policy.clamp.acm.AutomationComposition + type_version: 1.0.1 + description: Automation composition for Demo + properties: + provider: ONAP + elements: + - name: onap.policy.clamp.ac.element.Policy_AutomationCompositionElement + version: 1.2.3 + - name: onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement + version: 1.2.3 + - name: onap.policy.clamp.ac.element.K8S_BridgeAutomationCompositionElement + version: 1.2.3 + - name: onap.policy.clamp.ac.element.K8S_SinkAutomationCompositionElement + version: 1.2.3 + - name: onap.policy.clamp.ac.element.Http_StarterAutomationCompositionElement + version: 1.2.3 + - name: onap.policy.clamp.ac.element.Http_BridgeAutomationCompositionElement + version: 1.2.3 + - name: onap.policy.clamp.ac.element.Http_SinkAutomationCompositionElement + version: 1.2.3 + + policies: + - onap.policies.native.apex.ac.element: + type: onap.policies.native.Apex + type_version: 1.0.0 + properties: + engineServiceParameters: + name: MyApexEngine + version: 0.0.1 + id: 45 + instanceCount: 2 + deploymentPort: 12561 + engineParameters: + executorParameters: + JAVASCRIPT: + parameterClassName: org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters + contextParameters: + parameterClassName: org.onap.policy.apex.context.parameters.ContextParameters + schemaParameters: + Json: + parameterClassName: org.onap.policy.apex.plugins.context.schema.json.JsonSchemaHelperParameters + policy_type_impl: + policies: + key: + name: APEXacElementPolicy_Policies + version: 0.0.1 + policyMap: + entry: + - key: + name: ReceiveEventPolicy + version: 0.0.1 + value: + policyKey: + name: ReceiveEventPolicy + version: 0.0.1 + template: Freestyle + state: + entry: + - key: DecideForwardingState + value: + stateKey: + parentKeyName: ReceiveEventPolicy + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DecideForwardingState + trigger: + name: AcElementEvent + version: 0.0.1 + stateOutputs: + entry: + - key: CreateForwardPayload + value: + key: + parentKeyName: ReceiveEventPolicy + parentKeyVersion: 0.0.1 + parentLocalName: DecideForwardingState + localName: CreateForwardPayload + outgoingEvent: + name: DmaapResponseStatusEvent + version: 0.0.1 + outgoingEventReference: + - name: DmaapResponseStatusEvent + version: 0.0.1 + nextState: + parentKeyName: 'NULL' + parentKeyVersion: 0.0.0 + parentLocalName: 'NULL' + localName: 'NULL' + contextAlbumReference: [] + taskSelectionLogic: + key: + parentKeyName: 'NULL' + parentKeyVersion: 0.0.0 + parentLocalName: 'NULL' + localName: 'NULL' + logicFlavour: UNDEFINED + logic: '' + stateFinalizerLogicMap: + entry: [] + defaultTask: + name: ForwardPayloadTask + version: 0.0.1 + taskReferences: + entry: + - key: + name: ForwardPayloadTask + version: 0.0.1 + value: + key: + parentKeyName: ReceiveEventPolicy + parentKeyVersion: 0.0.1 + parentLocalName: DecideForwardingState + localName: ReceiveEventPolicy + outputType: DIRECT + output: + parentKeyName: ReceiveEventPolicy + parentKeyVersion: 0.0.1 + parentLocalName: DecideForwardingState + localName: CreateForwardPayload + firstState: DecideForwardingState + tasks: + key: + name: APEXacElementPolicy_Tasks + version: 0.0.1 + taskMap: + entry: + - key: + name: ForwardPayloadTask + version: 0.0.1 + value: + key: + name: ForwardPayloadTask + version: 0.0.1 + inputEvent: + key: + name: AcElementEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: Dmaap + target: APEX + parameter: + entry: + - key: DmaapResponseEvent + value: + key: + parentKeyName: AcElementEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DmaapResponseEvent + fieldSchemaKey: + name: ACEventType + version: 0.0.1 + optional: false + toscaPolicyState: ENTRY + outputEvents: + entry: + - key: DmaapResponseStatusEvent + value: + key: + name: DmaapResponseStatusEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: APEX + target: Dmaap + parameter: + entry: + - key: DmaapResponseStatusEvent + value: + key: + parentKeyName: DmaapResponseStatusEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DmaapResponseStatusEvent + fieldSchemaKey: + name: ACEventType + version: 0.0.1 + optional: false + toscaPolicyState: '' + taskParameters: + entry: [] + contextAlbumReference: + - name: ACElementAlbum + version: 0.0.1 + taskLogic: + key: + parentKeyName: ForwardPayloadTask + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: TaskLogic + logicFlavour: JAVASCRIPT + logic: "/*\n * ============LICENSE_START=======================================================\n\ + \ * Copyright (C) 2022 Nordix. All rights reserved.\n * ================================================================================\n\ + \ * Licensed under the Apache License, Version 2.0 (the 'License');\n\ + \ * you may not use this file except in compliance with the\ + \ License.\n * You may obtain a copy of the License at\n *\n\ + \ * http://www.apache.org/licenses/LICENSE-2.0\n *\n\ + \ * Unless required by applicable law or agreed to in writing,\ + \ software\n * distributed under the License is distributed\ + \ on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS\ + \ OF ANY KIND, either express or implied.\n * See the License\ + \ for the specific language governing permissions and\n *\ + \ limitations under the License.\n *\n * SPDX-License-Identifier:\ + \ Apache-2.0\n * ============LICENSE_END=========================================================\n\ + \ */\n\nexecutor.logger.info(executor.subject.id);\nexecutor.logger.info(executor.inFields);\n\ + \nvar msgResponse = executor.inFields.get('DmaapResponseEvent');\n\ + executor.logger.info('Task in progress with mesages: ' + msgResponse);\n\ + \nvar elementId = msgResponse.get('elementId').get('name');\n\ + \nif (msgResponse.get('messageType') == 'STATUS' &&\n (elementId\ + \ == 'onap.policy.clamp.ac.startertobridge'\n || elementId\ + \ == 'onap.policy.clamp.ac.bridgetosink')) {\n\n var receiverId\ + \ = '';\n if (elementId == 'onap.policy.clamp.ac.startertobridge')\ + \ {\n receiverId = 'onap.policy.clamp.ac.bridge';\n\ + \ } else {\n receiverId = 'onap.policy.clamp.ac.sink';\n\ + \ }\n\n var elementIdResponse = new java.util.HashMap();\n\ + \ elementIdResponse.put('name', receiverId);\n elementIdResponse.put('version',\ + \ msgResponse.get('elementId').get('version'));\n\n var\ + \ dmaapResponse = new java.util.HashMap();\n dmaapResponse.put('elementId',\ + \ elementIdResponse);\n\n var message = msgResponse.get('message')\ + \ + ' trace added from policy';\n dmaapResponse.put('message',\ + \ message);\n dmaapResponse.put('messageType', 'STATUS');\n\ + \ dmaapResponse.put('messageId', msgResponse.get('messageId'));\n\ + \ dmaapResponse.put('timestamp', msgResponse.get('timestamp'));\n\ + \n executor.logger.info('Sending forwarding Event to Ac\ + \ element: ' + dmaapResponse);\n\n executor.outFields.put('DmaapResponseStatusEvent',\ + \ dmaapResponse);\n}\n\ntrue;" + events: + key: + name: APEXacElementPolicy_Events + version: 0.0.1 + eventMap: + entry: + - key: + name: AcElementEvent + version: 0.0.1 + value: + key: + name: AcElementEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: Dmaap + target: APEX + parameter: + entry: + - key: DmaapResponseEvent + value: + key: + parentKeyName: AcElementEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DmaapResponseEvent + fieldSchemaKey: + name: ACEventType + version: 0.0.1 + optional: false + toscaPolicyState: ENTRY + - key: + name: DmaapResponseStatusEvent + version: 0.0.1 + value: + key: + name: DmaapResponseStatusEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: APEX + target: Dmaap + parameter: + entry: + - key: DmaapResponseStatusEvent + value: + key: + parentKeyName: DmaapResponseStatusEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: DmaapResponseStatusEvent + fieldSchemaKey: + name: ACEventType + version: 0.0.1 + optional: false + toscaPolicyState: '' + - key: + name: LogEvent + version: 0.0.1 + value: + key: + name: LogEvent + version: 0.0.1 + nameSpace: org.onap.policy.apex.ac.element + source: APEX + target: file + parameter: + entry: + - key: final_status + value: + key: + parentKeyName: LogEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: final_status + fieldSchemaKey: + name: SimpleStringType + version: 0.0.1 + optional: false + - key: message + value: + key: + parentKeyName: LogEvent + parentKeyVersion: 0.0.1 + parentLocalName: 'NULL' + localName: message + fieldSchemaKey: + name: SimpleStringType + version: 0.0.1 + optional: false + toscaPolicyState: '' + albums: + key: + name: APEXacElementPolicy_Albums + version: 0.0.1 + albums: + entry: + - key: + name: ACElementAlbum + version: 0.0.1 + value: + key: + name: ACElementAlbum + version: 0.0.1 + scope: policy + isWritable: true + itemSchema: + name: ACEventType + version: 0.0.1 + schemas: + key: + name: APEXacElementPolicy_Schemas + version: 0.0.1 + schemas: + entry: + - key: + name: ACEventType + version: 0.0.1 + value: + key: + name: ACEventType + version: 0.0.1 + schemaFlavour: Json + schemaDefinition: "{\n \"$schema\": \"http://json-schema.org/draft-04/schema#\"\ + ,\n \"type\": \"object\",\n \"properties\": {\n \ + \ \"elementId\": {\n \"type\": \"object\",\n \ + \ \"properties\": {\n \"name\": {\n \ + \ \"type\": \"string\"\n },\n\ + \ \"version\": {\n \"type\"\ + : \"string\"\n }\n },\n \ + \ \"required\": [\n \"name\",\n \ + \ \"version\"\n ]\n },\n \"message\"\ + : {\n \"type\": \"string\"\n },\n \"\ + messageType\": {\n \"type\": \"string\"\n \ + \ }\n },\n \"required\": [\n \"elementId\",\n \ + \ \"message\",\n \"messageType\"\n ]\n}" + - key: + name: SimpleIntType + version: 0.0.1 + value: + key: + name: SimpleIntType + version: 0.0.1 + schemaFlavour: Java + schemaDefinition: java.lang.Integer + - key: + name: SimpleStringType + version: 0.0.1 + value: + key: + name: SimpleStringType + version: 0.0.1 + schemaFlavour: Java + schemaDefinition: java.lang.String + - key: + name: UUIDType + version: 0.0.1 + value: + key: + name: UUIDType + version: 0.0.1 + schemaFlavour: Java + schemaDefinition: java.util.UUID + key: + name: APEXacElementPolicy + version: 0.0.1 + keyInformation: + key: + name: APEXacElementPolicy_KeyInfo + version: 0.0.1 + keyInfoMap: + entry: + - key: + name: ACElementAlbum + version: 0.0.1 + value: + key: + name: ACElementAlbum + version: 0.0.1 + UUID: 7cddfab8-6d3f-3f7f-8ac3-e2eb5979c900 + description: Generated description for concept referred to by + key "ACElementAlbum:0.0.1" + - key: + name: ACEventType + version: 0.0.1 + value: + key: + name: ACEventType + version: 0.0.1 + UUID: dab78794-b666-3929-a75b-70d634b04fe5 + description: Generated description for concept referred to by + key "ACEventType:0.0.1" + - key: + name: APEXacElementPolicy + version: 0.0.1 + value: + key: + name: APEXacElementPolicy + version: 0.0.1 + UUID: da478611-7d77-3c46-b4be-be968769ba4e + description: Generated description for concept referred to by + key "APEXacElementPolicy:0.0.1" + - key: + name: APEXacElementPolicy_Albums + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Albums + version: 0.0.1 + UUID: fa8dc15e-8c8d-3de3-a0f8-585b76511175 + description: Generated description for concept referred to by + key "APEXacElementPolicy_Albums:0.0.1" + - key: + name: APEXacElementPolicy_Events + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Events + version: 0.0.1 + UUID: 8508cd65-8dd2-342d-a5c6-1570810dbe2b + description: Generated description for concept referred to by + key "APEXacElementPolicy_Events:0.0.1" + - key: + name: APEXacElementPolicy_KeyInfo + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_KeyInfo + version: 0.0.1 + UUID: 09e6927d-c5ac-3779-919f-9333994eed22 + description: Generated description for concept referred to by + key "APEXacElementPolicy_KeyInfo:0.0.1" + - key: + name: APEXacElementPolicy_Policies + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Policies + version: 0.0.1 + UUID: cade3c9a-1600-3642-a6f4-315612187f46 + description: Generated description for concept referred to by + key "APEXacElementPolicy_Policies:0.0.1" + - key: + name: APEXacElementPolicy_Schemas + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Schemas + version: 0.0.1 + UUID: 5bb4a8e9-35fa-37db-9a49-48ef036a7ba9 + description: Generated description for concept referred to by + key "APEXacElementPolicy_Schemas:0.0.1" + - key: + name: APEXacElementPolicy_Tasks + version: 0.0.1 + value: + key: + name: APEXacElementPolicy_Tasks + version: 0.0.1 + UUID: 2527eeec-0d1f-3094-ad3f-212622b12836 + description: Generated description for concept referred to by + key "APEXacElementPolicy_Tasks:0.0.1" + - key: + name: AcElementEvent + version: 0.0.1 + value: + key: + name: AcElementEvent + version: 0.0.1 + UUID: 32c013e2-2740-3986-a626-cbdf665b63e9 + description: Generated description for concept referred to by + key "AcElementEvent:0.0.1" + - key: + name: DmaapResponseStatusEvent + version: 0.0.1 + value: + key: + name: DmaapResponseStatusEvent + version: 0.0.1 + UUID: 2715cb6c-2778-3461-8b69-871e79f95935 + description: Generated description for concept referred to by + key "DmaapResponseStatusEvent:0.0.1" + - key: + name: ForwardPayloadTask + version: 0.0.1 + value: + key: + name: ForwardPayloadTask + version: 0.0.1 + UUID: 51defa03-1ecf-3314-bf34-2a652bce57fa + description: Generated description for concept referred to by + key "ForwardPayloadTask:0.0.1" + - key: + name: LogEvent + version: 0.0.1 + value: + key: + name: LogEvent + version: 0.0.1 + UUID: c540f048-96af-35e3-a36e-e9c29377cba7 + description: Generated description for concept referred to by + key "LogEvent:0.0.1" + - key: + name: ReceiveEventPolicy + version: 0.0.1 + value: + key: + name: ReceiveEventPolicy + version: 0.0.1 + UUID: 568b7345-9de1-36d3-b6a3-9b857e6809a1 + description: Generated description for concept referred to by + key "ReceiveEventPolicy:0.0.1" + - key: + name: SimpleIntType + version: 0.0.1 + value: + key: + name: SimpleIntType + version: 0.0.1 + UUID: 153791fd-ae0a-36a7-88a5-309a7936415d + description: Generated description for concept referred to by + key "SimpleIntType:0.0.1" + - key: + name: SimpleStringType + version: 0.0.1 + value: + key: + name: SimpleStringType + version: 0.0.1 + UUID: 8a4957cf-9493-3a76-8c22-a208e23259af + description: Generated description for concept referred to by + key "SimpleStringType:0.0.1" + - key: + name: UUIDType + version: 0.0.1 + value: + key: + name: UUIDType + version: 0.0.1 + UUID: 6a8cc68e-dfc8-3403-9c6d-071c886b319c + description: Generated description for concept referred to by + key "UUIDType:0.0.1" + eventInputParameters: + DmaapConsumer: + carrierTechnologyParameters: + carrierTechnology: RESTCLIENT + parameterClassName: org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters + parameters: + url: http://message-router:3904/events/AC_ELEMENT_MSG/APEX/1?timeout=30000 + eventProtocolParameters: + eventProtocol: JSON + parameters: + pojoField: DmaapResponseEvent + eventName: AcElementEvent + eventNameFilter: AcElementEvent + eventOutputParameters: + logOutputter: + carrierTechnologyParameters: + carrierTechnology: FILE + parameters: + fileName: outputevents.log + eventProtocolParameters: + eventProtocol: JSON + DmaapReplyProducer: + carrierTechnologyParameters: + carrierTechnology: RESTCLIENT + parameterClassName: org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters + parameters: + url: http://message-router:3904/events/POLICY_UPDATE_MSG + eventProtocolParameters: + eventProtocol: JSON + parameters: + pojoField: DmaapResponseStatusEvent + eventNameFilter: (LogEvent|DmaapResponseStatusEvent) + name: onap.policies.native.apex.ac.element + version: 1.0.0 diff --git a/csit/resources/tests/data/functional-pmsh-usecase.yaml b/csit/resources/tests/data/functional-pmsh-usecase.yaml deleted file mode 100644 index f0da6f35..00000000 --- a/csit/resources/tests/data/functional-pmsh-usecase.yaml +++ /dev/null @@ -1,3404 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2022 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========================================================= -tosca_definitions_version: tosca_simple_yaml_1_3 -data_types: - onap.datatypes.ToscaConceptIdentifier: - derived_from: tosca.datatypes.Root - properties: - name: - type: string - required: true - version: - type: string - required: true - onap.datatype.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 - entity that generated the ONSET event will be the target. - required: false - metadata: - clamp_possible_values: ClampExecution:CSAR_RESOURCES - entry_schema: - type: string - onap.datatype.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 - org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest: - version: 1.0.0 - derived_from: tosca.datatypes.Root - properties: - restRequestId: - type: onap.datatypes.ToscaConceptIdentifier - required: true - description: The name and version of a REST request to be sent to a REST endpoint - httpMethod: - type: string - required: true - constraints: - - valid_values: - - POST - - PUT - - GET - - DELETE - description: The REST method to use - path: - type: string - required: true - description: The path of the REST request relative to the base URL - body: - type: string - required: false - description: The body of the REST request for PUT and POST requests - expectedResponse: - type: integer - required: true - constraints: [] - description: THe expected HTTP status code for the REST request - org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity: - version: 1.0.0 - derived_from: tosca.datatypes.Root - properties: - configurationEntityId: - type: onap.datatypes.ToscaConceptIdentifier - required: true - description: The name and version of a Configuration Entity to be handled - by the HTTP Automation Composition Element - restSequence: - type: list - entry_schema: - type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest - type_version: 1.0.0 - description: A sequence of REST commands to send to the REST endpoint -policy_types: - onap.policies.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.customPolicyType: - derived_from: tosca.policies.Root - description: a base policy type for all policies that govern monitoring provisioning - version: 1.0.0 - name: onap.policies.customPolicyType - 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 - Policy Types. This does NOT support the legacy Policy YAML policy type. - 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 - timeout for each operation listed. - 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.acm.Participant: - version: 1.0.1 - derived_from: tosca.nodetypes.Root - properties: - provider: - type: string - required: false - org.onap.policy.clamp.acm.AutomationCompositionElement: - version: 1.0.1 - derived_from: tosca.nodetypes.Root - properties: - provider: - type: string - required: false - metadata: - common: true - description: Specifies the organization that provides the automation composition element - participant_id: - type: onap.datatypes.ToscaConceptIdentifier - required: true - metadata: - common: true - participantType: - type: onap.datatypes.ToscaConceptIdentifier - required: true - metadata: - common: true - description: The identity of the participant type that hosts this type of Automation Composition Element - startPhase: - type: integer - required: false - constraints: - - greater_or_equal: 0 - metadata: - common: true - description: A value indicating the start phase in which this automation composition element will be started, the - first start phase is zero. Automation Composition Elements are started in their start_phase order and stopped - in reverse start phase order. Automation Composition Elements with the same start phase are started and - stopped simultaneously - uninitializedToPassiveTimeout: - type: integer - required: false - constraints: - - greater_or_equal: 0 - default: 60 - metadata: - common: true - description: The maximum time in seconds to wait for a state chage from uninitialized to passive - passiveToRunningTimeout: - type: integer - required: false - constraints: - - greater_or_equal: 0 - default: 60 - metadata: - common: true - description: The maximum time in seconds to wait for a state chage from passive to running - runningToPassiveTimeout: - type: integer - required: false - constraints: - - greater_or_equal: 0 - default: 60 - metadata: - common: true - description: The maximum time in seconds to wait for a state chage from running to passive - passiveToUninitializedTimeout: - type: integer - required: false - constraints: - - greater_or_equal: 0 - default: 60 - metadata: - common: true - description: The maximum time in seconds to wait for a state chage from passive to uninitialized - org.onap.policy.clamp.acm.AutomationComposition: - version: 1.0.1 - derived_from: tosca.nodetypes.Root - properties: - provider: - type: string - required: false - metadata: - common: true - description: Specifies the organization that provides the automation composition element - elements: - type: list - required: true - metadata: - common: true - entry_schema: - type: onap.datatypes.ToscaConceptIdentifier - description: Specifies a list of automation composition element definitions that make up this automation composition definition - org.onap.policy.clamp.acm.PolicyAutomationCompositionElement: - version: 1.0.1 - derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement - properties: - policy_type_id: - type: onap.datatypes.ToscaConceptIdentifier - required: true - policy_id: - type: onap.datatypes.ToscaConceptIdentifier - required: false - org.onap.policy.clamp.acm.CDSAutomationCompositionElement: - version: 1.0.1 - derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement - properties: - cds_blueprint_id: - type: onap.datatypes.ToscaConceptIdentifier - required: true - org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement: - version: 1.0.1 - derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement - properties: - chart: - type: string - required: true - configs: - type: list - required: false - requirements: - type: string - required: false - templates: - type: list - required: false - entry_schema: - values: - type: string - required: true - org.onap.policy.clamp.acm.HttpAutomationCompositionElement: - version: 1.0.1 - derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement - properties: - baseUrl: - type: string - required: true - description: The base URL to be prepended to each path, identifies the host for the REST endpoints. - httpHeaders: - type: map - required: false - entry_schema: - type: string - description: HTTP headers to send on REST requests - configurationEntities: - type: map - required: true - entry_schema: - type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity - type_version: 1.0.0 - description: The connfiguration entities the Automation Composition Element is managing and their associated REST requests - -topology_template: - inputs: - pmsh_operational_policy: - type: onap.datatypes.ToscaConceptIdentifier - description: The ID of the PMSH operational policy to use - default: - name: operational.apex.pmcontrol - version: 1.0.0 - node_templates: - org.onap.policy.clamp.acm.PolicyParticipant: - version: 2.3.1 - type: org.onap.policy.clamp.acm.Participant - type_version: 1.0.1 - description: Participant for DCAE microservices - properties: - provider: ONAP - org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement: - version: 1.2.3 - type: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement - type_version: 1.0.1 - description: Automation composition element for the operational policy for Performance Management Subscription Handling - properties: - provider: Ericsson - participant_id: - name: org.onap.PM_Policy - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.PolicyParticipant - version: 2.3.1 - policy_type_id: - name: onap.policies.operational.pm-subscription-handler - version: 1.0.0 - policy_id: - get_input: pmsh_operational_policy - - - org.onap.policy.clamp.acm.KubernetesParticipant: - version: 2.3.4 - type: org.onap.policy.clamp.acm.Participant - type_version: 1.0.1 - description: Participant for K8S - properties: - provider: ONAP - org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement: - # Chart from new repository - version: 1.2.3 - type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement - type_version: 1.0.1 - description: Automation composition element for the K8S microservice for PMSH - properties: - provider: ONAP - participant_id: - name: K8sParticipant0 - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.KubernetesParticipant - version: 2.3.4 - chart: - chartId: - name: dcae-pmsh - version: 10.0.0 - namespace: onap - releaseName: dcae-pmsh - repository: - repoName: chartmuseum - address: http://chart-museum:80 - userName: onapinitializer - password: demo123456! - overrideParams: - global.masterPassword: test - global.centralizedLoggingEnabled: false - org.onap.policy.clamp.acm.HttpParticipant: - version: 2.3.4 - type: org.onap.policy.clamp.acm.Participant - type_version: 1.0.1 - description: Participant for Http requests - properties: - provider: ONAP - org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement: - # Http config for PMSH. - version: 1.2.3 - type: org.onap.policy.clamp.acm.HttpAutomationCompositionElement - type_version: 1.0.1 - description: Automation composition element for the http requests of PMSH microservice - properties: - provider: ONAP - participant_id: - name: HttpParticipant0 - version: 1.0.0 - participantType: - name: org.onap.policy.clamp.acm.HttpParticipant - version: 2.3.4 - uninitializedToPassiveTimeout: 180 - startPhase: 1 - baseUrl: https://dcae-pmsh:8443 - httpHeaders: - Content-Type: application/json - configurationEntities: - - configurationEntityId: - name: entity1 - version: 1.0.1 - restSequence: - - restRequestId: - name: request1 - version: 1.0.1 - httpMethod: POST - path: subscription - body: '{ - "subscription":{ - "subscriptionName":"new_sub_01", - "operationalPolicyName":"pmsh-operational-policy", - "controlLoopName":"controlLoop-name", - "nfFilter":{ - "nfNames":[ - "^pnf*" - ], - "modelInvariantIDs":[ - "7129e420-d396-4efb-af02-6b83499b12f5" - ], - "modelVersionIDs":[ - "e80a6ae3-cafd-4d24-850d-e14c084a5ca7" - ], - "modelNames":[ - "pnf_134" - ] - }, - "measurementGroups":[ - { - "measurementGroup":{ - "measurementGroupName":"msgroup_01", - "administrativeState":"UNLOCKED", - "fileBasedGP":15, - "fileLocation":"/pm/pm.xml", - "measurementTypes":[ - { - "measurementType":"EutranCell.*" - }, - { - "measurementType":"EutranCellRelation.pmCounter1" - }, - { - "measurementType":"EutranCellRelation.pmCounter2" - } - ], - "managedObjectDNsBasic":[ - { - "DN":"ManagedElement=1,ENodeBFunction=1,EUtranCell=CityCenter1" - }, - { - "DN":"ManagedElement=1,ENodeBFunction=1,EUtranCell=CityCenter1, EUtranCellRelation=CityCenter2" - }, - { - "DN":"ManagedElement=1,ENodeBFunction=1,EUtranCell=CityCenter1, EUtranCellRelation=CityCenter3" - } - ] - } - } - ] - } - }' - expectedResponse: 201 - - - org.onap.domain.pmsh.PMSHAutomationCompositionDefinition: - version: 1.2.3 - type: org.onap.policy.clamp.acm.AutomationComposition - type_version: 1.0.1 - description: Automation composition for PMSH - properties: - provider: ONAP - elements: - - name: org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement - version: 1.2.3 - - name: org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement - version: 1.2.3 - - name: org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement - version: 1.2.3 - policies: - - operational.apex.pmcontrol: - type: onap.policies.controlloop.operational.common.Apex - type_version: 1.0.0 - version: 1.0.0 - properties: - engineServiceParameters: - name: MyApexEngine - version: 0.0.1 - id: 45 - instanceCount: 2 - deploymentPort: 12561 - engineParameters: - executorParameters: - JAVASCRIPT: - parameterClassName: org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters - contextParameters: - parameterClassName: org.onap.policy.apex.context.parameters.ContextParameters - schemaParameters: - Avro: - parameterClassName: org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters - Java: - parameterClassName: org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters - jsonAdapters: - Instant: - adaptedClass: java.time.Instant - adaptorClass: org.onap.policy.common.gson.InstantAsMillisTypeAdapter - policy_type_impl: - apexPolicyModel: - key: - name: PMControlPolicy - version: 0.0.1 - keyInformation: - key: - name: PMControlPolicy_KeyInfo - version: 0.0.1 - keyInfoMap: - entry: - - key: - name: CDSActionIdentifiersType - version: 0.0.1 - value: - key: - name: CDSActionIdentifiersType - version: 0.0.1 - UUID: 6e5fa19b-14df-37e3-a4ae-8c537e861a82 - description: Generated description for concept referred to by - key "CDSActionIdentifiersType:0.0.1" - - key: - name: CDSCreateResponseEvent - version: 0.0.1 - value: - key: - name: CDSCreateResponseEvent - version: 0.0.1 - UUID: 14b29e38-ac75-3273-aa4e-8583c0aa7dad - description: Generated description for concept referred to by - key "CDSCreateResponseEvent:0.0.1" - - key: - name: CDSCreateResponsePayloadType - version: 0.0.1 - value: - key: - name: CDSCreateResponsePayloadType - version: 0.0.1 - UUID: 04573f8f-e772-30a5-b1d9-d7318d4a1e13 - description: Generated description for concept referred to by - key "CDSCreateResponsePayloadType:0.0.1" - - key: - name: CDSCreateResponsePolicy - version: 0.0.1 - value: - key: - name: CDSCreateResponsePolicy - version: 0.0.1 - UUID: e126c965-fc09-3bfe-8f55-70f380a4a49c - description: Generated description for concept referred to by - key "CDSCreateResponsePolicy:0.0.1" - - key: - name: CDSCreateResponseTask - version: 0.0.1 - value: - key: - name: CDSCreateResponseTask - version: 0.0.1 - UUID: 6165ee82-afd2-3aab-a517-f00b3f2461d2 - description: Generated description for concept referred to by - key "CDSCreateResponseTask:0.0.1" - - key: - name: CDSCreateSubscriptionPayloadType - version: 0.0.1 - value: - key: - name: CDSCreateSubscriptionPayloadType - version: 0.0.1 - UUID: 8350ac5e-c157-38b9-9614-a0f93a830e60 - description: Generated description for concept referred to by - key "CDSCreateSubscriptionPayloadType:0.0.1" - - key: - name: CDSCreateSubscriptionRequestEvent - version: 0.0.1 - value: - key: - name: CDSCreateSubscriptionRequestEvent - version: 0.0.1 - UUID: cfa325ba-226b-3a31-9183-ec43e2b6e9a2 - description: Generated description for concept referred to by - key "CDSCreateSubscriptionRequestEvent:0.0.1" - - key: - name: CDSDeleteResponseEvent - version: 0.0.1 - value: - key: - name: CDSDeleteResponseEvent - version: 0.0.1 - UUID: 8be9c0fa-7437-3841-aff2-b3cec6ae3bd8 - description: Generated description for concept referred to by - key "CDSDeleteResponseEvent:0.0.1" - - key: - name: CDSDeleteResponsePayloadType - version: 0.0.1 - value: - key: - name: CDSDeleteResponsePayloadType - version: 0.0.1 - UUID: 3fbfe0c9-152e-34d3-a504-09cd13c058d0 - description: Generated description for concept referred to by - key "CDSDeleteResponsePayloadType:0.0.1" - - key: - name: CDSDeleteResponsePolicy - version: 0.0.1 - value: - key: - name: CDSDeleteResponsePolicy - version: 0.0.1 - UUID: a780251c-edd5-3132-b865-04313246b43c - description: Generated description for concept referred to by - key "CDSDeleteResponsePolicy:0.0.1" - - key: - name: CDSDeleteResponseTask - version: 0.0.1 - value: - key: - name: CDSDeleteResponseTask - version: 0.0.1 - UUID: afce4555-3aa3-3521-a7d8-ee8cdf0d3efc - description: Generated description for concept referred to by - key "CDSDeleteResponseTask:0.0.1" - - key: - name: CDSDeleteSubscriptionPayloadType - version: 0.0.1 - value: - key: - name: CDSDeleteSubscriptionPayloadType - version: 0.0.1 - UUID: 12658406-9147-3c9d-a38c-5ad5e30b092b - description: Generated description for concept referred to by - key "CDSDeleteSubscriptionPayloadType:0.0.1" - - key: - name: CDSDeleteSubscriptionRequestEvent - version: 0.0.1 - value: - key: - name: CDSDeleteSubscriptionRequestEvent - version: 0.0.1 - UUID: 24380c95-9289-36e6-8cbf-0edefa15ccd9 - description: Generated description for concept referred to by - key "CDSDeleteSubscriptionRequestEvent:0.0.1" - - key: - name: CDSRequestCommonHeaderType - version: 0.0.1 - value: - key: - name: CDSRequestCommonHeaderType - version: 0.0.1 - UUID: 35590ac0-062c-39f1-8786-b4ff716e30b1 - description: Generated description for concept referred to by - key "CDSRequestCommonHeaderType:0.0.1" - - key: - name: CDSResponseCommonHeaderType - version: 0.0.1 - value: - key: - name: CDSResponseCommonHeaderType - version: 0.0.1 - UUID: dd7e1805-885a-350b-aaf9-ed541321ae3c - description: Generated description for concept referred to by - key "CDSResponseCommonHeaderType:0.0.1" - - key: - name: CDSResponseStatusEvent - version: 0.0.1 - value: - key: - name: CDSResponseStatusEvent - version: 0.0.1 - UUID: 7986e21b-32f7-302e-9554-31f21b673493 - description: Generated description for concept referred to by - key "CDSResponseStatusEvent:0.0.1" - - key: - name: CDSResponseStatusType - version: 0.0.1 - value: - key: - name: CDSResponseStatusType - version: 0.0.1 - UUID: 92b8a2cf-344e-3ce1-8cc0-2b7d3cb695fa - description: Generated description for concept referred to by - key "CDSResponseStatusType:0.0.1" - - key: - name: CreateSubscriptionPayloadEvent - version: 0.0.1 - value: - key: - name: CreateSubscriptionPayloadEvent - version: 0.0.1 - UUID: 92162397-1a8e-3a3f-a469-d2af7700af4a - description: Generated description for concept referred to by - key "CreateSubscriptionPayloadEvent:0.0.1" - - key: - name: CreateSubscriptionPayloadTask - version: 0.0.1 - value: - key: - name: CreateSubscriptionPayloadTask - version: 0.0.1 - UUID: bc0c69f0-52ed-38ea-b468-ae4a6fd1730d - description: Generated description for concept referred to by - key "CreateSubscriptionPayloadTask:0.0.1" - - key: - name: CreateSubscriptionRequestTask - version: 0.0.1 - value: - key: - name: CreateSubscriptionRequestTask - version: 0.0.1 - UUID: 89cb75e9-f06c-30d3-b4ff-698d45f63869 - description: Generated description for concept referred to by - key "CreateSubscriptionRequestTask:0.0.1" - - key: - name: DeleteSubscriptionPayloadEvent - version: 0.0.1 - value: - key: - name: DeleteSubscriptionPayloadEvent - version: 0.0.1 - UUID: 994fa441-04ab-33bb-832d-1cd12ab5d074 - description: Generated description for concept referred to by - key "DeleteSubscriptionPayloadEvent:0.0.1" - - key: - name: DeleteSubscriptionPayloadTask - version: 0.0.1 - value: - key: - name: DeleteSubscriptionPayloadTask - version: 0.0.1 - UUID: 0f519117-5fea-3e4b-941f-8f778100465f - description: Generated description for concept referred to by - key "DeleteSubscriptionPayloadTask:0.0.1" - - key: - name: DeleteSubscriptionRequestTask - version: 0.0.1 - value: - key: - name: DeleteSubscriptionRequestTask - version: 0.0.1 - UUID: acb772fe-d442-39e3-98f9-b1080caf4150 - description: Generated description for concept referred to by - key "DeleteSubscriptionRequestTask:0.0.1" - - key: - name: MRResponseEvent - version: 0.0.1 - value: - key: - name: MRResponseEvent - version: 0.0.1 - UUID: 13c747a3-6bae-3bcf-9c80-b152e01dc194 - description: Generated description for concept referred to by - key "MRResponseEvent:0.0.1" - - key: - name: PMControlPolicy - version: 0.0.1 - value: - key: - name: PMControlPolicy - version: 0.0.1 - UUID: acf1e55c-7bc5-3bd5-975a-0ca54afcd8a4 - description: Generated description for concept referred to by - key "PMControlPolicy:0.0.1" - - key: - name: PMControlPolicy_Albums - version: 0.0.1 - value: - key: - name: PMControlPolicy_Albums - version: 0.0.1 - UUID: b38ad204-c2c8-32f4-9b5a-dda0aeb0145b - description: Generated description for concept referred to by - key "PMControlPolicy_Albums:0.0.1" - - key: - name: PMControlPolicy_Events - version: 0.0.1 - value: - key: - name: PMControlPolicy_Events - version: 0.0.1 - UUID: be3871a0-c42a-3113-a066-82d192840eca - description: Generated description for concept referred to by - key "PMControlPolicy_Events:0.0.1" - - key: - name: PMControlPolicy_KeyInfo - version: 0.0.1 - value: - key: - name: PMControlPolicy_KeyInfo - version: 0.0.1 - UUID: ced37634-28a4-3178-b7f6-2980794927b0 - description: Generated description for concept referred to by - key "PMControlPolicy_KeyInfo:0.0.1" - - key: - name: PMControlPolicy_Policies - version: 0.0.1 - value: - key: - name: PMControlPolicy_Policies - version: 0.0.1 - UUID: be3d180d-ef9c-3a75-8e9c-84271a038bed - description: Generated description for concept referred to by - key "PMControlPolicy_Policies:0.0.1" - - key: - name: PMControlPolicy_Schemas - version: 0.0.1 - value: - key: - name: PMControlPolicy_Schemas - version: 0.0.1 - UUID: e61973f1-189c-39e5-82f6-0d3afe298a20 - description: Generated description for concept referred to by - key "PMControlPolicy_Schemas:0.0.1" - - key: - name: PMControlPolicy_Tasks - version: 0.0.1 - value: - key: - name: PMControlPolicy_Tasks - version: 0.0.1 - UUID: 5658adb3-2962-30a3-a241-fae75bb8eb4a - description: Generated description for concept referred to by - key "PMControlPolicy_Tasks:0.0.1" - - key: - name: PMSubscriptionAlbum - version: 0.0.1 - value: - key: - name: PMSubscriptionAlbum - version: 0.0.1 - UUID: c2bd6f0d-6854-317a-9be2-97c08338428c - description: Generated description for concept referred to by - key "PMSubscriptionAlbum:0.0.1" - - key: - name: PMSubscriptionOutputEvent - version: 0.0.1 - value: - key: - name: PMSubscriptionOutputEvent - version: 0.0.1 - UUID: 992b7819-9f69-3aa0-bb0f-6e45ea15ce05 - description: Generated description for concept referred to by - key "PMSubscriptionOutputEvent:0.0.1" - - key: - name: PMSubscriptionType - version: 0.0.1 - value: - key: - name: PMSubscriptionType - version: 0.0.1 - UUID: 73c1c397-4fc3-357f-93b6-a8ad707fbaae - description: Generated description for concept referred to by - key "PMSubscriptionType:0.0.1" - - key: - name: ReceiveEventPolicy - version: 0.0.1 - value: - key: - name: ReceiveEventPolicy - version: 0.0.1 - UUID: 568b7345-9de1-36d3-b6a3-9b857e6809a1 - description: Generated description for concept referred to by - key "ReceiveEventPolicy:0.0.1" - - key: - name: ReceiveSubscriptionTask - version: 0.0.1 - value: - key: - name: ReceiveSubscriptionTask - version: 0.0.1 - UUID: f596afc8-100c-35eb-92c8-352355ea457d - description: Generated description for concept referred to by - key "ReceiveSubscriptionTask:0.0.1" - - key: - name: SimpleIntType - version: 0.0.1 - value: - key: - name: SimpleIntType - version: 0.0.1 - UUID: 153791fd-ae0a-36a7-88a5-309a7936415d - description: Generated description for concept referred to by - key "SimpleIntType:0.0.1" - - key: - name: SimpleStringType - version: 0.0.1 - value: - key: - name: SimpleStringType - version: 0.0.1 - UUID: 8a4957cf-9493-3a76-8c22-a208e23259af - description: Generated description for concept referred to by - key "SimpleStringType:0.0.1" - - key: - name: SubscriptionStatusType - version: 0.0.1 - value: - key: - name: SubscriptionStatusType - version: 0.0.1 - UUID: 597643b1-9db1-31ce-85d0-e1c63c43b30b - description: Generated description for concept referred to by - key "SubscriptionStatusType:0.0.1" - - key: - name: SubscriptionType - version: 0.0.1 - value: - key: - name: SubscriptionType - version: 0.0.1 - UUID: 184547bb-7d64-3cb2-a273-d7185102c5ce - description: Generated description for concept referred to by - key "SubscriptionType:0.0.1" - - key: - name: UUIDType - version: 0.0.1 - value: - key: - name: UUIDType - version: 0.0.1 - UUID: 6a8cc68e-dfc8-3403-9c6d-071c886b319c - description: Generated description for concept referred to by - key "UUIDType:0.0.1" - - key: - name: pmsh-operational-policy - version: 0.0.1 - value: - key: - name: pmsh-operational-policy - version: 0.0.1 - UUID: fdf2c9ff-6422-3ea6-b6b6-49b12116265d - description: Generated description for concept referred to by - key "pmsh-operational-policy:0.0.1" - policies: - key: - name: PMControlPolicy_Policies - version: 0.0.1 - policyMap: - entry: - - key: - name: CDSCreateResponsePolicy - version: 0.0.1 - value: - policyKey: - name: CDSCreateResponsePolicy - version: 0.0.1 - template: Freestyle - state: - entry: - - key: CDSCreateResponseState - value: - stateKey: - parentKeyName: CDSCreateResponsePolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: CDSCreateResponseState - trigger: - name: CDSCreateResponseEvent - version: 0.0.1 - stateOutputs: - entry: - - key: ResponseOutput - value: - key: - parentKeyName: CDSCreateResponsePolicy - parentKeyVersion: 0.0.1 - parentLocalName: CDSCreateResponseState - localName: ResponseOutput - outgoingEvent: - name: CDSResponseStatusEvent - version: 0.0.1 - outgoingEventReference: - - name: CDSResponseStatusEvent - version: 0.0.1 - nextState: - parentKeyName: 'NULL' - parentKeyVersion: 0.0.0 - parentLocalName: 'NULL' - localName: 'NULL' - contextAlbumReference: [ ] - taskSelectionLogic: - key: 'NULL' - logicFlavour: UNDEFINED - logic: '' - stateFinalizerLogicMap: - entry: [ ] - defaultTask: - name: CDSCreateResponseTask - version: 0.0.1 - taskReferences: - entry: - - key: - name: CDSCreateResponseTask - version: 0.0.1 - value: - key: - parentKeyName: CDSCreateResponsePolicy - parentKeyVersion: 0.0.1 - parentLocalName: CDSCreateResponseState - localName: CDSCreateResponsePolicy - outputType: DIRECT - output: - parentKeyName: CDSCreateResponsePolicy - parentKeyVersion: 0.0.1 - parentLocalName: CDSCreateResponseState - localName: ResponseOutput - firstState: CDSCreateResponseState - - key: - name: CDSDeleteResponsePolicy - version: 0.0.1 - value: - policyKey: - name: CDSDeleteResponsePolicy - version: 0.0.1 - template: Freestyle - state: - entry: - - key: CDSDeleteResponseState - value: - stateKey: - parentKeyName: CDSDeleteResponsePolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: CDSDeleteResponseState - trigger: - name: CDSDeleteResponseEvent - version: 0.0.1 - stateOutputs: - entry: - - key: ResponseOutput - value: - key: - parentKeyName: CDSDeleteResponsePolicy - parentKeyVersion: 0.0.1 - parentLocalName: CDSDeleteResponseState - localName: ResponseOutput - outgoingEvent: - name: CDSResponseStatusEvent - version: 0.0.1 - outgoingEventReference: - - name: CDSResponseStatusEvent - version: 0.0.1 - nextState: - parentKeyName: 'NULL' - parentKeyVersion: 0.0.0 - parentLocalName: 'NULL' - localName: 'NULL' - contextAlbumReference: [ ] - taskSelectionLogic: - key: 'NULL' - logicFlavour: UNDEFINED - logic: '' - stateFinalizerLogicMap: - entry: [ ] - defaultTask: - name: CDSDeleteResponseTask - version: 0.0.1 - taskReferences: - entry: - - key: - name: CDSDeleteResponseTask - version: 0.0.1 - value: - key: - parentKeyName: CDSDeleteResponsePolicy - parentKeyVersion: 0.0.1 - parentLocalName: CDSDeleteResponseState - localName: CDSDeleteResponsePolicy - outputType: DIRECT - output: - parentKeyName: CDSDeleteResponsePolicy - parentKeyVersion: 0.0.1 - parentLocalName: CDSDeleteResponseState - localName: ResponseOutput - firstState: CDSDeleteResponseState - - key: - name: ReceiveEventPolicy - version: 0.0.1 - value: - policyKey: - name: ReceiveEventPolicy - version: 0.0.1 - template: Freestyle - state: - entry: - - key: CreateOrDeleteState - value: - stateKey: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: CreateOrDeleteState - trigger: - name: PMSubscriptionOutputEvent - version: 0.0.1 - stateOutputs: - entry: - - key: CreateSubscriptionPayload - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: CreateOrDeleteState - localName: CreateSubscriptionPayload - outgoingEvent: - name: CreateSubscriptionPayloadEvent - version: 0.0.1 - outgoingEventReference: - - name: CreateSubscriptionPayloadEvent - version: 0.0.1 - nextState: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: CreateSubscription - - key: DeleteSubscriptionPayload - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: CreateOrDeleteState - localName: DeleteSubscriptionPayload - outgoingEvent: - name: DeleteSubscriptionPayloadEvent - version: 0.0.1 - outgoingEventReference: - - name: DeleteSubscriptionPayloadEvent - version: 0.0.1 - nextState: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: DeleteSubscription - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskSelectionLogic: - key: TaskSelectionLogic - logicFlavour: JAVASCRIPT - logic: |- - /* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix. All rights reserved. - * ================================================================================ - * 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========================================================= - */ - executor.logger.info(executor.subject.id); - var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString()) - var changeType = pmSubscriptionInfo.get("changeType").toString() - executor.logger.info("Change Type is " + changeType) - if ("CREATE".equals(changeType)) { - executor.logger.info("Choosing to create a subscription") - executor.subject.getTaskKey("CreateSubscriptionPayloadTask").copyTo(executor.selectedTask); - } - else if ("DELETE".equals(changeType)) { - executor.logger.info("Choosing to delete a subscription") - executor.subject.getTaskKey("DeleteSubscriptionPayloadTask").copyTo(executor.selectedTask); - } - returnValue = executor.isTrue; - true; - stateFinalizerLogicMap: - entry: [ ] - defaultTask: - name: CreateSubscriptionPayloadTask - version: 0.0.1 - taskReferences: - entry: - - key: - name: CreateSubscriptionPayloadTask - version: 0.0.1 - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: CreateOrDeleteState - localName: ReceiveEventPolicy - outputType: DIRECT - output: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: CreateOrDeleteState - localName: CreateSubscriptionPayload - - key: - name: DeleteSubscriptionPayloadTask - version: 0.0.1 - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: CreateOrDeleteState - localName: ReceiveEventPolicy - outputType: DIRECT - output: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: CreateOrDeleteState - localName: DeleteSubscriptionPayload - - key: CreateSubscription - value: - stateKey: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: CreateSubscription - trigger: - name: CreateSubscriptionPayloadEvent - version: 0.0.1 - stateOutputs: - entry: - - key: IssueCreateSubscriptionRequestOutput - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: CreateSubscription - localName: IssueCreateSubscriptionRequestOutput - outgoingEvent: - name: CDSCreateSubscriptionRequestEvent - version: 0.0.1 - outgoingEventReference: - - name: CDSCreateSubscriptionRequestEvent - version: 0.0.1 - nextState: - parentKeyName: 'NULL' - parentKeyVersion: 0.0.0 - parentLocalName: 'NULL' - localName: 'NULL' - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskSelectionLogic: - key: 'NULL' - logicFlavour: UNDEFINED - logic: '' - stateFinalizerLogicMap: - entry: [ ] - defaultTask: - name: CreateSubscriptionRequestTask - version: 0.0.1 - taskReferences: - entry: - - key: - name: CreateSubscriptionRequestTask - version: 0.0.1 - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: CreateSubscription - localName: ReceiveEventPolicy - outputType: DIRECT - output: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: CreateSubscription - localName: IssueCreateSubscriptionRequestOutput - - key: DeleteSubscription - value: - stateKey: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: DeleteSubscription - trigger: - name: DeleteSubscriptionPayloadEvent - version: 0.0.1 - stateOutputs: - entry: - - key: IssueDeleteSubscriptionRequestOutput - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: DeleteSubscription - localName: IssueDeleteSubscriptionRequestOutput - outgoingEvent: - name: CDSDeleteSubscriptionRequestEvent - version: 0.0.1 - outgoingEventReference: - - name: CDSDeleteSubscriptionRequestEvent - version: 0.0.1 - nextState: - parentKeyName: 'NULL' - parentKeyVersion: 0.0.0 - parentLocalName: 'NULL' - localName: 'NULL' - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskSelectionLogic: - key: 'NULL' - logicFlavour: UNDEFINED - logic: '' - stateFinalizerLogicMap: - entry: [ ] - defaultTask: - name: DeleteSubscriptionRequestTask - version: 0.0.1 - taskReferences: - entry: - - key: - name: DeleteSubscriptionRequestTask - version: 0.0.1 - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: DeleteSubscription - localName: ReceiveEventPolicy - outputType: DIRECT - output: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: DeleteSubscription - localName: IssueDeleteSubscriptionRequestOutput - - key: ReceiveSubscriptionState - value: - stateKey: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: ReceiveSubscriptionState - trigger: - name: pmsh-operational-policy - version: 0.0.1 - stateOutputs: - entry: - - key: ReceivePMSubscriptionOutput - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: ReceiveSubscriptionState - localName: ReceivePMSubscriptionOutput - outgoingEvent: - name: PMSubscriptionOutputEvent - version: 0.0.1 - outgoingEventReference: - - name: PMSubscriptionOutputEvent - version: 0.0.1 - nextState: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: 'NULL' - localName: CreateOrDeleteState - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskSelectionLogic: - key: 'NULL' - logicFlavour: UNDEFINED - logic: '' - stateFinalizerLogicMap: - entry: [ ] - defaultTask: - name: ReceiveSubscriptionTask - version: 0.0.1 - taskReferences: - entry: - - key: - name: ReceiveSubscriptionTask - version: 0.0.1 - value: - key: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: ReceiveSubscriptionState - localName: ReceiveEventPolicy - outputType: DIRECT - output: - parentKeyName: ReceiveEventPolicy - parentKeyVersion: 0.0.1 - parentLocalName: ReceiveSubscriptionState - localName: ReceivePMSubscriptionOutput - firstState: ReceiveSubscriptionState - tasks: - key: - name: PMControlPolicy_Tasks - version: 0.0.1 - taskMap: - entry: - - key: - name: CDSCreateResponseTask - version: 0.0.1 - value: - key: - name: CDSCreateResponseTask - version: 0.0.1 - inputEvent: - key: - name: CDSCreateResponseEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: CDS - target: APEX - parameter: - entry: - - key: actionIdentifiers - value: - key: actionIdentifiers - fieldSchemaKey: - name: CDSActionIdentifiersType - version: 0.0.1 - optional: false - - key: commonHeader - value: - key: commonHeader - fieldSchemaKey: - name: CDSResponseCommonHeaderType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSCreateResponsePayloadType - version: 0.0.1 - optional: false - - key: status - value: - key: status - fieldSchemaKey: - name: CDSResponseStatusType - version: 0.0.1 - optional: false - outputEvents: - entry: - - key: CDSResponseStatusEvent - value: - key: - name: CDSResponseStatusEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: DCAE - parameter: - entry: - - key: status - value: - key: status - fieldSchemaKey: - name: SubscriptionStatusType - version: 0.0.1 - optional: false - taskParameters: - entry: [ ] - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskLogic: - key: TaskLogic - logicFlavour: JAVASCRIPT - logic: |- - /* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix. All rights reserved. - * ================================================================================ - * 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========================================================= - */ - executor.logger.info(executor.subject.id); - var commonHeader = executor.inFields.get("commonHeader") - var response = executor.inFields.get("payload") - var albumID = commonHeader.get("requestId") - var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(albumID.toString()); - var responseStatus = executor.subject.getOutFieldSchemaHelper("status").createNewInstance(); - var changeType = pmSubscriptionInfo.get("changeType").toUpperCase() - responseStatus.put("nfName", pmSubscriptionInfo.get("nfName")) - responseStatus.put("changeType", pmSubscriptionInfo.get("changeType")) - if ("CREATE".equals(changeType)) { - responseStatus.put("subscriptionName", pmSubscriptionInfo.get("subscription").get("subscriptionName")) - responseStatus.put("measurementGroupName", pmSubscriptionInfo.get("subscription").get("measurementGroup").get("measurementGroupName")) - } - else if ("DELETE".equals(changeType)) { - responseStatus.put("subscriptionName", pmSubscriptionInfo.get("subscriptionName")) - responseStatus.put("measurementGroupName", pmSubscriptionInfo.get("measurementGroupName")) - } - var status = response.get(pmSubscriptionInfo.get("changeType").toLowerCase() + "_DasH_subscription_DasH_response").get("odl_DasH_response").get("status") - executor.logger.info("RESPONSE STATUS = " + status) - if(status == "success") { - responseStatus.put("message", "success") - } else { - responseStatus.put("message", "failed") - } - executor.outFields.put("status", responseStatus) - returnValue = executor.isTrue; - true; - - key: - name: CDSDeleteResponseTask - version: 0.0.1 - value: - key: - name: CDSDeleteResponseTask - version: 0.0.1 - inputEvent: - key: - name: CDSDeleteResponseEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: CDS - target: APEX - parameter: - entry: - - key: actionIdentifiers - value: - key: actionIdentifiers - fieldSchemaKey: - name: CDSActionIdentifiersType - version: 0.0.1 - optional: false - - key: commonHeader - value: - key: commonHeader - fieldSchemaKey: - name: CDSResponseCommonHeaderType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSDeleteResponsePayloadType - version: 0.0.1 - optional: false - - key: status - value: - key: status - fieldSchemaKey: - name: CDSResponseStatusType - version: 0.0.1 - optional: false - outputEvents: - entry: - - key: CDSResponseStatusEvent - value: - key: - name: CDSResponseStatusEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: DCAE - parameter: - entry: - - key: status - value: - key: status - fieldSchemaKey: - name: SubscriptionStatusType - version: 0.0.1 - optional: false - taskParameters: - entry: [ ] - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskLogic: - key: TaskLogic - logicFlavour: JAVASCRIPT - logic: |- - /* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix. All rights reserved. - * ================================================================================ - * 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========================================================= - */ - executor.logger.info(executor.subject.id); - var commonHeader = executor.inFields.get("commonHeader") - var response = executor.inFields.get("payload") - var albumID = commonHeader.get("requestId") - var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(albumID.toString()); - var responseStatus = executor.subject.getOutFieldSchemaHelper("status").createNewInstance(); - var changeType = pmSubscriptionInfo.get("changeType").toUpperCase() - responseStatus.put("nfName", pmSubscriptionInfo.get("nfName")) - responseStatus.put("changeType", pmSubscriptionInfo.get("changeType")) - if ("CREATE".equals(changeType)) { - responseStatus.put("subscriptionName", pmSubscriptionInfo.get("subscription").get("subscriptionName")) - responseStatus.put("measurementGroupName", pmSubscriptionInfo.get("subscription").get("measurementGroup").get("measurementGroupName")) - } - else if ("DELETE".equals(changeType)) { - responseStatus.put("subscriptionName", pmSubscriptionInfo.get("subscriptionName")) - responseStatus.put("measurementGroupName", pmSubscriptionInfo.get("measurementGroupName")) - } - var status = response.get(pmSubscriptionInfo.get("changeType").toLowerCase() + "_DasH_subscription_DasH_response").get("odl_DasH_response").get("status") - executor.logger.info("RESPONSE STATUS = " + status) - if(status == "success") { - responseStatus.put("message", "success") - } else { - responseStatus.put("message", "failed") - } - executor.outFields.put("status", responseStatus) - returnValue = executor.isTrue; - true; - - key: - name: CreateSubscriptionPayloadTask - version: 0.0.1 - value: - key: - name: CreateSubscriptionPayloadTask - version: 0.0.1 - inputEvent: - key: - name: PMSubscriptionOutputEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - outputEvents: - entry: - - key: CreateSubscriptionPayloadEvent - value: - key: - name: CreateSubscriptionPayloadEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSCreateSubscriptionPayloadType - version: 0.0.1 - optional: false - taskParameters: - entry: [ ] - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskLogic: - key: TaskLogic - logicFlavour: JAVASCRIPT - logic: |- - /* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix. All rights reserved. - * ================================================================================ - * 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========================================================= - */ - executor.logger.info(executor.subject.id); - var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString()) - var changeType = pmSubscriptionInfo.get("changeType").toLowerCase() - var payloadProperties = executor.subject.getOutFieldSchemaHelper("payload").createNewSubInstance(changeType + "_DasH_subscription_DasH_properties_record"); - payloadProperties.put("nfName", pmSubscriptionInfo.get("nfName")) - payloadProperties.put("ipAddress", pmSubscriptionInfo.get("ipAddress")) - if ("create".equals(changeType)) { - payloadProperties.put("subscriptionName", pmSubscriptionInfo.get("subscription").get("subscriptionName")) - payloadProperties.put("fileBasedGP", pmSubscriptionInfo.get("subscription").get("fileBasedGP").toString()) - payloadProperties.put("fileLocation", pmSubscriptionInfo.get("subscription").get("fileLocation")) - payloadProperties.put("measurementGroup", pmSubscriptionInfo.get("subscription").get("measurementGroup")) - } - else if ("delete".equals(changeType)) { - payloadProperties.put("subscriptionName", pmSubscriptionInfo.get("subscriptionName")) - payloadProperties.put("measurementGroupName", pmSubscriptionInfo.get("measurementGroupName")) - } - var payloadEntry = executor.subject.getOutFieldSchemaHelper("payload").createNewSubInstance("CDSRequestPayloadEntry"); - payloadEntry.put(changeType + "_DasH_subscription_DasH_properties", payloadProperties) - var payload = executor.subject.getOutFieldSchemaHelper("payload").createNewInstance(); - payload.put(changeType + "_DasH_subscription_DasH_request", payloadEntry); - executor.outFields.put("albumID", executor.inFields.get("albumID")) - executor.outFields.put("payload", payload); - returnValue = executor.isTrue; - true; - - key: - name: CreateSubscriptionRequestTask - version: 0.0.1 - value: - key: - name: CreateSubscriptionRequestTask - version: 0.0.1 - inputEvent: - key: - name: CreateSubscriptionPayloadEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSCreateSubscriptionPayloadType - version: 0.0.1 - optional: false - outputEvents: - entry: - - key: CDSCreateSubscriptionRequestEvent - value: - key: - name: CDSCreateSubscriptionRequestEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: actionIdentifiers - value: - key: actionIdentifiers - fieldSchemaKey: - name: CDSActionIdentifiersType - version: 0.0.1 - optional: false - - key: commonHeader - value: - key: commonHeader - fieldSchemaKey: - name: CDSRequestCommonHeaderType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSCreateSubscriptionPayloadType - version: 0.0.1 - optional: false - taskParameters: - entry: [ ] - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskLogic: - key: TaskLogic - logicFlavour: JAVASCRIPT - logic: |- - /* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix. All rights reserved. - * ================================================================================ - * 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========================================================= - */ - executor.logger.info(executor.subject.id); - var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString()) - executor.logger.info(pmSubscriptionInfo) - var changeType = pmSubscriptionInfo.get("changeType").toLowerCase() - var blueprintName = pmSubscriptionInfo.get("blueprintName").toLowerCase() - var blueprintVersion = pmSubscriptionInfo.get("blueprintVersion").toLowerCase() - var payload = executor.inFields.get("payload") - var actionName = changeType + "-subscription" - var commonHeader = executor.subject.getOutFieldSchemaHelper("commonHeader").createNewInstance(); - commonHeader.put("originatorId", "sdnc"); - commonHeader.put("requestId", executor.inFields.get("albumID").toString()); - commonHeader.put("subRequestId", "sub-123456-1000"); - var actionIdentifiers = executor.subject.getOutFieldSchemaHelper("actionIdentifiers").createNewInstance(); - actionIdentifiers.put("actionName", actionName); - actionIdentifiers.put("blueprintName", blueprintName); - actionIdentifiers.put("blueprintVersion", blueprintVersion); - actionIdentifiers.put("mode", "sync"); - executor.outFields.put("commonHeader", commonHeader); - executor.outFields.put("actionIdentifiers", actionIdentifiers); - executor.outFields.put("payload", payload); - returnValue = executor.isTrue; - true; - - key: - name: DeleteSubscriptionPayloadTask - version: 0.0.1 - value: - key: - name: DeleteSubscriptionPayloadTask - version: 0.0.1 - inputEvent: - key: - name: PMSubscriptionOutputEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - outputEvents: - entry: - - key: DeleteSubscriptionPayloadEvent - value: - key: - name: DeleteSubscriptionPayloadEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSDeleteSubscriptionPayloadType - version: 0.0.1 - optional: false - taskParameters: - entry: [ ] - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskLogic: - key: TaskLogic - logicFlavour: JAVASCRIPT - logic: |- - /* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix. All rights reserved. - * ================================================================================ - * 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========================================================= - */ - executor.logger.info(executor.subject.id); - var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString()) - var changeType = pmSubscriptionInfo.get("changeType").toLowerCase() - var payloadProperties = executor.subject.getOutFieldSchemaHelper("payload").createNewSubInstance(changeType + "_DasH_subscription_DasH_properties_record"); - payloadProperties.put("nfName", pmSubscriptionInfo.get("nfName")) - payloadProperties.put("ipAddress", pmSubscriptionInfo.get("ipAddress")) - if ("create".equals(changeType)) { - payloadProperties.put("subscriptionName", pmSubscriptionInfo.get("subscription").get("subscriptionName")) - payloadProperties.put("fileBasedGP", pmSubscriptionInfo.get("subscription").get("fileBasedGP").toString()) - payloadProperties.put("fileLocation", pmSubscriptionInfo.get("subscription").get("fileLocation")) - payloadProperties.put("measurementGroup", pmSubscriptionInfo.get("subscription").get("measurementGroup")) - } - else if ("delete".equals(changeType)) { - payloadProperties.put("subscriptionName", pmSubscriptionInfo.get("subscriptionName")) - payloadProperties.put("measurementGroupName", pmSubscriptionInfo.get("measurementGroupName")) - } - var payloadEntry = executor.subject.getOutFieldSchemaHelper("payload").createNewSubInstance("CDSRequestPayloadEntry"); - payloadEntry.put(changeType + "_DasH_subscription_DasH_properties", payloadProperties) - var payload = executor.subject.getOutFieldSchemaHelper("payload").createNewInstance(); - payload.put(changeType + "_DasH_subscription_DasH_request", payloadEntry); - executor.outFields.put("albumID", executor.inFields.get("albumID")) - executor.outFields.put("payload", payload); - returnValue = executor.isTrue; - true; - - key: - name: DeleteSubscriptionRequestTask - version: 0.0.1 - value: - key: - name: DeleteSubscriptionRequestTask - version: 0.0.1 - inputEvent: - key: - name: DeleteSubscriptionPayloadEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSDeleteSubscriptionPayloadType - version: 0.0.1 - optional: false - outputEvents: - entry: - - key: CDSDeleteSubscriptionRequestEvent - value: - key: - name: CDSDeleteSubscriptionRequestEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: actionIdentifiers - value: - key: actionIdentifiers - fieldSchemaKey: - name: CDSActionIdentifiersType - version: 0.0.1 - optional: false - - key: commonHeader - value: - key: commonHeader - fieldSchemaKey: - name: CDSRequestCommonHeaderType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSDeleteSubscriptionPayloadType - version: 0.0.1 - optional: false - taskParameters: - entry: [ ] - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskLogic: - key: TaskLogic - logicFlavour: JAVASCRIPT - logic: |- - /* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix. All rights reserved. - * ================================================================================ - * 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========================================================= - */ - executor.logger.info(executor.subject.id); - var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString()) - executor.logger.info(pmSubscriptionInfo) - var changeType = pmSubscriptionInfo.get("changeType").toLowerCase() - var blueprintName = pmSubscriptionInfo.get("blueprintName").toLowerCase() - var blueprintVersion = pmSubscriptionInfo.get("blueprintVersion").toLowerCase() - var payload = executor.inFields.get("payload") - var actionName = changeType + "-subscription" - var commonHeader = executor.subject.getOutFieldSchemaHelper("commonHeader").createNewInstance(); - commonHeader.put("originatorId", "sdnc"); - commonHeader.put("requestId", executor.inFields.get("albumID").toString()); - commonHeader.put("subRequestId", "sub-123456-1000"); - var actionIdentifiers = executor.subject.getOutFieldSchemaHelper("actionIdentifiers").createNewInstance(); - actionIdentifiers.put("actionName", actionName); - actionIdentifiers.put("blueprintName", blueprintName); - actionIdentifiers.put("blueprintVersion", blueprintVersion); - actionIdentifiers.put("mode", "sync"); - executor.outFields.put("commonHeader", commonHeader); - executor.outFields.put("actionIdentifiers", actionIdentifiers); - executor.outFields.put("payload", payload); - returnValue = executor.isTrue; - true; - - key: - name: ReceiveSubscriptionTask - version: 0.0.1 - value: - key: - name: ReceiveSubscriptionTask - version: 0.0.1 - inputEvent: - key: - name: pmsh-operational-policy - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: DCAE - target: APEX - parameter: - entry: - - key: blueprintName - value: - key: blueprintName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: blueprintVersion - value: - key: blueprintVersion - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: changeType - value: - key: changeType - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: controlLoopName - value: - key: controlLoopName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: ipAddress - value: - key: ipAddress - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: measurementGroupName - value: - key: measurementGroupName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: true - - key: nfName - value: - key: nfName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: operationalPolicyName - value: - key: operationalPolicyName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: subscription - value: - key: subscription - fieldSchemaKey: - name: SubscriptionType - version: 0.0.1 - optional: true - - key: subscriptionName - value: - key: subscriptionName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: true - outputEvents: - entry: - - key: PMSubscriptionOutputEvent - value: - key: - name: PMSubscriptionOutputEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - taskParameters: - entry: [ ] - contextAlbumReference: - - name: PMSubscriptionAlbum - version: 0.0.1 - taskLogic: - key: TaskLogic - logicFlavour: JAVASCRIPT - logic: |- - /* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix. All rights reserved. - * ================================================================================ - * 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========================================================= - */ - var uuidType = java.util.UUID; - executor.logger.info(executor.subject.id); - //albumID will be used to fetch info from our album later - var albumID = uuidType.randomUUID(); - var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").getSchemaHelper().createNewInstance(); - var returnValue = true; - if(executor.inFields.get("operationalPolicyName") != null) { - executor.logger.info("nfName in receive sub event " + executor.inFields.get("nfName")); - var changeType = executor.inFields.get("changeType") - var nfName = executor.inFields.get("nfName") - var ipAddress = executor.inFields.get("ipAddress") - var operationalPolicyName = executor.inFields.get("operationalPolicyName") - var controlLoopName = executor.inFields.get("controlLoopName") - var subscription = executor.inFields.get("subscription") - var blueprintName = executor.inFields.get("blueprintName") - var blueprintVersion = executor.inFields.get("blueprintVersion") - pmSubscriptionInfo.put("nfName", executor.inFields.get("nfName")); - pmSubscriptionInfo.put("ipAddress", executor.inFields.get("ipAddress")); - pmSubscriptionInfo.put("changeType", executor.inFields.get("changeType")) - pmSubscriptionInfo.put("operationalPolicyName", executor.inFields.get("operationalPolicyName")) - pmSubscriptionInfo.put("controlLoopName", executor.inFields.get("controlLoopName")) - pmSubscriptionInfo.put("subscription", subscription) - pmSubscriptionInfo.put("blueprintName", blueprintName) - pmSubscriptionInfo.put("blueprintVersion", blueprintVersion) - if ("delete".equals(changeType.toLowerCase())) { - pmSubscriptionInfo.put("subscriptionName", executor.inFields.get("subscriptionName")) - pmSubscriptionInfo.put("measurementGroupName", executor.inFields.get("measurementGroupName")) - } - executor.getContextAlbum("PMSubscriptionAlbum").put(albumID.toString(), pmSubscriptionInfo); - executor.outFields.put("albumID", albumID) - } else { - executor.message = "Received invalid event" - returnValue = false; - } - returnValue; - events: - key: - name: PMControlPolicy_Events - version: 0.0.1 - eventMap: - entry: - - key: - name: CDSCreateResponseEvent - version: 0.0.1 - value: - key: - name: CDSCreateResponseEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: CDS - target: APEX - parameter: - entry: - - key: actionIdentifiers - value: - key: actionIdentifiers - fieldSchemaKey: - name: CDSActionIdentifiersType - version: 0.0.1 - optional: false - - key: commonHeader - value: - key: commonHeader - fieldSchemaKey: - name: CDSResponseCommonHeaderType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSCreateResponsePayloadType - version: 0.0.1 - optional: false - - key: status - value: - key: status - fieldSchemaKey: - name: CDSResponseStatusType - version: 0.0.1 - optional: false - - key: - name: CDSCreateSubscriptionRequestEvent - version: 0.0.1 - value: - key: - name: CDSCreateSubscriptionRequestEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: actionIdentifiers - value: - key: actionIdentifiers - fieldSchemaKey: - name: CDSActionIdentifiersType - version: 0.0.1 - optional: false - - key: commonHeader - value: - key: commonHeader - fieldSchemaKey: - name: CDSRequestCommonHeaderType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSCreateSubscriptionPayloadType - version: 0.0.1 - optional: false - - key: - name: CDSDeleteResponseEvent - version: 0.0.1 - value: - key: - name: CDSDeleteResponseEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: CDS - target: APEX - parameter: - entry: - - key: actionIdentifiers - value: - key: actionIdentifiers - fieldSchemaKey: - name: CDSActionIdentifiersType - version: 0.0.1 - optional: false - - key: commonHeader - value: - key: commonHeader - fieldSchemaKey: - name: CDSResponseCommonHeaderType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSDeleteResponsePayloadType - version: 0.0.1 - optional: false - - key: status - value: - key: status - fieldSchemaKey: - name: CDSResponseStatusType - version: 0.0.1 - optional: false - - key: - name: CDSDeleteSubscriptionRequestEvent - version: 0.0.1 - value: - key: - name: CDSDeleteSubscriptionRequestEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: actionIdentifiers - value: - key: actionIdentifiers - fieldSchemaKey: - name: CDSActionIdentifiersType - version: 0.0.1 - optional: false - - key: commonHeader - value: - key: commonHeader - fieldSchemaKey: - name: CDSRequestCommonHeaderType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSDeleteSubscriptionPayloadType - version: 0.0.1 - optional: false - - key: - name: CDSResponseStatusEvent - version: 0.0.1 - value: - key: - name: CDSResponseStatusEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: DCAE - parameter: - entry: - - key: status - value: - key: status - fieldSchemaKey: - name: SubscriptionStatusType - version: 0.0.1 - optional: false - - key: - name: CreateSubscriptionPayloadEvent - version: 0.0.1 - value: - key: - name: CreateSubscriptionPayloadEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSCreateSubscriptionPayloadType - version: 0.0.1 - optional: false - - key: - name: DeleteSubscriptionPayloadEvent - version: 0.0.1 - value: - key: - name: DeleteSubscriptionPayloadEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - - key: payload - value: - key: payload - fieldSchemaKey: - name: CDSDeleteSubscriptionPayloadType - version: 0.0.1 - optional: false - - key: - name: MRResponseEvent - version: 0.0.1 - value: - key: - name: MRResponseEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: DCAE - target: APEX - parameter: - entry: - - key: count - value: - key: count - fieldSchemaKey: - name: SimpleIntType - version: 0.0.1 - optional: false - - key: serverTimeMs - value: - key: serverTimeMs - fieldSchemaKey: - name: SimpleIntType - version: 0.0.1 - optional: false - - key: - name: PMSubscriptionOutputEvent - version: 0.0.1 - value: - key: - name: PMSubscriptionOutputEvent - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: APEX - target: APEX - parameter: - entry: - - key: albumID - value: - key: albumID - fieldSchemaKey: - name: UUIDType - version: 0.0.1 - optional: false - - key: - name: pmsh-operational-policy - version: 0.0.1 - value: - key: - name: pmsh-operational-policy - version: 0.0.1 - nameSpace: org.onap.policy.apex.onap.pmcontrol - source: DCAE - target: APEX - parameter: - entry: - - key: blueprintName - value: - key: blueprintName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: blueprintVersion - value: - key: blueprintVersion - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: changeType - value: - key: changeType - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: controlLoopName - value: - key: controlLoopName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: ipAddress - value: - key: ipAddress - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: measurementGroupName - value: - key: measurementGroupName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: true - - key: nfName - value: - key: nfName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: operationalPolicyName - value: - key: operationalPolicyName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: false - - key: subscription - value: - key: subscription - fieldSchemaKey: - name: SubscriptionType - version: 0.0.1 - optional: true - - key: subscriptionName - value: - key: subscriptionName - fieldSchemaKey: - name: SimpleStringType - version: 0.0.1 - optional: true - albums: - key: - name: PMControlPolicy_Albums - version: 0.0.1 - albums: - entry: - - key: - name: PMSubscriptionAlbum - version: 0.0.1 - value: - key: - name: PMSubscriptionAlbum - version: 0.0.1 - scope: policy - isWritable: true - itemSchema: - name: PMSubscriptionType - version: 0.0.1 - schemas: - key: - name: PMControlPolicy_Schemas - version: 0.0.1 - schemas: - entry: - - key: - name: CDSActionIdentifiersType - version: 0.0.1 - value: - key: - name: CDSActionIdentifiersType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "type": "record", - "name": "ActionIdentifiers_Type", - "namespace": "org.onap.policy.apex.onap.helloworld", - "fields": [ - { - "name": "actionName", - "type": "string" - }, - { - "name": "blueprintName", - "type": "string" - }, - { - "name": "blueprintVersion", - "type": "string" - }, - { - "name": "mode", - "type": "string" - } - ] - } - - key: - name: CDSCreateResponsePayloadType - version: 0.0.1 - value: - key: - name: CDSCreateResponsePayloadType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "name": "CreateResponsePayloadEntry", - "type": "record", - "namespace": "com.acme.avro", - "fields": [ - { - "name": "create_DasH_subscription_DasH_response", - "type": { - "name": "create_DasH_subscription_DasH_response", - "type": "record", - "fields": [ - { - "name": "odl_DasH_response", - "type": { - "name": "odl_DasH_response", - "type": "record", - "fields": [ - { - "name": "status", - "type": "string" - } - ] - } - } - ] - } - } - ] - } - - key: - name: CDSCreateSubscriptionPayloadType - version: 0.0.1 - value: - key: - name: CDSCreateSubscriptionPayloadType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "type":"map", - "values":{ - "type":"record", - "name":"CDSRequestPayloadEntry", - "fields":[ - { - "name":"create_DasH_subscription_DasH_properties", - "type":{ - "name":"create_DasH_subscription_DasH_properties_record", - "type":"record", - "fields":[ - { - "name":"nfName", - "type":"string" - }, - { - "name":"ipAddress", - "type":"string" - }, - { - "name":"subscriptionName", - "type":"string" - }, - { - "name":"fileBasedGP", - "type":"string" - }, - { - "name":"fileLocation", - "type":"string" - }, - { - "name":"measurementGroup", - "type":{ - "name":"Measurement_Group_Type", - "type":"record", - "fields":[ - { - "name":"measurementGroupName", - "type":"string" - }, - { - "name":"measurementTypes", - "type":{ - "type":"array", - "items":{ - "name":"Measurement_Types_Type", - "type":"record", - "fields":[ - { - "name":"measurementType", - "type":"string" - } - ] - } - } - }, - { - "name":"managedObjectDNsBasic", - "type":{ - "type":"array", - "items":{ - "name":"Managed_Object_Dns_Basic_Type", - "type":"record", - "fields":[ - { - "name":"DN", - "type":"string" - } - ] - } - } - } - ] - } - } - ] - } - } - ] - } - } - - key: - name: CDSDeleteResponsePayloadType - version: 0.0.1 - value: - key: - name: CDSDeleteResponsePayloadType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "name": "DeleteResponsePayloadEntry", - "type": "record", - "namespace": "com.acme.avro", - "fields": [ - { - "name": "delete_DasH_subscription_DasH_response", - "type": { - "name": "delete_DasH_subscription_DasH_response", - "type": "record", - "fields": [ - { - "name": "odl_DasH_response", - "type": { - "name": "odl_DasH_response", - "type": "record", - "fields": [ - { - "name": "status", - "type": "string" - } - ] - } - } - ] - } - } - ] - } - - key: - name: CDSDeleteSubscriptionPayloadType - version: 0.0.1 - value: - key: - name: CDSDeleteSubscriptionPayloadType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "type":"map", - "values":{ - "type":"record", - "name":"CDSRequestPayloadEntry", - "fields":[ - { - "name":"delete_DasH_subscription_DasH_properties", - "type":{ - "name":"delete_DasH_subscription_DasH_properties_record", - "type":"record", - "fields":[ - { - "name":"nfName", - "type":"string" - }, - { - "name":"ipAddress", - "type":"string" - }, - { - "name":"subscriptionName", - "type":"string" - }, - { - "name":"measurementGroupName", - "type":"string" - } - ] - } - } - ] - } - } - - key: - name: CDSRequestCommonHeaderType - version: 0.0.1 - value: - key: - name: CDSRequestCommonHeaderType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "type": "record", - "name": "RequestCommonHeader_Type", - "namespace": "org.onap.policy.apex.onap.helloworld", - "fields": [ - { - "name": "originatorId", - "type": "string" - }, - { - "name": "requestId", - "type": "string" - }, - { - "name": "subRequestId", - "type": "string" - } - ] - } - - key: - name: CDSResponseCommonHeaderType - version: 0.0.1 - value: - key: - name: CDSResponseCommonHeaderType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "type": "record", - "name": "ResponseCommonHeader_Type", - "namespace": "org.onap.policy.apex.onap.helloworld", - "fields": [ - { - "name": "originatorId", - "type": "string" - }, - { - "name": "requestId", - "type": "string" - }, - { - "name": "subRequestId", - "type": "string" - }, - { - "name": "timestamp", - "type": "string" - }, - { - "name": "flags", - "type": ["null", "string"] - } - ] - } - - key: - name: CDSResponseStatusType - version: 0.0.1 - value: - key: - name: CDSResponseStatusType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "type": "record", - "name": "ResponseStatus_Type", - "namespace": "org.onap.policy.apex.onap.helloworld", - "fields": [ - { - "name": "code", - "type": "int" - }, - { - "name": "eventType", - "type": "string" - }, - { - "name": "timestamp", - "type": "string" - }, - { - "name": "message", - "type": "string" - } - ] - } - - key: - name: PMSubscriptionType - version: 0.0.1 - value: - key: - name: PMSubscriptionType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "name": "PMSubscription", - "type": "record", - "namespace": "org.onap.policy.apex.onap.pmcontrol", - "fields": [ - { - "name": "nfName", - "type": "string" - }, - { - "name": "ipAddress", - "type": "string" - }, - { - "name": "changeType", - "type": "string" - }, - { - "name": "controlLoopName", - "type": "string" - }, - { - "name": "operationalPolicyName", - "type": "string" - }, - { - "name": "blueprintName", - "type": "string" - }, - { - "name": "blueprintVersion", - "type": "string" - }, - { - "name": "subscriptionName", - "type": "string" - }, - { - "name": "measurementGroupName", - "type": "string" - }, - { - "name": "subscription", - "type": { - "name": "subscription", - "type": "record", - "fields": [ - { - "name": "subscriptionName", - "type": "string" - }, - { - "name": "fileBasedGP", - "type": "int" - }, - { - "name": "fileLocation", - "type": "string" - }, - { - "name": "measurementGroup", - "type": { - "name": "Measurement_Group_Type", - "type": "record", - "fields": [ - { - "name": "measurementGroupName", - "type": "string" - }, - { - "name": "measurementTypes", - "type": { - "type": "array", - "items": { - "name": "Measurement_Types_Type", - "type": "record", - "fields": [ - { - "name": "measurementType", - "type": "string" - } - ] - } - } - }, - { - "name": "managedObjectDNsBasic", - "type": { - "type": "array", - "items": { - "name": "Managed_Object_Dns_Basic_Type", - "type": "record", - "fields": [ - { - "name": "DN", - "type": "string" - } - ] - } - } - } - ] - } - } - ] - } - } - ] - } - - key: - name: SimpleIntType - version: 0.0.1 - value: - key: - name: SimpleIntType - version: 0.0.1 - schemaFlavour: Java - schemaDefinition: java.lang.Integer - - key: - name: SimpleStringType - version: 0.0.1 - value: - key: - name: SimpleStringType - version: 0.0.1 - schemaFlavour: Java - schemaDefinition: java.lang.String - - key: - name: SubscriptionStatusType - version: 0.0.1 - value: - key: - name: SubscriptionStatusType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "type": "record", - "name": "ActivateSubscriptionStatus_Type", - "namespace": "org.onap.policy.apex.onap.helloworld", - "fields": [ - { - "name": "subscriptionName", - "type": "string" - }, - { - "name": "measurementGroupName", - "type": "string" - }, - { - "name": "nfName", - "type": "string" - }, - { - "name": "changeType", - "type": "string" - }, - { - "name": "message", - "type": "string" - } - ] - } - - key: - name: SubscriptionType - version: 0.0.1 - value: - key: - name: SubscriptionType - version: 0.0.1 - schemaFlavour: Avro - schemaDefinition: |- - { - "name": "subscription", - "type": "record", - "default": "null", - "fields": [ - { - "name": "subscriptionName", - "type": "string" - }, - { - "name": "fileBasedGP", - "type": "int" - }, - { - "name": "fileLocation", - "type": "string" - }, - { - "name": "measurementGroup", - "type": { - "name": "Measurement_Group_Type", - "type": "record", - "fields": [ - { - "name": "measurementGroupName", - "type": "string" - }, - { - "name": "measurementTypes", - "type": { - "type": "array", - "items": { - "name": "Measurement_Types_Type", - "type": "record", - "fields": [ - { - "name": "measurementType", - "type": "string" - } - ] - } - } - }, - { - "name": "managedObjectDNsBasic", - "type": { - "type": "array", - "items": { - "name": "Managed_Object_Dns_Basic_Type", - "type": "record", - "fields": [ - { - "name": "DN", - "type": "string" - } - ] - } - } - } - ] - } - } - ] - } - - key: - name: UUIDType - version: 0.0.1 - value: - key: - name: UUIDType - version: 0.0.1 - schemaFlavour: Java - schemaDefinition: java.util.UUID - eventInputParameters: - DCAEConsumer: - carrierTechnologyParameters: - carrierTechnology: RESTCLIENT - parameterClassName: org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters - parameters: - consumerPollTime: '50' - url: https://message-router:3905/events/unauthenticated.DCAE_CL_OUTPUT/cg1/sg1 - eventProtocolParameters: - eventProtocol: JSON - parameters: - nameAlias: operationalPolicyName - eventName: pmsh-operational-policy - eventNameFilter: pmsh-operational-policy - CDSRequestConsumer: - carrierTechnologyParameters: - carrierTechnology: RESTREQUESTOR - parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters - parameters: - url: http://cds-blueprints-processor-http:8080/api/v1/execution-service/process - httpMethod: POST - restRequestTimeout: 2000 - httpHeaders: - - - Authorization - - Basic Y2NzZGthcHBzOmNjc2RrYXBwcw== - eventProtocolParameters: - eventProtocol: JSON - eventName: CDSCreateResponseEvent - eventNameFilter: CDSCreateResponseEvent - requestorMode: true - requestorPeer: CDSRequestProducer - requestorTimeout: 500 - CDSDeleteRequestConsumer: - carrierTechnologyParameters: - carrierTechnology: RESTREQUESTOR - parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters - parameters: - url: http://cds-blueprints-processor-http:8080/api/v1/execution-service/process - httpMethod: POST - restRequestTimeout: 2000 - httpHeaders: - - - Authorization - - Basic Y2NzZGthcHBzOmNjc2RrYXBwcw== - eventProtocolParameters: - eventProtocol: JSON - eventName: CDSDeleteResponseEvent - eventNameFilter: CDSDeleteResponseEvent - requestorMode: true - requestorPeer: CDSDeleteRequestProducer - requestorTimeout: 500 - eventOutputParameters: - logOutputter: - carrierTechnologyParameters: - carrierTechnology: FILE - parameters: - standardIo: true - eventProtocolParameters: - eventProtocol: JSON - StdOutOutputter: - carrierTechnologyParameters: - carrierTechnology: FILE - parameters: - standardIo: true - eventProtocolParameters: - eventProtocol: JSON - CDSRequestProducer: - carrierTechnologyParameters: - carrierTechnology: RESTREQUESTOR - parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters - eventProtocolParameters: - eventProtocol: JSON - eventNameFilter: CDSCreateSubscriptionRequestEvent - requestorMode: true - requestorPeer: CDSRequestConsumer - requestorTimeout: 500 - CDSDeleteRequestProducer: - carrierTechnologyParameters: - carrierTechnology: RESTREQUESTOR - parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters - eventProtocolParameters: - eventProtocol: JSON - eventNameFilter: CDSDeleteSubscriptionRequestEvent - requestorMode: true - requestorPeer: CDSDeleteRequestConsumer - requestorTimeout: 500 - CDSReplyProducer: - carrierTechnologyParameters: - carrierTechnology: RESTCLIENT - parameterClassName: org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters - parameters: - url: https://message-router:3905/events/unauthenticated.PMSH_CL_INPUT - httpMethod: POST - restRequestTimeout: 2000 - eventProtocolParameters: - eventProtocol: JSON - eventNameFilter: CDSResponseStatusEvent diff --git a/csit/resources/tests/policy-clamp-test.robot b/csit/resources/tests/policy-clamp-test.robot index 5fa48af2..3fc41550 100644 --- a/csit/resources/tests/policy-clamp-test.robot +++ b/csit/resources/tests/policy-clamp-test.robot @@ -17,82 +17,161 @@ Healthcheck Log Received response from ACM healthcheck {resp.text} Should Be Equal As Strings ${resp.status_code} 200 -#CommissionAutomationCompositionV1 -# [Documentation] Commission automation composition. -# ${auth}= Create List runtimeUser zb!XztG34 -# Log Creating session http://${POLICY_RUNTIME_ACM_IP} -# ${postyaml}= Get file ${CURDIR}/data/functional-pmsh-usecase.yaml -# ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} -# ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml -# ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/compositions data=${postyaml} headers=${headers} -# Log Received response from runtime acm ${resp.text} -# ${respyaml}= yaml.Safe Load ${resp.text} -# set Suite variable ${compositionId} ${respyaml["compositionId"]} -# Should Be Equal As Strings ${resp.status_code} 201 -# -#InstantiateAutomationCompositionV1 -# [Documentation] Instantiate automation composition. -# ${auth}= Create List runtimeUser zb!XztG34 -# Log Creating session http://${POLICY_RUNTIME_ACM_IP} -# ${postjson}= Get file ${CURDIR}/data/AutomationComposition.json -# ${updatedpostjson}= Replace String ${postjson} COMPOSITIONIDPLACEHOLDER ${compositionId} -# ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} -# ${headers}= Create Dictionary Accept=application/json Content-Type=application/json -# ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances data=${updatedpostjson} headers=${headers} -# Log Received response from runtime acm ${resp.text} -# ${respyaml}= yaml.Safe Load ${resp.text} -# set Suite variable ${instanceId} ${respyaml["instanceId"]} -# Should Be Equal As Strings ${resp.status_code} 201 -# -#PassivateAutomationComposition -# [Documentation] Passivate automation composition. -# ${auth}= Create List runtimeUser zb!XztG34 -# Log Creating session http://${POLICY_RUNTIME_ACM_IP} -# ${postjson}= Get file ${CURDIR}/data/PassiveCommand.json -# ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} -# ${headers}= Create Dictionary Accept=application/json Content-Type=application/json -# ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} data=${postjson} headers=${headers} -# Log Received response from runtime acm ${resp.text} -# Should Be Equal As Strings ${resp.status_code} 200 -# -#QueryPolicies -# [Documentation] Runs Policy Participant Query New Policies -# ${auth}= Create List policyadmin zb!XztG34 -# Log Creating session http://${POLICY_API_IP} -# ${session}= Create Session policy http://${POLICY_API_IP} auth=${auth} -# ${headers}= Create Dictionary Accept=application/json Content-Type=application/json -# ${resp}= GET On Session policy /policy/api/v1/policies headers=${headers} -# Log Received response from policy-api {resp.text} -# Should Be Equal As Strings ${resp.status_code} 200 -# -#QueryPolicyTypes -# [Documentation] Runs Policy Participant Query New Policy Types -# ${auth}= Create List policyadmin zb!XztG34 -# Log Creating session http://${POLICY_API_IP}}:6969 -# ${session}= Create Session policy http://${POLICY_API_IP} auth=${auth} -# ${headers}= Create Dictionary Accept=application/json Content-Type=application/json -# ${resp}= GET On Session policy /policy/api/v1/policytypes headers=${headers} -# Log Received response from policy-api ${resp.text} -# Should Be Equal As Strings ${resp.status_code} 200 -# -#StateChangeRunningAutomationComposition -# [Documentation] AutomationComposition State Change to RUNNING. -# ${auth}= Create List runtimeUser zb!XztG34 -# Log Creating session http://${POLICY_RUNTIME_ACM_IP} -# ${postjson}= Get file ${CURDIR}/data/RunningCommand.json -# ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} -# ${headers}= Create Dictionary Accept=application/json Content-Type=application/json -# ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} data=${postjson} headers=${headers} expected_status=400 -# Log Received response from runtime acm ${resp.text} -# -#QueryInstantiatedACs -# [Documentation] Get Instantiated AutomationCompositions -# ${auth}= Create List runtimeUser zb!XztG34 -# Log Creating session http://${POLICY_RUNTIME_ACM_IP} -# ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} -# ${headers}= Create Dictionary Accept=application/json Content-Type=application/json -# ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} headers=${headers} -# Log Received response from runtime acm ${resp.text} -# Should Be Equal As Strings ${resp.status_code} 200 -# Should Be Equal As Strings ${resp.json()['state']} UNINITIALISED2PASSIVE -# Should Be Equal As Strings ${resp.json()['orderedState']} PASSIVE +CommissionAutomationComposition + [Documentation] Commission automation composition. + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${postyaml}= Get file ${CURDIR}/data/acelement-usecase.yaml + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml + ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/compositions data=${postyaml} headers=${headers} + Log Received response from runtime acm ${resp.text} + ${respyaml}= yaml.Safe Load ${resp.text} + set Suite variable ${compositionId} ${respyaml["compositionId"]} + Should Be Equal As Strings ${resp.status_code} 201 + +RegisterParticipants + [Documentation] Register Participants. + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/participants + Log Received response from runtime acm ${resp.text} + Should Be Equal As Strings ${resp.status_code} 202 + +PrimeACDefinitions + [Documentation] Prime automation composition definition + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${postjson}= Get file ${CURDIR}/data/ACPriming.json + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId} data=${postjson} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 202 + Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming PRIMED + + +InstantiateAutomationComposition + [Documentation] Instantiate automation composition. + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${postjson}= Get file ${CURDIR}/data/AutomationComposition.json + ${updatedpostjson}= Replace String ${postjson} COMPOSITIONIDPLACEHOLDER ${compositionId} + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances data=${updatedpostjson} headers=${headers} + Log Received response from runtime acm ${resp.text} + ${respyaml}= yaml.Safe Load ${resp.text} + set Suite variable ${instanceId} ${respyaml["instanceId"]} + Should Be Equal As Strings ${resp.status_code} 201 + +DeployAutomationComposition + [Documentation] Deploy automation composition. + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${postjson}= Get file ${CURDIR}/data/DeployAC.json + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} data=${postjson} headers=${headers} + Log Received response from runtime acm ${resp.text} + Should Be Equal As Strings ${resp.status_code} 202 + Wait Until Keyword Succeeds 10 min 5 sec VerifyDeployStatus DEPLOYED + + +QueryPolicies + [Documentation] Verify the new policies deployed + ${auth}= Create List policyadmin zb!XztG34 + Log Creating session http://${POLICY_PAP_IP} + ${session}= Create Session policy http://${POLICY_PAP_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= GET On Session policy /policy/pap/v1/policies/deployed headers=${headers} + Log Received response from policy-pap {resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + Dictionary Should Contain Value ${resp.json()[0]} onap.policies.native.apex.ac.element + + +QueryPolicyTypes + [Documentation] Verify the new policy types created + ${auth}= Create List policyadmin zb!XztG34 + Log Creating session http://${POLICY_API_IP}}:6969 + ${session}= Create Session policy http://${POLICY_API_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= GET On Session policy /policy/api/v1/policytypes headers=${headers} + Log Received response from policy-api ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + List Should Contain Value ${resp.json()['policy_types']} onap.policies.native.Apex + + +UnDeployAutomationComposition + [Documentation] UnDeploy automation composition. + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${postjson}= Get file ${CURDIR}/data/UndeployAC.json + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} data=${postjson} headers=${headers} + Log Received response from runtime acm ${resp.text} + Should Be Equal As Strings ${resp.status_code} 202 + Wait Until Keyword Succeeds 10 min 5 sec VerifyDeployStatus UNDEPLOYED + + +UnInstantiateAutomationComposition + [Documentation] Delete automation composition instance. + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= DELETE On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} headers=${headers} + Log Received response from runtime acm ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + + +DePrimeACDefinitions + [Documentation] DePrime automation composition definition + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${postjson}= Get file ${CURDIR}/data/ACDepriming.json + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId} data=${postjson} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 202 + Wait Until Keyword Succeeds 2 min 5 sec VerifyPriming COMMISSIONED + + +DeleteACDefinition + [Documentation] Delete automation composition definition. + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml + ${resp}= DELETE On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId} headers=${headers} + Log Received response from runtime acm ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + + + +*** Keywords *** + +VerifyPriming + [Arguments] ${primestate} + [Documentation] Verify the AC definitions are primed to the participants + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 200 + Run Keyword If ${resp.status_code}==200 Should Be Equal As Strings ${resp.json()['state']} ${primestate} + +VerifyDeployStatus + [Arguments] ${deploystate} + [Documentation] Verify the Deploy status of automation composition. + ${auth}= Create List runtimeUser zb!XztG34 + Log Creating session http://${POLICY_RUNTIME_ACM_IP} + ${postjson}= Get file ${CURDIR}/data/DeployAC.json + ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP} auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 200 + Run Keyword If ${resp.status_code}==200 Should Be Equal As Strings ${resp.json()['deployState']} ${deploystate} + diff --git a/csit/run-k8s-csit-enable.sh b/csit/run-k8s-csit-enable.sh index 25bc781c..f8c56678 100755 --- a/csit/run-k8s-csit-enable.sh +++ b/csit/run-k8s-csit-enable.sh @@ -26,6 +26,8 @@ if [ -z "${WORKSPACE}" ]; then export WORKSPACE fi +export GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' "${WORKSPACE}"/.gitreview) + CSIT_SCRIPT="scripts/run-test.sh" ROBOT_DOCKER_IMAGE="policy-csit-robot" POLICY_CLAMP_ROBOT="policy-clamp-test.robot" @@ -35,6 +37,7 @@ POLICY_APEX_PDP_ROBOT="apex-pdp-test.robot apex-slas.robot" POLICY_XACML_PDP_ROBOT="xacml-pdp-test.robot" POLICY_DROOLS_PDP_ROBOT="drools-pdp-test.robot" POLICY_DISTRIBUTION_ROBOT="distribution-test.robot" + POLICY_API_CONTAINER="policy-api" POLICY_PAP_CONTAINER="policy-pap" POLICY_CLAMP_CONTAINER="policy-clamp-runtime-acm" @@ -42,6 +45,9 @@ POLICY_APEX_CONTAINER="policy-apex-pdp" POLICY_DROOLS_CONTAINER="policy-drools-pdp" POLICY_XACML_CONTAINER="policy-xacml-pdp" POLICY_DISTRIBUTION_CONTAINER="policy-distribution" +POLICY_K8S_PPNT_CONTAINER="policy-clamp-ac-k8s-ppnt" +POLICY_HTTP_PPNT_CONTAINER="policy-clamp-ac-http-ppnt" +POLICY_PF_PPNT_CONTAINER="policy-clamp-ac-pf-ppnt" SET_VALUES="" DISTRIBUTION_CSAR=${WORKSPACE}/csit/resources/tests/data/csar @@ -84,18 +90,24 @@ function spin_microk8s_cluster() { } -function teardown_cluster() { - echo "Removing k8s cluster and k8s configuration file" +function uninstall_policy() { + echo "Removing the policy helm deployment" sudo microk8s helm uninstall csit-policy sudo microk8s helm uninstall prometheus sudo microk8s helm uninstall csit-robot rm -rf ${WORKSPACE}/helm/policy/Chart.lock sudo rm -rf /dockerdata-nfs/mariadb-galera/ - echo "K8s Cluster removed" + echo "Policy deployment deleted" echo "Clean up docker" docker image prune -f } +function teardown_cluster() { + echo "Removing k8s cluster and k8s configuration file" + sudo snap remove microk8s;rm -rf $HOME/.kube/config + echo "MicroK8s Cluster removed" +} + function build_robot_image() { echo "Build docker image for robot framework" cd ${WORKSPACE}/csit/resources || exit @@ -121,6 +133,15 @@ function start_csit() { rm -rf ${WORKSPACE}/csit/resources/policy-csit-robot.tar rm -rf ${WORKSPACE}/csit/resources/tests/models/ echo "---------------------------------------------" + if [ $PROJECT == "clamp" ] || [ $PROJECT == "policy-clamp" ]; then + POD_READY_STATUS="0/1" + while [[ ${POD_READY_STATUS} != "1/1" ]]; do + echo "Waiting for chartmuseum pod to come up..." + sleep 5 + POD_READY_STATUS=$(microk8s kubectl get pods | grep -e "policy-chartmuseum" | awk '{print $2}') + done + push_acelement_chart + fi echo "Installing Robot framework pod for running CSIT" cd ${WORKSPACE}/helm mkdir -p ${ROBOT_LOG_DIR} @@ -146,9 +167,8 @@ function print_robot_log() { echo "Please check the logs of policy-csit-robot pod for the test execution results" } -function clone_models() { - GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' "${WORKSPACE}"/.gitreview) - echo GERRIT_BRANCH="${GERRIT_BRANCH}" + +function clone_models () { # download models examples git clone -b "${GERRIT_BRANCH}" --single-branch https://github.com/onap/policy-models.git "${WORKSPACE}"/csit/resources/tests/models @@ -173,12 +193,17 @@ function copy_csar_file() { sudo mv ${DISTRIBUTION_CSAR}/temp.csar ${DIST_TEMP_FOLDER}/sample_csar_with_apex_policy.csar } -function get_robot_file() { + +function set_project_config() { + echo "Setting project configuration for: $PROJECT" case $PROJECT in clamp | policy-clamp) export ROBOT_FILE=$POLICY_CLAMP_ROBOT - export READINESS_CONTAINERS=($POLICY_CLAMP_CONTAINER) + export READINESS_CONTAINERS=($POLICY_CLAMP_CONTAINER,$POLICY_APEX_CONTAINER,$POLICY_PF_PPNT_CONTAINER,$POLICY_K8S_PPNT_CONTAINER, + $POLICY_HTTP_PPNT_CONTAINER) + export SET_VALUES="--set $POLICY_CLAMP_CONTAINER.enabled=true --set $POLICY_APEX_CONTAINER.enabled=true + --set $POLICY_PF_PPNT_CONTAINER.enabled=true --set $POLICY_K8S_PPNT_CONTAINER.enabled=true --set $POLICY_HTTP_PPNT_CONTAINER.enabled=true" ;; api | policy-api) @@ -190,83 +215,73 @@ function get_robot_file() { export ROBOT_FILE=$POLICY_PAP_ROBOT export READINESS_CONTAINERS=($POLICY_APEX_CONTAINER,$POLICY_PAP_CONTAINER,$POLICY_API_CONTAINER,$POLICY_DROOLS_CONTAINER, $POLICY_XACML_CONTAINER) + export SET_VALUES="--set $POLICY_APEX_CONTAINER.enabled=true --set $POLICY_DROOLS_CONTAINER.enabled=true --set $POLICY_XACML_CONTAINER.enabled=true" ;; apex-pdp | policy-apex-pdp) export ROBOT_FILE=$POLICY_APEX_PDP_ROBOT export READINESS_CONTAINERS=($POLICY_APEX_CONTAINER,$POLICY_API_CONTAINER,$POLICY_PAP_CONTAINER) + export SET_VALUES="--set $POLICY_APEX_CONTAINER.enabled=true" ;; xacml-pdp | policy-xacml-pdp) export ROBOT_FILE=($POLICY_XACML_PDP_ROBOT) export READINESS_CONTAINERS=($POLICY_API_CONTAINER,$POLICY_PAP_CONTAINER,$POLICY_XACML_CONTAINER) + export SET_VALUES="--set $POLICY_XACML_CONTAINER.enabled=true" ;; drools-pdp | policy-drools-pdp) export ROBOT_FILE=($POLICY_DROOLS_PDP_ROBOT) export READINESS_CONTAINERS=($POLICY_DROOLS_CONTAINER) + export SET_VALUES="--set $POLICY_DROOLS_CONTAINER.enabled=true" ;; distribution | policy-distribution) export ROBOT_FILE=($POLICY_DISTRIBUTION_ROBOT) export READINESS_CONTAINERS=($POLICY_APEX_CONTAINER,$POLICY_API_CONTAINER,$POLICY_PAP_CONTAINER, $POLICY_DISTRIBUTION_CONTAINER) + export SET_VALUES="--set $POLICY_APEX_CONTAINER.enabled=true --set $POLICY_DISTRIBUTION_CONTAINER.enabled=true" ;; *) - echo "unknown project supplied" + echo "Unknown project supplied. Enabling all policy charts for the deployment" + export SET_VALUES="--set $POLICY_APEX_CONTAINER.enabled=true --set $POLICY_XACML_CONTAINER.enabled=true + --set $POLICY_DISTRIBUTION_CONTAINER.enabled=true --set $POLICY_POLICY_DROOLS_CONTAINER.enabled=true + --set $POLICY_CLAMP_CONTAINER.enabled=true --set $POLICY_PF_PPNT_CONTAINER.enabled=true + --set $POLICY_K8S_PPNT_CONTAINER.enabled=true --set $POLICY_HTTP_PPNT_CONTAINER.enabled=true" ;; esac } -function set_charts() { - case $PROJECT in - - clamp | policy-clamp) - export SET_VALUES="--set $POLICY_CLAMP_CONTAINER.enabled=true" - ;; - - api | policy-api) - export SET_VALUES="--set $POLICY_API_CONTAINER.enabled=true" - ;; - - pap | policy-pap) - export SET_VALUES="--set $POLICY_APEX_CONTAINER.enabled=true --set $POLICY_PAP_CONTAINER.enabled=true --set $POLICY_API_CONTAINER.enabled=true - --set $POLICY_DROOLS_CONTAINER.enabled=true --set $POLICY_XACML_CONTAINER.enabled=true" - ;; - - apex-pdp | policy-apex-pdp) - export SET_VALUES="--set $POLICY_APEX_CONTAINER.enabled=true --set $POLICY_PAP_CONTAINER.enabled=true --set $POLICY_API_CONTAINER.enabled=true" - ;; - - xacml-pdp | policy-xacml-pdp) - export SET_VALUES="--set $POLICY_PAP_CONTAINER.enabled=true --set $POLICY_API_CONTAINER.enabled=true --set $POLICY_XACML_CONTAINER.enabled=true" - ;; - - drools-pdp | policy-drools-pdp) - export SET_VALUES="--set $POLICY_DROOLS_CONTAINER.enabled=true" - ;; - - distribution | policy-distribution) - export SET_VALUES="--set $POLICY_APEX_CONTAINER.enabled=true --set $POLICY_PAP_CONTAINER.enabled=true --set $POLICY_API_CONTAINER.enabled=true - --set $POLICY_DISTRIBUTION_CONTAINER.enabled=true" - ;; +function install_chartmuseum () { + echo "Installing Chartmuseum helm repository..." + sudo microk8s helm repo add chartmuseum-git https://chartmuseum.github.io/charts + sudo microk8s helm repo update + sudo microk8s helm install policy-chartmuseum chartmuseum-git/chartmuseum --set env.open.DISABLE_API=false --set service.type=NodePort --set service.nodePort=30208 + sudo microk8s helm plugin install https://github.com/chartmuseum/helm-push +} - *) - echo "all charts to be deployed" - ;; - esac +function push_acelement_chart() { + echo "Pushing acelement chart to the chartmuseum repo..." + sudo microk8s helm repo add policy-chartmuseum http://localhost:30208 + # download clamp repo + git clone -b "${GERRIT_BRANCH}" --single-branch https://github.com/onap/policy-clamp.git "${WORKSPACE}"/csit/resources/tests/clamp + ACELEMENT_CHART=${WORKSPACE}/csit/resources/tests/clamp/examples/src/main/resources/clamp/acm/acelement-helm/acelement + sudo microk8s helm cm-push $ACELEMENT_CHART policy-chartmuseum + sudo microk8s helm repo update + echo "-------------------------------------------" } + OPERATION="$1" PROJECT="$2" -if [ $OPERATION == "install" ]; then +if [ $OPERATION == "install" ]; then spin_microk8s_cluster if [ "${?}" -eq 0 ]; then - set_charts + set_project_config echo "Installing policy helm charts in the default namespace" cd ${WORKSPACE}/helm || exit sudo microk8s helm dependency build policy @@ -289,7 +304,10 @@ if [ $OPERATION == "install" ]; then fi elif [ $OPERATION == "uninstall" ]; then + uninstall_policy + +elif [ $OPERATION == "clean" ]; then teardown_cluster else - echo "Invalid arguments provided. Usage: $0 [option..] {install {project} | uninstall}" + echo "Invalid arguments provided. Usage: $0 [option..] {install {project} | uninstall} | {clean}" fi diff --git a/helm/policy/Chart.yaml b/helm/policy/Chart.yaml index 3b83cd9a..91553112 100755 --- a/helm/policy/Chart.yaml +++ b/helm/policy/Chart.yaml @@ -21,6 +21,7 @@ dependencies: - name: mariadb-galera version: ~11.x-0 repository: 'file://components/mariadb-galera' + condition: mariadb-galera.enabled - name: policy-clamp-ac-k8s-ppnt version: ~11.x-0 repository: 'file://components/policy-clamp-ac-k8s-ppnt' diff --git a/helm/policy/components/policy-drools-pdp/values.yaml b/helm/policy/components/policy-drools-pdp/values.yaml index 088a2dda..2d7415cd 100644 --- a/helm/policy/components/policy-drools-pdp/values.yaml +++ b/helm/policy/components/policy-drools-pdp/values.yaml @@ -43,7 +43,7 @@ secrets: # Application configuration defaults. ################################################################# # application image -image: nexus3.onap.org:10001/onap/policy-pdpd-cl:1.12-SNAPSHOT-latest +image: nexus3.onap.org:10001/onap/policy-pdpd-cl:1.12.1 pullPolicy: Always # flag to enable debugging - application support required diff --git a/helm/policy/values.yaml b/helm/policy/values.yaml index e007afb6..322b1e9f 100755 --- a/helm/policy/values.yaml +++ b/helm/policy/values.yaml @@ -31,16 +31,18 @@ global: policyKafkaUser: policy-kafka-user +policy-mariadb-galera: + enabled: true policy-models-simulator: enabled: true +policy-api: + enabled: true +policy-pap: + enabled: true policy-clamp-ac-k8s-ppnt: enabled: false policy-clamp-runtime-acm: enabled: false -policy-api: - enabled: false -policy-pap: - enabled: false policy-apex-pdp: enabled: false policy-clamp-ac-pf-ppnt: -- 2.16.6