From 7ec767641505f52cd8ecf8b9a76fa35afe32635e Mon Sep 17 00:00:00 2001 From: Sirisha_Manchikanti Date: Mon, 28 Feb 2022 17:10:36 +0000 Subject: Rename ControlLoop to AutomationCompsition Issue-ID: POLICY-3938 Signed-off-by: Sirisha_Manchikanti Change-Id: I63188fa9bc5d634d3aeb7e2d7051c4d67b5a202c --- .../resources/parameters/TestConfigParams.json | 2 +- .../src/main/resources/etc/defaultConfig.json | 32 +- .../src/main/resources/etc/s3pConfig.json | 32 +- ...LifecycleApiAutomationCompositionForwarder.java | 121 +++ ...piAutomationCompositionForwarderParameters.java | 48 + .../api/LifecycleApiControlLoopForwarder.java | 121 --- ...LifecycleApiControlLoopForwarderParameters.java | 47 - ...tomationCompositionForwarderParametersTest.java | 88 ++ ...cycleApiAutomationCompositionForwarderTest.java | 119 +++ ...cycleApiControlLoopForwarderParametersTest.java | 88 -- .../api/LifecycleApiControlLoopForwarderTest.java | 115 --- ...eApiAutomationCompositionSimulatorEndpoint.java | 54 ++ ...cycleApiAutomationCompositionSimulatorMain.java | 67 ++ .../LifecycleApiControlLoopSimulatorEndpoint.java | 54 -- .../LifecycleApiControlLoopSimulatorMain.java | 67 -- .../LifecycycleApiSimulatorEndpoint.java | 2 +- ...piAutomationCompositionForwarderParameters.json | 10 + ...ationCompositionForwarderParametersInvalid.json | 10 + ...LifecycleApiControlLoopForwarderParameters.json | 10 - ...leApiControlLoopForwarderParametersInvalid.json | 10 - .../parameters/sample_automation_composition.json | 1022 ++++++++++++++++++++ .../resources/parameters/sample_control_loop.json | 1022 -------------------- .../test/resources/parameters/sample_policy.json | 10 +- .../parameters/sample_policy_failure.json | 10 +- .../resources/parameters/sample_policy_type.json | 46 +- .../AutomationCompositionDecoderFileInCsar.java | 117 +++ ...CompositionDecoderFileInCsarParameterGroup.java | 44 + .../policy/file/ControlLoopDecoderFileInCsar.java | 117 --- ...ControlLoopDecoderFileInCsarParameterGroup.java | 44 - ...ositionDecoderFileInCsarParameterGroupTest.java | 68 ++ ...AutomationCompositionDecoderFileInCsarTest.java | 97 ++ ...rolLoopDecoderFileInCsarParameterGroupTest.java | 67 -- .../file/ControlLoopDecoderFileInCsarTest.java | 96 -- ...CsarAutomationCompositionDecoderParameters.json | 3 + ...omationCompositionDecoderParametersInvalid.json | 3 + .../FileInCsarControlLoopDecoderParameters.json | 3 - ...eInCsarControlLoopDecoderParametersInvalid.json | 3 - .../test/resources/service-Sampleservice-acm.csar | Bin 0 -> 79303 bytes .../service-Sampleservice-controlloop.csar | Bin 79322 -> 0 bytes .../setup/config/jsonConfigs/apiConfigFile.json | 18 +- .../setup/config/jsonConfigs/pdpSimConfig.json | 2 +- .../setup/distribution/etc/defaultConfig.json | 32 +- .../src/main/resources/testplans/stability.jmx | 2 +- 43 files changed, 1965 insertions(+), 1958 deletions(-) create mode 100644 plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarder.java create mode 100644 plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderParameters.java delete mode 100644 plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarder.java delete mode 100644 plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderParameters.java create mode 100644 plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderParametersTest.java create mode 100644 plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderTest.java delete mode 100644 plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderParametersTest.java delete mode 100644 plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderTest.java create mode 100644 plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiAutomationCompositionSimulatorEndpoint.java create mode 100644 plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiAutomationCompositionSimulatorMain.java delete mode 100644 plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiControlLoopSimulatorEndpoint.java delete mode 100644 plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiControlLoopSimulatorMain.java create mode 100644 plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParameters.json create mode 100644 plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParametersInvalid.json delete mode 100644 plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiControlLoopForwarderParameters.json delete mode 100644 plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiControlLoopForwarderParametersInvalid.json create mode 100644 plugins/forwarding-plugins/src/test/resources/parameters/sample_automation_composition.json delete mode 100644 plugins/forwarding-plugins/src/test/resources/parameters/sample_control_loop.json create mode 100644 plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsar.java create mode 100644 plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarParameterGroup.java delete mode 100644 plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsar.java delete mode 100644 plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarParameterGroup.java create mode 100644 plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarParameterGroupTest.java create mode 100644 plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarTest.java delete mode 100644 plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarParameterGroupTest.java delete mode 100644 plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarTest.java create mode 100644 plugins/reception-plugins/src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParameters.json create mode 100644 plugins/reception-plugins/src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParametersInvalid.json delete mode 100644 plugins/reception-plugins/src/test/resources/parameters/FileInCsarControlLoopDecoderParameters.json delete mode 100644 plugins/reception-plugins/src/test/resources/parameters/FileInCsarControlLoopDecoderParametersInvalid.json create mode 100644 plugins/reception-plugins/src/test/resources/service-Sampleservice-acm.csar delete mode 100644 plugins/reception-plugins/src/test/resources/service-Sampleservice-controlloop.csar diff --git a/main/src/test/resources/parameters/TestConfigParams.json b/main/src/test/resources/parameters/TestConfigParams.json index 0bb50d65..8bd957a1 100644 --- a/main/src/test/resources/parameters/TestConfigParams.json +++ b/main/src/test/resources/parameters/TestConfigParams.json @@ -2,7 +2,7 @@ "name":"SDCDistributionGroup", "restServerParameters":{ "host":"0.0.0.0", - "port":54290, + "port":50654, "userName":"healthcheck", "password":"zb!XztG34" }, diff --git a/packages/policy-distribution-tarball/src/main/resources/etc/defaultConfig.json b/packages/policy-distribution-tarball/src/main/resources/etc/defaultConfig.json index 4c14f75b..5cdb99ec 100644 --- a/packages/policy-distribution-tarball/src/main/resources/etc/defaultConfig.json +++ b/packages/policy-distribution-tarball/src/main/resources/etc/defaultConfig.json @@ -20,10 +20,10 @@ "decoderClassName": "org.onap.policy.distribution.reception.decoding.policy.file.PolicyDecoderFileInCsarToPolicy", "decoderConfigurationName": "toscaPolicyDecoderConfiguration" }, - "ToscaControlLoopDecoder": { - "decoderType": "ToscaControlLoopDecoder", - "decoderClassName": "org.onap.policy.distribution.reception.decoding.policy.file.ControlLoopDecoderFileInCsar", - "decoderConfigurationName": "toscaControlLoopDecoderConfiguration" + "ToscaAutomationCompositionDecoder": { + "decoderType": "ToscaAutomationCompositionDecoder", + "decoderClassName": "org.onap.policy.distribution.reception.decoding.policy.file.AutomationCompositionDecoderFileInCsar", + "decoderConfigurationName": "toscaAutomationCompositionDecoderConfiguration" } }, "policyForwarders": { @@ -32,10 +32,10 @@ "forwarderClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiPolicyForwarder", "forwarderConfigurationName": "lifecycleApiPolicyConfiguration" }, - "LifeCycleApiControlLoopForwarder": { - "forwarderType": "LifeCycleControlLoopAPI", - "forwarderClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiControlLoopForwarder", - "forwarderConfigurationName": "lifecycleApiControlLoopConfiguration" + "LifeCycleApiAutomationCompositionForwarder": { + "forwarderType": "LifeCycleAutomationCompositionAPI", + "forwarderClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiAutomationCompositionForwarder", + "forwarderConfigurationName": "lifecycleApiAutomationCompositionConfiguration" } } } @@ -76,10 +76,10 @@ "policyTypeFileName": "tosca_policy_type" } }, - "toscaControlLoopDecoderConfiguration": { - "parameterClassName": "org.onap.policy.distribution.reception.decoding.policy.file.ControlLoopDecoderFileInCsarParameterGroup", + "toscaAutomationCompositionDecoderConfiguration": { + "parameterClassName": "org.onap.policy.distribution.reception.decoding.policy.file.AutomationCompositionDecoderFileInCsarParameterGroup", "parameters": { - "controlLoopType": "controlloop" + "automationCompositionType": "acm" } } }, @@ -106,12 +106,12 @@ "deployPolicies": true } }, - "lifecycleApiControlLoopConfiguration": { - "parameterClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiControlLoopForwarderParameters", + "lifecycleApiAutomationCompositionConfiguration": { + "parameterClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiAutomationCompositionForwarderParameters", "parameters": { - "controlLoopRuntimeParameters": { - "clientName": "policy-clamp-cl-runtime", - "hostname": "policy-clamp-cl-runtime", + "automationCompositionRuntimeParameters": { + "clientName": "policy-clamp-runtime-acm", + "hostname": "policy-clamp-runtime-acm", "port": 6969, "useHttps": true, "userName": "policyadmin", diff --git a/packages/policy-distribution-tarball/src/main/resources/etc/s3pConfig.json b/packages/policy-distribution-tarball/src/main/resources/etc/s3pConfig.json index cea48547..2a057c80 100644 --- a/packages/policy-distribution-tarball/src/main/resources/etc/s3pConfig.json +++ b/packages/policy-distribution-tarball/src/main/resources/etc/s3pConfig.json @@ -18,10 +18,10 @@ "decoderClassName": "org.onap.policy.distribution.reception.decoding.policy.file.PolicyDecoderFileInCsarToPolicy", "decoderConfigurationName": "toscaPolicyDecoderConfiguration" }, - "ToscaControlLoopDecoder": { - "decoderType": "ToscaControlLoopDecoder", - "decoderClassName": "org.onap.policy.distribution.reception.decoding.policy.file.ControlLoopDecoderFileInCsar", - "decoderConfigurationName": "toscaControlLoopDecoderConfiguration" + "ToscaAutomationCompositionDecoder": { + "decoderType": "ToscaAutomationCompositionDecoder", + "decoderClassName": "org.onap.policy.distribution.reception.decoding.policy.file.AutomationCompositionDecoderFileInCsar", + "decoderConfigurationName": "toscaAutomationCompositionDecoderConfiguration" } }, "policyForwarders": { @@ -30,10 +30,10 @@ "forwarderClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiPolicyForwarder", "forwarderConfigurationName": "lifecycleApiPolicyConfiguration" }, - "LifeCycleApiControlLoopForwarder": { - "forwarderType": "LifeCycleControlLoopAPI", - "forwarderClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiControlLoopForwarder", - "forwarderConfigurationName": "lifecycleApiControlLoopConfiguration" + "LifeCycleApiAutomationCompositionForwarder": { + "forwarderType": "LifeCycleAutomationCompositionAPI", + "forwarderClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiAutomationCompositionForwarder", + "forwarderConfigurationName": "lifecycleApiAutomationCompositionConfiguration" } } } @@ -55,10 +55,10 @@ "policyTypeFileName": "tosca_policy_type" } }, - "toscaControlLoopDecoderConfiguration": { - "parameterClassName": "org.onap.policy.distribution.reception.decoding.policy.file.ControlLoopDecoderFileInCsarParameterGroup", + "toscaAutomationCompositionDecoderConfiguration": { + "parameterClassName": "org.onap.policy.distribution.reception.decoding.policy.file.AutomationCompositionDecoderFileInCsarParameterGroup", "parameters": { - "controlLoopType": "controlloop" + "automationCompositionType": "acm" } } }, @@ -85,12 +85,12 @@ "deployPolicies": true } }, - "lifecycleApiControlLoopConfiguration": { - "parameterClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiControlLoopForwarderParameters", + "lifecycleApiAutomationCompositionConfiguration": { + "parameterClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiAutomationCompositionForwarderParameters", "parameters": { - "controlLoopRuntimeParameters": { - "clientName": "policy-clamp-cl-runtime", - "hostname": "policy-clamp-cl-runtime", + "automationCompositionRuntimeParameters": { + "clientName": "policy-clamp-runtime-acm", + "hostname": "policy-clamp-runtime-acm", "port": 6969, "useHttps": true, "userName": "policyadmin", diff --git a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarder.java b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarder.java new file mode 100644 index 00000000..99615f50 --- /dev/null +++ b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarder.java @@ -0,0 +1,121 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.forwarding.lifecycle.api; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import org.onap.policy.common.endpoints.http.client.HttpClient; +import org.onap.policy.common.endpoints.http.client.HttpClientConfigException; +import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance; +import org.onap.policy.common.parameters.ParameterService; +import org.onap.policy.distribution.forwarding.PolicyForwarder; +import org.onap.policy.distribution.forwarding.PolicyForwardingException; +import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity; +import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * This class provides an implementation of {@link PolicyForwarder} interface for forwarding the + * automationComposition design template to the life cycle api's of automationComposition components. + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +public class LifecycleApiAutomationCompositionForwarder implements PolicyForwarder { + + private static final String COMMISSION_AUTOMATION_COMPOSITION_URI = "/onap/acm/v2/commission"; + private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleApiAutomationCompositionForwarder.class); + + private LifecycleApiAutomationCompositionForwarderParameters forwarderParameters; + private HttpClient automationCompositionClient; + + /** + * {@inheritDoc}. + */ + @Override + public void configure(final String parameterGroupName) throws HttpClientConfigException { + forwarderParameters = ParameterService.get(parameterGroupName); + + automationCompositionClient = HttpClientFactoryInstance.getClientFactory().build( + forwarderParameters.getAutomationCompositionRuntimeParameters()); + } + + /** + * {@inheritDoc}. + */ + @Override + public void forward(final Collection entities) throws PolicyForwardingException { + final List failedEntities = new ArrayList<>(); + for (final ToscaEntity entity : entities) { + forwardSingleEntity(failedEntities, entity); + } + if (!failedEntities.isEmpty()) { + throw new PolicyForwardingException( + "Failed forwarding the following entities: " + Arrays.toString(failedEntities.toArray())); + } + } + + private void forwardSingleEntity(final List failedEntities, final ToscaEntity entity) { + try { + if (entity instanceof ToscaServiceTemplate) { + final var toscaServiceTemplate = (ToscaServiceTemplate) entity; + if (null != toscaServiceTemplate.getToscaTopologyTemplate() + && null != toscaServiceTemplate.getNodeTypes() + && null != toscaServiceTemplate.getDataTypes()) { + commissionAutomationComposition(toscaServiceTemplate); + } + } else { + throw new PolicyForwardingException("The entity is not of type ToscaServiceTemplate - " + entity); + } + } catch (final Exception exp) { + LOGGER.error(exp.getMessage(), exp); + failedEntities.add(entity); + } + } + + private Response commissionAutomationComposition(final ToscaServiceTemplate toscaServiceTemplate) + throws PolicyForwardingException { + return invokeHttpClient(Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON), + COMMISSION_AUTOMATION_COMPOSITION_URI); + } + + private Response invokeHttpClient(final Entity entity, final String path) + throws PolicyForwardingException { + var response = automationCompositionClient.post(path, entity, Map.of(HttpHeaders.ACCEPT, + MediaType.APPLICATION_JSON, HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)); + if (response.getStatus() / 100 != 2) { + LOGGER.error( + "Invocation of path {} failed for entity {}. Response status: {}, Response status info: {}", + path, entity, response.getStatus(), response.getStatusInfo()); + throw new PolicyForwardingException("Failed creating the entity - " + entity); + } + return response; + } +} + diff --git a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderParameters.java b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderParameters.java new file mode 100644 index 00000000..be7c5263 --- /dev/null +++ b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderParameters.java @@ -0,0 +1,48 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.forwarding.lifecycle.api; + +import lombok.Getter; +import org.onap.policy.common.endpoints.parameters.RestClientParameters; +import org.onap.policy.common.parameters.annotations.NotBlank; +import org.onap.policy.common.parameters.annotations.NotNull; +import org.onap.policy.common.parameters.annotations.Valid; +import org.onap.policy.distribution.main.parameters.PolicyForwarderConfigurationParameterGroup; + +/** + * Holds the parameters for the {@link LifecycleApiAutomationCompositionForwarder}. + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +@Getter +@NotNull +@NotBlank +public class LifecycleApiAutomationCompositionForwarderParameters extends PolicyForwarderConfigurationParameterGroup { + public static final String AUTOMATION_COMPOSITION_FORWARDER_PLUGIN_CLASS = + LifecycleApiAutomationCompositionForwarder.class.getName(); + + private @Valid RestClientParameters automationCompositionRuntimeParameters; + + public LifecycleApiAutomationCompositionForwarderParameters() { + super(LifecycleApiAutomationCompositionForwarderParameters.class.getSimpleName()); + } +} diff --git a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarder.java b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarder.java deleted file mode 100644 index 605c68cd..00000000 --- a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarder.java +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.forwarding.lifecycle.api; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import org.onap.policy.common.endpoints.http.client.HttpClient; -import org.onap.policy.common.endpoints.http.client.HttpClientConfigException; -import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance; -import org.onap.policy.common.parameters.ParameterService; -import org.onap.policy.distribution.forwarding.PolicyForwarder; -import org.onap.policy.distribution.forwarding.PolicyForwardingException; -import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This class provides an implementation of {@link PolicyForwarder} interface for forwarding the - * controlloop design template to the life cycle api's of controlloop components. - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -public class LifecycleApiControlLoopForwarder implements PolicyForwarder { - - private static final String COMMISSION_CONTROLLOOP_URI = "/onap/controlloop/v2/commission"; - private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleApiControlLoopForwarder.class); - - private LifecycleApiControlLoopForwarderParameters forwarderParameters; - private HttpClient controlLoopClient; - - /** - * {@inheritDoc}. - */ - @Override - public void configure(final String parameterGroupName) throws HttpClientConfigException { - forwarderParameters = ParameterService.get(parameterGroupName); - - controlLoopClient = HttpClientFactoryInstance.getClientFactory().build( - forwarderParameters.getControlLoopRuntimeParameters()); - } - - /** - * {@inheritDoc}. - */ - @Override - public void forward(final Collection entities) throws PolicyForwardingException { - final List failedEntities = new ArrayList<>(); - for (final ToscaEntity entity : entities) { - forwardSingleEntity(failedEntities, entity); - } - if (!failedEntities.isEmpty()) { - throw new PolicyForwardingException( - "Failed forwarding the following entities: " + Arrays.toString(failedEntities.toArray())); - } - } - - private void forwardSingleEntity(final List failedEntities, final ToscaEntity entity) { - try { - if (entity instanceof ToscaServiceTemplate) { - final var toscaServiceTemplate = (ToscaServiceTemplate) entity; - if (null != toscaServiceTemplate.getToscaTopologyTemplate() - && null != toscaServiceTemplate.getNodeTypes() - && null != toscaServiceTemplate.getDataTypes()) { - commissionControlLoop(toscaServiceTemplate); - } - } else { - throw new PolicyForwardingException("The entity is not of type ToscaServiceTemplate - " + entity); - } - } catch (final Exception exp) { - LOGGER.error(exp.getMessage(), exp); - failedEntities.add(entity); - } - } - - private Response commissionControlLoop(final ToscaServiceTemplate toscaServiceTemplate) - throws PolicyForwardingException { - return invokeHttpClient(Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON), - COMMISSION_CONTROLLOOP_URI); - } - - private Response invokeHttpClient(final Entity entity, final String path) - throws PolicyForwardingException { - var response = controlLoopClient.post(path, entity, Map.of(HttpHeaders.ACCEPT, - MediaType.APPLICATION_JSON, HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)); - if (response.getStatus() / 100 != 2) { - LOGGER.error( - "Invocation of path {} failed for entity {}. Response status: {}, Response status info: {}", - path, entity, response.getStatus(), response.getStatusInfo()); - throw new PolicyForwardingException("Failed creating the entity - " + entity); - } - return response; - } -} - diff --git a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderParameters.java b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderParameters.java deleted file mode 100644 index d1abce71..00000000 --- a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderParameters.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.forwarding.lifecycle.api; - -import lombok.Getter; -import org.onap.policy.common.endpoints.parameters.RestClientParameters; -import org.onap.policy.common.parameters.annotations.NotBlank; -import org.onap.policy.common.parameters.annotations.NotNull; -import org.onap.policy.common.parameters.annotations.Valid; -import org.onap.policy.distribution.main.parameters.PolicyForwarderConfigurationParameterGroup; - -/** - * Holds the parameters for the {@link LifecycleApiControlLoopForwarder}. - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -@Getter -@NotNull -@NotBlank -public class LifecycleApiControlLoopForwarderParameters extends PolicyForwarderConfigurationParameterGroup { - public static final String CONTROLLOOP_FORWARDER_PLUGIN_CLASS = LifecycleApiControlLoopForwarder.class.getName(); - - private @Valid RestClientParameters controlLoopRuntimeParameters; - - public LifecycleApiControlLoopForwarderParameters() { - super(LifecycleApiControlLoopForwarderParameters.class.getSimpleName()); - } -} diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderParametersTest.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderParametersTest.java new file mode 100644 index 00000000..2ad522fb --- /dev/null +++ b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderParametersTest.java @@ -0,0 +1,88 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.forwarding.lifecycle.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.onap.policy.common.parameters.ValidationStatus; +import org.onap.policy.distribution.forwarding.testclasses.CommonTestData; + +/** + * Class to perform unit test of {@link LifecycleApiAutomationCompositionForwarderParameters}. + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +public class LifecycleApiAutomationCompositionForwarderParametersTest { + + private static final String AUTOMATION_COMPOSITION_RUNTIME_HOST_NAME = "0.0.0.0"; + private static final int AUTOMATION_COMPOSITION_RUNTIME_PORT = 6969; + private static final String AUTOMATION_COMPOSITION_RUNTIME_USER = "policyadmin"; + private static final String AUTOMATION_COMPOSITION_RUNTIME_PASSWORD = "zb!XztG34"; + + + @Test + public void testValidParameters() { + final LifecycleApiAutomationCompositionForwarderParameters configurationParameters = + CommonTestData.getPolicyForwarderParameters( + "src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParameters.json", + LifecycleApiAutomationCompositionForwarderParameters.class); + + assertEquals(LifecycleApiAutomationCompositionForwarderParameters.class.getSimpleName(), + configurationParameters.getName()); + + assertEquals(AUTOMATION_COMPOSITION_RUNTIME_HOST_NAME, + configurationParameters.getAutomationCompositionRuntimeParameters().getHostname()); + assertEquals(AUTOMATION_COMPOSITION_RUNTIME_PORT, + configurationParameters.getAutomationCompositionRuntimeParameters().getPort()); + assertFalse(configurationParameters.getAutomationCompositionRuntimeParameters().isUseHttps()); + assertEquals(AUTOMATION_COMPOSITION_RUNTIME_USER, + configurationParameters.getAutomationCompositionRuntimeParameters().getUserName()); + assertEquals(AUTOMATION_COMPOSITION_RUNTIME_PASSWORD, + configurationParameters.getAutomationCompositionRuntimeParameters().getPassword()); + + assertThat(configurationParameters.validate().getResult()).isNull(); + assertEquals(ValidationStatus.CLEAN, configurationParameters.validate().getStatus()); + } + + @Test + public void testInvalidParameters() { + final LifecycleApiForwarderParameters configurationParameters = + CommonTestData.getPolicyForwarderParameters( + "src/test/resources/parameters/LifecycleApiPolicyForwarderParametersInvalid.json", + LifecycleApiForwarderParameters.class); + + assertEquals(ValidationStatus.INVALID, configurationParameters.validate().getStatus()); + } + + @Test + public void testEmptyParameters() { + final LifecycleApiForwarderParameters configurationParameters = + CommonTestData.getPolicyForwarderParameters("src/test/resources/parameters/EmptyParameters.json", + LifecycleApiForwarderParameters.class); + + assertEquals(ValidationStatus.INVALID, configurationParameters.validate().getStatus()); + } +} diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderTest.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderTest.java new file mode 100644 index 00000000..672cb6bf --- /dev/null +++ b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiAutomationCompositionForwarderTest.java @@ -0,0 +1,119 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.forwarding.lifecycle.api; + +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import java.util.ArrayList; +import java.util.Collection; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.onap.policy.common.parameters.ParameterGroup; +import org.onap.policy.common.parameters.ParameterService; +import org.onap.policy.common.utils.coder.CoderException; +import org.onap.policy.common.utils.coder.StandardCoder; +import org.onap.policy.common.utils.network.NetworkUtil; +import org.onap.policy.common.utils.resources.ResourceUtils; +import org.onap.policy.distribution.forwarding.PolicyForwardingException; +import org.onap.policy.distribution.forwarding.testclasses.CommonTestData; +import org.onap.policy.distribution.forwarding.testclasses.LifecycleApiAutomationCompositionSimulatorMain; +import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity; +import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; + +/** + * Class to perform unit test of {@link LifecycleApiAutomationCompositionForwarder}. + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +public class LifecycleApiAutomationCompositionForwarderTest { + + private static final String AUTOMATION_COMPOSITION = + "src/test/resources/parameters/sample_automation_composition.json"; + private final StandardCoder standardCoder = new StandardCoder(); + private static final LifecycleApiAutomationCompositionSimulatorMain simulator = + new LifecycleApiAutomationCompositionSimulatorMain(); + + /** + * Set up. + * + * @throws CoderException if any error occurs + * @throws PolicyForwardingException if any error occurs + * @throws InterruptedException if any error occurs + */ + @BeforeClass + public static void setUp() throws PolicyForwardingException, CoderException, InterruptedException { + final ParameterGroup parameterGroup = CommonTestData.getPolicyForwarderParameters( + "src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParameters.json", + LifecycleApiAutomationCompositionForwarderParameters.class); + ParameterService.register(parameterGroup); + simulator.startLifecycycleApiSimulator(); + if (!NetworkUtil.isTcpPortOpen("0.0.0.0", 6969, 50, 200L)) { + throw new IllegalStateException("cannot connect to port 6969"); + } + } + + /** + * Tear down. + */ + @AfterClass + public static void tearDown() { + ParameterService.deregister(LifecycleApiAutomationCompositionForwarderParameters.class.getSimpleName()); + simulator.stopLifecycycleApiSimulator(); + } + + @Test + public void testForwardAutomationCompositionUsingSimulator() throws Exception { + assertThatCode(() -> { + final ToscaServiceTemplate toscaServiceTemplate = standardCoder.decode( + ResourceUtils.getResourceAsString(AUTOMATION_COMPOSITION), ToscaServiceTemplate.class); + + final LifecycleApiAutomationCompositionForwarder forwarder = + new LifecycleApiAutomationCompositionForwarder(); + forwarder.configure(LifecycleApiAutomationCompositionForwarderParameters.class.getSimpleName()); + + final Collection automationCompositionList = new ArrayList<>(); + automationCompositionList.add(toscaServiceTemplate); + + forwarder.forward(automationCompositionList); + + }).doesNotThrowAnyException(); + } + + @Test + public void testForwardAutomationCompositionFailureUsingSimulator() throws Exception { + + final ToscaEntity toscaEntity = new ToscaEntity(); + toscaEntity.setName("FailureCase"); + + final LifecycleApiAutomationCompositionForwarder forwarder = new LifecycleApiAutomationCompositionForwarder(); + forwarder.configure(LifecycleApiAutomationCompositionForwarderParameters.class.getSimpleName()); + + final Collection automationCompositionList = new ArrayList<>(); + automationCompositionList.add(toscaEntity); + + assertThatThrownBy(() -> forwarder.forward(automationCompositionList)) + .isInstanceOf(PolicyForwardingException.class) + .hasMessageContaining("Failed forwarding the following entities:"); + } +} diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderParametersTest.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderParametersTest.java deleted file mode 100644 index ba8d9bfb..00000000 --- a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderParametersTest.java +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.forwarding.lifecycle.api; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.onap.policy.common.parameters.ValidationStatus; -import org.onap.policy.distribution.forwarding.testclasses.CommonTestData; - -/** - * Class to perform unit test of {@link LifecycleApiControlLoopForwarderParameters}. - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -public class LifecycleApiControlLoopForwarderParametersTest { - - private static final String CONTROLLOOP_RUNTIME_HOST_NAME = "0.0.0.0"; - private static final int CONTROLLOOP_RUNTIME_PORT = 6969; - private static final String CONTROLLOOP_RUNTIME_USER = "policyadmin"; - private static final String CONTROLLOOP_RUNTIME_PASSWORD = "zb!XztG34"; - - - @Test - public void testValidParameters() { - final LifecycleApiControlLoopForwarderParameters configurationParameters = - CommonTestData.getPolicyForwarderParameters( - "src/test/resources/parameters/LifecycleApiControlLoopForwarderParameters.json", - LifecycleApiControlLoopForwarderParameters.class); - - assertEquals(LifecycleApiControlLoopForwarderParameters.class.getSimpleName(), - configurationParameters.getName()); - - assertEquals(CONTROLLOOP_RUNTIME_HOST_NAME, - configurationParameters.getControlLoopRuntimeParameters().getHostname()); - assertEquals(CONTROLLOOP_RUNTIME_PORT, - configurationParameters.getControlLoopRuntimeParameters().getPort()); - assertFalse(configurationParameters.getControlLoopRuntimeParameters().isUseHttps()); - assertEquals(CONTROLLOOP_RUNTIME_USER, - configurationParameters.getControlLoopRuntimeParameters().getUserName()); - assertEquals(CONTROLLOOP_RUNTIME_PASSWORD, - configurationParameters.getControlLoopRuntimeParameters().getPassword()); - - assertThat(configurationParameters.validate().getResult()).isNull(); - assertEquals(ValidationStatus.CLEAN, configurationParameters.validate().getStatus()); - } - - @Test - public void testInvalidParameters() { - final LifecycleApiForwarderParameters configurationParameters = - CommonTestData.getPolicyForwarderParameters( - "src/test/resources/parameters/LifecycleApiPolicyForwarderParametersInvalid.json", - LifecycleApiForwarderParameters.class); - - assertEquals(ValidationStatus.INVALID, configurationParameters.validate().getStatus()); - } - - @Test - public void testEmptyParameters() { - final LifecycleApiForwarderParameters configurationParameters = - CommonTestData.getPolicyForwarderParameters("src/test/resources/parameters/EmptyParameters.json", - LifecycleApiForwarderParameters.class); - - assertEquals(ValidationStatus.INVALID, configurationParameters.validate().getStatus()); - } -} diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderTest.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderTest.java deleted file mode 100644 index 047482ef..00000000 --- a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiControlLoopForwarderTest.java +++ /dev/null @@ -1,115 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.forwarding.lifecycle.api; - -import static org.assertj.core.api.Assertions.assertThatCode; -import static org.assertj.core.api.Assertions.assertThatThrownBy; - -import java.util.ArrayList; -import java.util.Collection; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.onap.policy.common.parameters.ParameterGroup; -import org.onap.policy.common.parameters.ParameterService; -import org.onap.policy.common.utils.coder.CoderException; -import org.onap.policy.common.utils.coder.StandardCoder; -import org.onap.policy.common.utils.network.NetworkUtil; -import org.onap.policy.common.utils.resources.ResourceUtils; -import org.onap.policy.distribution.forwarding.PolicyForwardingException; -import org.onap.policy.distribution.forwarding.testclasses.CommonTestData; -import org.onap.policy.distribution.forwarding.testclasses.LifecycleApiControlLoopSimulatorMain; -import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; - -/** - * Class to perform unit test of {@link LifecycleApiControlLoopForwarder}. - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -public class LifecycleApiControlLoopForwarderTest { - - private static final String CONTROL_LOOP = "src/test/resources/parameters/sample_control_loop.json"; - private final StandardCoder standardCoder = new StandardCoder(); - private static final LifecycleApiControlLoopSimulatorMain simulator = new LifecycleApiControlLoopSimulatorMain(); - - /** - * Set up. - * - * @throws CoderException if any error occurs - * @throws PolicyForwardingException if any error occurs - * @throws InterruptedException if any error occurs - */ - @BeforeClass - public static void setUp() throws PolicyForwardingException, CoderException, InterruptedException { - final ParameterGroup parameterGroup = CommonTestData.getPolicyForwarderParameters( - "src/test/resources/parameters/LifecycleApiControlLoopForwarderParameters.json", - LifecycleApiControlLoopForwarderParameters.class); - ParameterService.register(parameterGroup); - simulator.startLifecycycleApiSimulator(); - if (!NetworkUtil.isTcpPortOpen("0.0.0.0", 6969, 50, 200L)) { - throw new IllegalStateException("cannot connect to port 6969"); - } - } - - /** - * Tear down. - */ - @AfterClass - public static void tearDown() { - ParameterService.deregister(LifecycleApiControlLoopForwarderParameters.class.getSimpleName()); - simulator.stopLifecycycleApiSimulator(); - } - - @Test - public void testForwardControlLoopUsingSimulator() throws Exception { - assertThatCode(() -> { - final ToscaServiceTemplate toscaServiceTemplate = - standardCoder.decode(ResourceUtils.getResourceAsString(CONTROL_LOOP), ToscaServiceTemplate.class); - - final LifecycleApiControlLoopForwarder forwarder = new LifecycleApiControlLoopForwarder(); - forwarder.configure(LifecycleApiControlLoopForwarderParameters.class.getSimpleName()); - - final Collection controlLoopList = new ArrayList<>(); - controlLoopList.add(toscaServiceTemplate); - - forwarder.forward(controlLoopList); - - }).doesNotThrowAnyException(); - } - - @Test - public void testForwardControlLoopFailureUsingSimulator() throws Exception { - - final ToscaEntity toscaEntity = new ToscaEntity(); - toscaEntity.setName("FailureCase"); - - final LifecycleApiControlLoopForwarder forwarder = new LifecycleApiControlLoopForwarder(); - forwarder.configure(LifecycleApiControlLoopForwarderParameters.class.getSimpleName()); - - final Collection controlLoopList = new ArrayList<>(); - controlLoopList.add(toscaEntity); - - assertThatThrownBy(() -> forwarder.forward(controlLoopList)).isInstanceOf(PolicyForwardingException.class) - .hasMessageContaining("Failed forwarding the following entities:"); - } -} diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiAutomationCompositionSimulatorEndpoint.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiAutomationCompositionSimulatorEndpoint.java new file mode 100644 index 00000000..00b017ba --- /dev/null +++ b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiAutomationCompositionSimulatorEndpoint.java @@ -0,0 +1,54 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.forwarding.testclasses; + +import javax.ws.rs.Consumes; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; + +/** + * Class to provide rest end points for LifecycleApiAutomationCompositionSimulator. + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +@Path("/onap") +@Produces(MediaType.APPLICATION_JSON) +public class LifecycleApiAutomationCompositionSimulatorEndpoint { + + /** + * AutomationComposition commissioning end-point. + * + * @param body the post body + * @return the response object + */ + @POST + @Path("/acm/v2/commission") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response commissionAutomationComposition(final ToscaServiceTemplate body) { + return Response.status(Response.Status.OK).entity(body).build(); + } +} diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiAutomationCompositionSimulatorMain.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiAutomationCompositionSimulatorMain.java new file mode 100644 index 00000000..98615af0 --- /dev/null +++ b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiAutomationCompositionSimulatorMain.java @@ -0,0 +1,67 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.forwarding.testclasses; + +import org.onap.policy.common.endpoints.http.server.RestServer; +import org.onap.policy.common.endpoints.parameters.RestServerParameters; +import org.onap.policy.common.utils.coder.CoderException; +import org.onap.policy.common.utils.coder.StandardCoder; +import org.onap.policy.common.utils.resources.ResourceUtils; +import org.onap.policy.distribution.forwarding.PolicyForwardingException; +import org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiAutomationCompositionForwarder; +import org.onap.policy.distribution.main.rest.aaf.AafDistributionFilter; + +/** + * The class for starting/stopping simulator for testing {@link LifecycleApiAutomationCompositionForwarder} . + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +public class LifecycleApiAutomationCompositionSimulatorMain { + private RestServer restServer; + + /** + * Starts the simulator. + * + * @throws PolicyForwardingException if error occurs + * @throws CoderException if error occurs + */ + public void startLifecycycleApiSimulator() throws PolicyForwardingException, CoderException { + final StandardCoder standardCoder = new StandardCoder(); + final RestServerParameters restServerParameters = standardCoder.decode( + ResourceUtils.getResourceAsString("src/test/resources/parameters/RestServerParameters.json"), + RestServerParameters.class); + restServer = new RestServer(restServerParameters, AafDistributionFilter.class, + LifecycleApiAutomationCompositionSimulatorEndpoint.class); + if (!restServer.start()) { + throw new PolicyForwardingException("Failed to start rest simulator. Check log for more details..."); + } + } + + /** + * Shut down Execution. + */ + public void stopLifecycycleApiSimulator() { + if (restServer != null) { + restServer.stop(); + } + } +} diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiControlLoopSimulatorEndpoint.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiControlLoopSimulatorEndpoint.java deleted file mode 100644 index d361d166..00000000 --- a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiControlLoopSimulatorEndpoint.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.forwarding.testclasses; - -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; - -/** - * Class to provide rest end points for LifecycleApiControlLoopSimulator. - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -@Path("/onap") -@Produces(MediaType.APPLICATION_JSON) -public class LifecycleApiControlLoopSimulatorEndpoint { - - /** - * ControlLoop commissioning end-point. - * - * @param body the post body - * @return the response object - */ - @POST - @Path("/controlloop/v2/commission") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response commissionControlLoop(final ToscaServiceTemplate body) { - return Response.status(Response.Status.OK).entity(body).build(); - } -} diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiControlLoopSimulatorMain.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiControlLoopSimulatorMain.java deleted file mode 100644 index a60fda1d..00000000 --- a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycleApiControlLoopSimulatorMain.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.forwarding.testclasses; - -import org.onap.policy.common.endpoints.http.server.RestServer; -import org.onap.policy.common.endpoints.parameters.RestServerParameters; -import org.onap.policy.common.utils.coder.CoderException; -import org.onap.policy.common.utils.coder.StandardCoder; -import org.onap.policy.common.utils.resources.ResourceUtils; -import org.onap.policy.distribution.forwarding.PolicyForwardingException; -import org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiControlLoopForwarder; -import org.onap.policy.distribution.main.rest.aaf.AafDistributionFilter; - -/** - * The class for starting/stopping simulator for testing {@link LifecycleApiControlLoopForwarder} . - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -public class LifecycleApiControlLoopSimulatorMain { - private RestServer restServer; - - /** - * Starts the simulator. - * - * @throws PolicyForwardingException if error occurs - * @throws CoderException if error occurs - */ - public void startLifecycycleApiSimulator() throws PolicyForwardingException, CoderException { - final StandardCoder standardCoder = new StandardCoder(); - final RestServerParameters restServerParameters = standardCoder.decode( - ResourceUtils.getResourceAsString("src/test/resources/parameters/RestServerParameters.json"), - RestServerParameters.class); - restServer = new RestServer(restServerParameters, AafDistributionFilter.class, - LifecycleApiControlLoopSimulatorEndpoint.class); - if (!restServer.start()) { - throw new PolicyForwardingException("Failed to start rest simulator. Check log for more details..."); - } - } - - /** - * Shut down Execution. - */ - public void stopLifecycycleApiSimulator() { - if (restServer != null) { - restServer.stop(); - } - } -} diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycycleApiSimulatorEndpoint.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycycleApiSimulatorEndpoint.java index 4a881cb0..22aeff2f 100644 --- a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycycleApiSimulatorEndpoint.java +++ b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/testclasses/LifecycycleApiSimulatorEndpoint.java @@ -71,7 +71,7 @@ public class LifecycycleApiSimulatorEndpoint { public Response createPolicies(@PathParam("policyTypeId") final String policyTypeId, @PathParam("policyTypeVersion") final String policyTypeVersion, @ApiParam(value = "Entity body of policy", required = true) final ToscaServiceTemplate body) { - if ("onap.policies.controlloop.operational.ApexFailure".equals(policyTypeId)) { + if ("onap.policies.acm.operational.ApexFailure".equals(policyTypeId)) { return Response.status(Response.Status.NOT_FOUND).build(); } else { return Response.status(Response.Status.OK).entity(body).build(); diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParameters.json b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParameters.json new file mode 100644 index 00000000..d9d6dbb1 --- /dev/null +++ b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParameters.json @@ -0,0 +1,10 @@ +{ + "automationCompositionRuntimeParameters": { + "clientName": "policy-clamp-runtime-acm", + "hostname": "0.0.0.0", + "port": 6969, + "useHttps": false, + "userName": "policyadmin", + "password": "zb!XztG34" + } +} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParametersInvalid.json b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParametersInvalid.json new file mode 100644 index 00000000..a98d2827 --- /dev/null +++ b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiAutomationCompositionForwarderParametersInvalid.json @@ -0,0 +1,10 @@ +{ + "automationCompositionRuntimeParameters": { + "clientName": "policy-clamp-runtime-acm", + "hostname": "", + "port": 6969, + "useHttps": false, + "userName": "policyadmin", + "password": "zb!XztG34" + } +} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiControlLoopForwarderParameters.json b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiControlLoopForwarderParameters.json deleted file mode 100644 index 1eef9773..00000000 --- a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiControlLoopForwarderParameters.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "controlLoopRuntimeParameters": { - "clientName": "policy-clamp-cl-runtime", - "hostname": "0.0.0.0", - "port": 6969, - "useHttps": false, - "userName": "policyadmin", - "password": "zb!XztG34" - } -} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiControlLoopForwarderParametersInvalid.json b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiControlLoopForwarderParametersInvalid.json deleted file mode 100644 index 5ac0c4ee..00000000 --- a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiControlLoopForwarderParametersInvalid.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "controlLoopRuntimeParameters": { - "clientName": "policy-clamp-cl-runtime", - "hostname": "", - "port": 6969, - "useHttps": false, - "userName": "policyadmin", - "password": "zb!XztG34" - } -} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/sample_automation_composition.json b/plugins/forwarding-plugins/src/test/resources/parameters/sample_automation_composition.json new file mode 100644 index 00000000..32e62335 --- /dev/null +++ b/plugins/forwarding-plugins/src/test/resources/parameters/sample_automation_composition.json @@ -0,0 +1,1022 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_3", + "data_types": { + "onap.datatypes.ToscaConceptIdentifier": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "name": { + "type": "string", + "required": true + }, + "version": { + "type": "string", + "required": true + } + } + }, + "onap.datatype.acm.Target": { + "derived_from": "tosca.datatypes.Root", + "description": "Definition for a entity in A&AI to perform a acm operation on", + "properties": { + "targetType": { + "type": "string", + "description": "Category for the target type", + "required": true, + "constraints": [ + { + "valid_values": [ + "VNF", + "VM", + "VFMODULE", + "PNF" + ] + } + ] + }, + "entityIds": { + "type": "map", + "description": "Map of values that identify the resource. If none are provided, it is assumed that the\nentity that generated the ONSET event will be the target.\n", + "required": false, + "metadata": { + "clamp_possible_values": "ClampExecution:CSAR_RESOURCES" + }, + "entry_schema": { + "type": "string" + } + } + } + }, + "onap.datatype.acm.Actor": { + "derived_from": "tosca.datatypes.Root", + "description": "An actor/operation/target definition", + "properties": { + "actor": { + "type": "string", + "description": "The actor performing the operation.", + "required": true, + "metadata": { + "clamp_possible_values": "Dictionary:DefaultActors,ClampExecution:CDS/actor" + } + }, + "operation": { + "type": "string", + "description": "The operation the actor is performing.", + "metadata": { + "clamp_possible_values": "Dictionary:DefaultOperations,ClampExecution:CDS/operation" + }, + "required": true + }, + "target": { + "type": "onap.datatype.acm.Target", + "description": "The resource the operation should be performed on.", + "required": true + }, + "payload": { + "type": "map", + "description": "Name/value pairs of payload information passed by Policy to the actor", + "required": false, + "metadata": { + "clamp_possible_values": "ClampExecution:CDS/payload" + }, + "entry_schema": { + "type": "string" + } + } + } + }, + "onap.datatype.acm.Operation": { + "derived_from": "tosca.datatypes.Root", + "description": "An operation supported by an actor", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the operation", + "required": true + }, + "description": { + "type": "string", + "description": "A user-friendly description of the intent for the operation", + "required": false + }, + "operation": { + "type": "onap.datatype.acm.Actor", + "description": "The definition of the operation to be performed.", + "required": true + }, + "timeout": { + "type": "integer", + "description": "The amount of time for the actor to perform the operation.", + "required": true + }, + "retries": { + "type": "integer", + "description": "The number of retries the actor should attempt to perform the operation.", + "required": true, + "default": 0 + }, + "success": { + "type": "string", + "description": "Points to the operation to invoke on success. A value of \"final_success\" indicates and end to the operation.", + "required": false, + "default": "final_success" + }, + "failure": { + "type": "string", + "description": "Points to the operation to invoke on Actor operation failure.", + "required": false, + "default": "final_failure" + }, + "failure_timeout": { + "type": "string", + "description": "Points to the operation to invoke when the time out for the operation occurs.", + "required": false, + "default": "final_failure_timeout" + }, + "failure_retries": { + "type": "string", + "description": "Points to the operation to invoke when the current operation has exceeded its max retries.", + "required": false, + "default": "final_failure_retries" + }, + "failure_exception": { + "type": "string", + "description": "Points to the operation to invoke when the current operation causes an exception.", + "required": false, + "default": "final_failure_exception" + }, + "failure_guard": { + "type": "string", + "description": "Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.", + "required": false, + "default": "final_failure_guard" + } + } + }, + "onap.datatypes.monitoring.managedObjectDNsBasic": { + "constraints": [], + "properties": { + "DN": { + "name": "DN", + "type": "string", + "typeVersion": "0.0.0", + "description": "Managed object distinguished name", + "required": true, + "constraints": [], + "metadata": {} + } + }, + "name": "onap.datatypes.monitoring.managedObjectDNsBasic", + "version": "0.0.0", + "derived_from": "tosca.datatypes.Root", + "metadata": {} + }, + "onap.datatypes.monitoring.managedObjectDNsBasics": { + "constraints": [], + "properties": { + "managedObjectDNsBasic": { + "name": "managedObjectDNsBasic", + "type": "map", + "typeVersion": "0.0.0", + "description": "Managed object distinguished name object", + "required": true, + "constraints": [], + "entry_schema": { + "type": "onap.datatypes.monitoring.managedObjectDNsBasic", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + } + }, + "name": "onap.datatypes.monitoring.managedObjectDNsBasics", + "version": "0.0.0", + "derived_from": "tosca.datatypes.Root", + "metadata": {} + }, + "onap.datatypes.monitoring.measurementGroup": { + "constraints": [], + "properties": { + "measurementTypes": { + "name": "measurementTypes", + "type": "list", + "typeVersion": "0.0.0", + "description": "List of measurement types", + "required": true, + "constraints": [], + "entry_schema": { + "type": "onap.datatypes.monitoring.measurementTypes", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + }, + "managedObjectDNsBasic": { + "name": "managedObjectDNsBasic", + "type": "list", + "typeVersion": "0.0.0", + "description": "List of managed object distinguished names", + "required": true, + "constraints": [], + "entry_schema": { + "type": "onap.datatypes.monitoring.managedObjectDNsBasics", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + } + }, + "name": "onap.datatypes.monitoring.measurementGroup", + "version": "0.0.0", + "derived_from": "tosca.datatypes.Root", + "metadata": {} + }, + "onap.datatypes.monitoring.measurementGroups": { + "constraints": [], + "properties": { + "measurementGroup": { + "name": "measurementGroup", + "type": "map", + "typeVersion": "0.0.0", + "description": "Measurement Group", + "required": true, + "constraints": [], + "entry_schema": { + "type": "onap.datatypes.monitoring.measurementGroup", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + } + }, + "name": "onap.datatypes.monitoring.measurementGroups", + "version": "0.0.0", + "derived_from": "tosca.datatypes.Root", + "metadata": {} + }, + "onap.datatypes.monitoring.measurementType": { + "constraints": [], + "properties": { + "measurementType": { + "name": "measurementType", + "type": "string", + "typeVersion": "0.0.0", + "description": "Measurement type", + "required": true, + "constraints": [], + "metadata": {} + } + }, + "name": "onap.datatypes.monitoring.measurementType", + "version": "0.0.0", + "derived_from": "tosca.datatypes.Root", + "metadata": {} + }, + "onap.datatypes.monitoring.measurementTypes": { + "constraints": [], + "properties": { + "measurementType": { + "name": "measurementType", + "type": "map", + "typeVersion": "0.0.0", + "description": "Measurement type object", + "required": true, + "constraints": [], + "entry_schema": { + "type": "onap.datatypes.monitoring.measurementType", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + } + }, + "name": "onap.datatypes.monitoring.measurementTypes", + "version": "0.0.0", + "derived_from": "tosca.datatypes.Root", + "metadata": {} + }, + "onap.datatypes.monitoring.nfFilter": { + "constraints": [], + "properties": { + "modelNames": { + "name": "modelNames", + "type": "list", + "typeVersion": "0.0.0", + "description": "List of model names", + "required": true, + "constraints": [], + "entry_schema": { + "type": "string", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + }, + "modelInvariantIDs": { + "name": "modelInvariantIDs", + "type": "list", + "typeVersion": "0.0.0", + "description": "List of model invariant IDs", + "required": true, + "constraints": [], + "entry_schema": { + "type": "string", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + }, + "modelVersionIDs": { + "name": "modelVersionIDs", + "type": "list", + "typeVersion": "0.0.0", + "description": "List of model version IDs", + "required": true, + "constraints": [], + "entry_schema": { + "type": "string", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + }, + "nfNames": { + "name": "nfNames", + "type": "list", + "typeVersion": "0.0.0", + "description": "List of network functions", + "required": true, + "constraints": [], + "entry_schema": { + "type": "string", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + } + }, + "name": "onap.datatypes.monitoring.nfFilter", + "version": "0.0.0", + "derived_from": "tosca.datatypes.Root", + "metadata": {} + }, + "onap.datatypes.monitoring.subscription": { + "constraints": [], + "properties": { + "measurementGroups": { + "name": "measurementGroups", + "type": "list", + "typeVersion": "0.0.0", + "description": "Measurement Groups", + "required": true, + "constraints": [], + "entry_schema": { + "type": "onap.datatypes.monitoring.measurementGroups", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + }, + "fileBasedGP": { + "name": "fileBasedGP", + "type": "integer", + "typeVersion": "0.0.0", + "description": "File based granularity period", + "required": true, + "constraints": [], + "metadata": {} + }, + "fileLocation": { + "name": "fileLocation", + "type": "string", + "typeVersion": "0.0.0", + "description": "ROP file location", + "required": true, + "constraints": [], + "metadata": {} + }, + "subscriptionName": { + "name": "subscriptionName", + "type": "string", + "typeVersion": "0.0.0", + "description": "Name of the subscription", + "required": true, + "constraints": [], + "metadata": {} + }, + "administrativeState": { + "name": "administrativeState", + "type": "string", + "typeVersion": "0.0.0", + "description": "State of the subscription", + "required": true, + "constraints": [ + { + "valid_values": [ + "LOCKED", + "UNLOCKED" + ] + } + ], + "metadata": {} + }, + "nfFilter": { + "name": "nfFilter", + "type": "map", + "typeVersion": "0.0.0", + "description": "Network function filter", + "required": true, + "constraints": [], + "entry_schema": { + "type": "onap.datatypes.monitoring.nfFilter", + "typeVersion": "0.0.0", + "constraints": [] + }, + "metadata": {} + } + }, + "name": "onap.datatypes.monitoring.subscription", + "version": "0.0.0", + "derived_from": "tosca.datatypes.Root", + "metadata": {} + }, + "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest": { + "version": "1.0.0", + "derived_from": "tosca.datatypes.Root", + "properties": { + "restRequestId": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "typeVersion": "1.0.0", + "required": true, + "description": "The name and version of a REST request to be sent to a REST endpoint" + }, + "httpMethod": { + "type": "string", + "required": true, + "constraints": [ + { + "valid_values": [ + "POST", + "PUT", + "GET", + "DELETE" + ] + } + ], + "description": "The REST method to use" + }, + "path": { + "type": "string", + "required": true, + "description": "The path of the REST request relative to the base URL" + }, + "body": { + "type": "string", + "required": false, + "description": "The body of the REST request for PUT and POST requests" + }, + "expectedResponse": { + "type": "integer", + "required": true, + "constraints": [], + "description": "THe expected HTTP status code for the REST request" + } + }, + "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity": { + "version": "1.0.0", + "derived_from": "tosca.datatypes.Root", + "properties": { + "configurationEntityId": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "typeVersion": "1.0.0", + "required": true, + "description": "The name and version of a Configuration Entity to be handled by the HTTP Automation Composition Element" + }, + "restSequence": { + "type": "list", + "entry_schema": { + "type": "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest", + "typeVersion": "1.0.0" + }, + "description": "A sequence of REST commands to send to the REST endpoint" + } + } + } + } + }, + "node_types": { + "org.onap.policy.clamp.acm.Participant": { + "version": "1.0.1", + "derived_from": "tosca.nodetypes.Root", + "properties": { + "provider": { + "type": "string", + "requred": false + } + } + }, + "org.onap.policy.clamp.acm.AutomationCompositionElement": { + "version": "1.0.1", + "derived_from": "tosca.nodetypes.Root", + "properties": { + "provider": { + "type": "string", + "required": false, + "metadata": { + "common": true + }, + "description": "Specifies the organization that provides the acm element" + }, + "participant_id": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "requred": 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 acm 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 acm element" + }, + "elements": { + "type": "list", + "required": true, + "metadata": { + "common": true + }, + "entry_schema": { + "type": "onap.datatypes.ToscaConceptIdentifier" + }, + "description": "Specifies a list of acm element definitions that make up this acm 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", + "requred": true + }, + "policy_id": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "requred": false + } + } + }, + "org.onap.policy.clamp.acm.DerivedPolicyAutomationCompositionElement": { + "version": "1.0.1", + "derived_from": "org.onap.policy.clamp.acm.PolicyAutomationCompositionElement", + "properties": { + "policy_type_id": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "requred": true + }, + "policy_id": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "requred": false + } + } + }, + "org.onap.policy.clamp.acm.DerivedDerivedPolicyAutomationCompositionElement": { + "version": "1.0.1", + "derived_from": "org.onap.policy.clamp.acm.DerivedPolicyAutomationCompositionElement", + "properties": { + "policy_type_id": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "requred": true + }, + "policy_id": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "requred": false + } + } + }, + "org.onap.policy.clamp.acm.CDSAutomationCompositionElement": { + "version": "1.0.1", + "derived_from": "org.onap.policy.clamp.acm.AutomationCompositionElement", + "properties": { + "cds_blueprint_id": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "requred": true + } + } + }, + "org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement": { + "version": "1.0.1", + "derived_from": "org.onap.policy.clamp.acm.AutomationCompositionElement", + "properties": { + "chart": { + "type": "string", + "required": true + }, + "configs": { + "type": "list", + "required": false + }, + "requirements": { + "type": "string", + "requred": false + }, + "templates": { + "type": "list", + "required": false, + "entry_schema": null + }, + "values": { + "type": "string", + "requred": 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", + "typeVersion": "1.0.0" + }, + "description": "The connfiguration entities the Automation Composition Element is managing and their associated REST requests" + } + } + } + }, + "topology_template": { + "inputs": { + "pmsh_monitoring_policy": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "description": "The ID of the PMSH monitoring policy to use", + "default": { + "name": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0test", + "version": "1.0.0" + } + }, + "pmsh_operational_policy": { + "type": "onap.datatypes.ToscaConceptIdentifier", + "description": "The ID of the PMSH operational policy to use", + "default": { + "name": "operational.apex.pmcontrol", + "version": "1.0.0" + } + } + }, + "node_templates": { + "org.onap.policy.acm.PolicyAutomationCompositionParticipant": { + "version": "2.3.1", + "type": "org.onap.policy.clamp.acm.Participant", + "type_version": "1.0.1", + "description": "Participant for DCAE microservices", + "properties": { + "provider": "ONAP" + } + }, + "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement": { + "version": "1.2.3", + "type": "org.onap.policy.clamp.acm.PolicyAutomationCompositionElement", + "type_version": "1.0.0", + "description": "Automation Composition element for the monitoring policy for Performance Management Subscription Handling", + "properties": { + "provider": "Ericsson", + "participant_id": { + "name": "org.onap.PM_Policy", + "version": "1.0.0" + }, + "participantType": { + "name": "org.onap.policy.acm.PolicyAutomationCompositionParticipant", + "version": "2.3.1" + }, + "policy_type_id": { + "name": "onap.policies.monitoring.pm-subscription-handler", + "version": "1.0.0" + }, + "policy_id": { + "get_input": "pmsh_monitoring_policy" + } + } + }, + "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement": { + "version": "1.2.3", + "type": "org.onap.policy.clamp.acm.PolicyAutomationCompositionElement", + "type_version": "1.0.0", + "description": "Automation Composition element for the operational policy for Performance Management Subscription Handling", + "properties": { + "provider": "Ericsson", + "participant_id": { + "name": "org.onap.PM_Policy", + "version": "1.0.0" + }, + "participantType": { + "name": "org.onap.policy.acm.PolicyAutomationCompositionParticipant", + "version": "2.3.1" + }, + "policy_type_id": { + "name": "onap.policies.operational.pm-subscription-handler", + "version": "1.0.0" + }, + "policy_id": { + "get_input": "pmsh_operational_policy" + } + } + }, + "org.onap.domain.pmsh.DerivedPolicyAutomationCompositionElement": { + "version": "1.2.3", + "type": "org.onap.policy.clamp.acm.DerivedPolicyAutomationCompositionElement", + "type_version": "1.0.0", + "description": "Automation Composition for Performance Management Subscription Handling", + "properties": { + "provider": "Ericsson", + "participantType": { + "name": "org.onap.policy.acm.PolicyAutomationCompositionParticipant", + "version": "2.3.1" + }, + "participant_id": { + "name": "org.onap.PM_Policy", + "version": "1.0.0" + } + } + }, + "org.onap.domain.pmsh.DerivedDerivedPolicyAutomationCompositionElement": { + "version": "1.2.3", + "type": "org.onap.policy.clamp.acm.DerivedDerivedPolicyAutomationCompositionElement", + "type_version": "1.0.0", + "description": "Automation Composition for Performance Management Subscription Handling", + "properties": { + "provider": "Ericsson", + "participantType": { + "name": "org.onap.policy.acm.PolicyAutomationCompositionParticipant", + "version": "2.3.1" + }, + "participant_id": { + "name": "org.onap.PM_Policy", + "version": "1.0.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" + } + }, + "org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement": { + "version": "1.2.3", + "type": "org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement", + "type_version": "1.0.0", + "description": "Automation Composition element for the K8S microservice for PMSH", + "properties": { + "provider": "ONAP", + "participant_id": { + "name": "K8sParticipant0", + "version": "1.0.0" + }, + "participantType": { + "name": "org.onap.k8s.acm.K8SAutomationCompositionParticipant", + "version": "2.3.4" + }, + "chart": { + "chartId": { + "name": "dcae-pmsh", + "version": "8.0.0" + }, + "namespace": "onap", + "releaseName": "pmshms", + "repository": { + "repoName": "chartmuseum", + "protocol": "http", + "address": "10.152.183.120", + "port": 80, + "userName": "onapinitializer", + "password": "demo123456!" + }, + "overrideParams": { + "global.masterPassword": "test" + } + } + } + }, + "org.onap.domain.database.Local_K8SMicroserviceAutomationCompositionElement": { + "version": "1.2.3", + "type": "org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement", + "type_version": "1.0.0", + "description": "Automation Composition element for the K8S microservice for local chart", + "properties": { + "provider": "ONAP", + "participant_id": { + "name": "K8sParticipant0", + "version": "1.0.0" + }, + "participantType": { + "name": "org.onap.k8s.acm.K8SAutomationCompositionParticipant", + "version": "2.3.4" + }, + "chart": { + "chartId": { + "name": "nginx-ingress", + "version": "0.9.1" + }, + "releaseName": "nginxms", + "namespace": "test" + } + } + }, + "org.onap.acm.HttpAutomationCompositionParticipant": { + "version": "2.3.4", + "type": "org.onap.policy.clamp.acm.Participant", + "type_version": "1.0.1", + "description": "Participant for Http requests", + "properties": { + "provider": "ONAP" + } + }, + "org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement": { + "version": "1.2.3", + "type": "org.onap.policy.clamp.acm.HttpAutomationCompositionElement", + "type_version": "1.0.1", + "description": "Automation Composition element for the http requests of PMSH microservice", + "properties": { + "provider": "ONAP", + "participant_id": { + "name": "HttpParticipant0", + "version": "1.0.0" + }, + "participantType": { + "name": "org.onap.k8s.acm.HttpAutomationCompositionParticipant", + "version": "2.3.4" + }, + "uninitializedToPassiveTimeout": 180, + "startPhase": 1, + "baseUrl": "http://10.152.183.51:8500", + "httpHeaders": { + "Content-Type": "application/json" + }, + "configurationEntities": [ + { + "configurationEntityId": { + "name": "entity1", + "version": "1.0.1" + }, + "restSequence": [ + { + "restRequestId": { + "name": "request1", + "version": "1.0.1" + }, + "httpMethod": "PUT", + "path": "v1/kv/dcae-pmsh2", + "body": "{ \"automation_composition_name\":\"pmsh-automation_composition\", \"operational_policy_name\":\"pmsh-operational-policy\", \"aaf_password\":\"demo123456!\", \"aaf_identity\":\"dcae@dcae.onap.org\", \"cert_path\":\"/opt/app/pmsh/etc/certs/cert.pem\", \"key_path\":\"/opt/app/pmsh/etc/certs/key.pem\", \"ca_cert_path\":\"/opt/app/pmsh/etc/certs/cacert.pem\", \"enable_tls\":\"true\", \"pmsh_policy\":{ \"subscription\":{ \"subscriptionName\":\"ExtraPM-All-gNB-R2B\", \"administrativeState\":\"UNLOCKED\", \"fileBasedGP\":15, \"fileLocation\":\"\\/pm\\/pm.xml\", \"nfFilter\":{ \"nfNames\":[ \"^pnf.*\", \"^vnf.*\" ], \"modelInvariantIDs\":[ ], \"modelVersionIDs\":[ ], \"modelNames\":[ ] }, \"measurementGroups\":[ { \"measurementGroup\":{ \"measurementTypes\":[ { \"measurementType\":\"countera\" }, { \"measurementType\":\"counterb\" } ], \"managedObjectDNsBasic\":[ { \"DN\":\"dna\" }, { \"DN\":\"dnb\" } ] } }, { \"measurementGroup\":{ \"measurementTypes\":[ { \"measurementType\":\"counterc\" }, { \"measurementType\":\"counterd\" } ], \"managedObjectDNsBasic\":[ { \"DN\":\"dnc\" }, { \"DN\":\"dnd\" } ] } } ] } }, \"streams_subscribes\":{ \"aai_subscriber\":{ \"type\":\"message_router\", \"dmaap_info\":{ \"topic_url\":\"https://10.152.183.151:3905/events/AAI_EVENT\", \"client_role\":\"org.onap.dcae.aaiSub\", \"location\":\"san-francisco\", \"client_id\":\"1575976809466\" } }, \"policy_pm_subscriber\":{ \"type\":\"message_router\", \"dmaap_info\":{ \"topic_url\":\"https://10.152.183.151:3905/events/org.onap.dmaap.mr.PM_SUBSCRIPTIONS\", \"client_role\":\"org.onap.dcae.pmSubscriber\", \"location\":\"san-francisco\", \"client_id\":\"1575876809456\" } } }, \"streams_publishes\":{ \"policy_pm_publisher\":{ \"type\":\"message_router\", \"dmaap_info\":{ \"topic_url\":\"https://10.152.183.151:3905/events/org.onap.dmaap.mr.PM_SUBSCRIPTIONS\", \"client_role\":\"org.onap.dcae.pmPublisher\", \"location\":\"san-francisco\", \"client_id\":\"1475976809466\" } }, \"other_publisher\":{ \"type\":\"message_router\", \"dmaap_info\":{ \"topic_url\":\"https://10.152.183.151:3905/events/org.onap.dmaap.mr.SOME_OTHER_TOPIC\", \"client_role\":\"org.onap.dcae.pmControlPub\", \"location\":\"san-francisco\", \"client_id\":\"1875976809466\" } } } }", + "expectedResponse": 200 + } + ] + } + ] + } + }, + "org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition": { + "version": "1.2.3", + "type": "org.onap.policy.clamp.acm.AutomationComposition", + "type_version": "1.0.0", + "description": "Automation Composition for Hello World", + "properties": { + "provider": "ONAP", + "elements": [ + { + "name": "org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement", + "version": "1.2.3" + }, + { + "name": "org.onap.domain.database.Local_K8SMicroserviceAutomationCompositionElement", + "version": "1.2.3" + }, + { + "name": "org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement", + "version": "1.2.3" + }, + { + "name": "org.onap.domain.pmsh.DerivedPolicyAutomationCompositionElement", + "version": "1.2.3" + }, + { + "name": "org.onap.domain.pmsh.DerivedDerivedPolicyAutomationCompositionElement", + "version": "1.2.3" + }, + { + "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement", + "version": "1.2.3" + }, + { + "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement", + "version": "1.2.3" + } + ] + } + } + } + } +} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/sample_control_loop.json b/plugins/forwarding-plugins/src/test/resources/parameters/sample_control_loop.json deleted file mode 100644 index 20dedc50..00000000 --- a/plugins/forwarding-plugins/src/test/resources/parameters/sample_control_loop.json +++ /dev/null @@ -1,1022 +0,0 @@ -{ - "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\nentity that generated the ONSET event will be the target.\n", - "required": false, - "metadata": { - "clamp_possible_values": "ClampExecution:CSAR_RESOURCES" - }, - "entry_schema": { - "type": "string" - } - } - } - }, - "onap.datatype.controlloop.Actor": { - "derived_from": "tosca.datatypes.Root", - "description": "An actor/operation/target definition", - "properties": { - "actor": { - "type": "string", - "description": "The actor performing the operation.", - "required": true, - "metadata": { - "clamp_possible_values": "Dictionary:DefaultActors,ClampExecution:CDS/actor" - } - }, - "operation": { - "type": "string", - "description": "The operation the actor is performing.", - "metadata": { - "clamp_possible_values": "Dictionary:DefaultOperations,ClampExecution:CDS/operation" - }, - "required": true - }, - "target": { - "type": "onap.datatype.controlloop.Target", - "description": "The resource the operation should be performed on.", - "required": true - }, - "payload": { - "type": "map", - "description": "Name/value pairs of payload information passed by Policy to the actor", - "required": false, - "metadata": { - "clamp_possible_values": "ClampExecution:CDS/payload" - }, - "entry_schema": { - "type": "string" - } - } - } - }, - "onap.datatype.controlloop.Operation": { - "derived_from": "tosca.datatypes.Root", - "description": "An operation supported by an actor", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the operation", - "required": true - }, - "description": { - "type": "string", - "description": "A user-friendly description of the intent for the operation", - "required": false - }, - "operation": { - "type": "onap.datatype.controlloop.Actor", - "description": "The definition of the operation to be performed.", - "required": true - }, - "timeout": { - "type": "integer", - "description": "The amount of time for the actor to perform the operation.", - "required": true - }, - "retries": { - "type": "integer", - "description": "The number of retries the actor should attempt to perform the operation.", - "required": true, - "default": 0 - }, - "success": { - "type": "string", - "description": "Points to the operation to invoke on success. A value of \"final_success\" indicates and end to the operation.", - "required": false, - "default": "final_success" - }, - "failure": { - "type": "string", - "description": "Points to the operation to invoke on Actor operation failure.", - "required": false, - "default": "final_failure" - }, - "failure_timeout": { - "type": "string", - "description": "Points to the operation to invoke when the time out for the operation occurs.", - "required": false, - "default": "final_failure_timeout" - }, - "failure_retries": { - "type": "string", - "description": "Points to the operation to invoke when the current operation has exceeded its max retries.", - "required": false, - "default": "final_failure_retries" - }, - "failure_exception": { - "type": "string", - "description": "Points to the operation to invoke when the current operation causes an exception.", - "required": false, - "default": "final_failure_exception" - }, - "failure_guard": { - "type": "string", - "description": "Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.", - "required": false, - "default": "final_failure_guard" - } - } - }, - "onap.datatypes.monitoring.managedObjectDNsBasic": { - "constraints": [], - "properties": { - "DN": { - "name": "DN", - "type": "string", - "typeVersion": "0.0.0", - "description": "Managed object distinguished name", - "required": true, - "constraints": [], - "metadata": {} - } - }, - "name": "onap.datatypes.monitoring.managedObjectDNsBasic", - "version": "0.0.0", - "derived_from": "tosca.datatypes.Root", - "metadata": {} - }, - "onap.datatypes.monitoring.managedObjectDNsBasics": { - "constraints": [], - "properties": { - "managedObjectDNsBasic": { - "name": "managedObjectDNsBasic", - "type": "map", - "typeVersion": "0.0.0", - "description": "Managed object distinguished name object", - "required": true, - "constraints": [], - "entry_schema": { - "type": "onap.datatypes.monitoring.managedObjectDNsBasic", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - } - }, - "name": "onap.datatypes.monitoring.managedObjectDNsBasics", - "version": "0.0.0", - "derived_from": "tosca.datatypes.Root", - "metadata": {} - }, - "onap.datatypes.monitoring.measurementGroup": { - "constraints": [], - "properties": { - "measurementTypes": { - "name": "measurementTypes", - "type": "list", - "typeVersion": "0.0.0", - "description": "List of measurement types", - "required": true, - "constraints": [], - "entry_schema": { - "type": "onap.datatypes.monitoring.measurementTypes", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - }, - "managedObjectDNsBasic": { - "name": "managedObjectDNsBasic", - "type": "list", - "typeVersion": "0.0.0", - "description": "List of managed object distinguished names", - "required": true, - "constraints": [], - "entry_schema": { - "type": "onap.datatypes.monitoring.managedObjectDNsBasics", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - } - }, - "name": "onap.datatypes.monitoring.measurementGroup", - "version": "0.0.0", - "derived_from": "tosca.datatypes.Root", - "metadata": {} - }, - "onap.datatypes.monitoring.measurementGroups": { - "constraints": [], - "properties": { - "measurementGroup": { - "name": "measurementGroup", - "type": "map", - "typeVersion": "0.0.0", - "description": "Measurement Group", - "required": true, - "constraints": [], - "entry_schema": { - "type": "onap.datatypes.monitoring.measurementGroup", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - } - }, - "name": "onap.datatypes.monitoring.measurementGroups", - "version": "0.0.0", - "derived_from": "tosca.datatypes.Root", - "metadata": {} - }, - "onap.datatypes.monitoring.measurementType": { - "constraints": [], - "properties": { - "measurementType": { - "name": "measurementType", - "type": "string", - "typeVersion": "0.0.0", - "description": "Measurement type", - "required": true, - "constraints": [], - "metadata": {} - } - }, - "name": "onap.datatypes.monitoring.measurementType", - "version": "0.0.0", - "derived_from": "tosca.datatypes.Root", - "metadata": {} - }, - "onap.datatypes.monitoring.measurementTypes": { - "constraints": [], - "properties": { - "measurementType": { - "name": "measurementType", - "type": "map", - "typeVersion": "0.0.0", - "description": "Measurement type object", - "required": true, - "constraints": [], - "entry_schema": { - "type": "onap.datatypes.monitoring.measurementType", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - } - }, - "name": "onap.datatypes.monitoring.measurementTypes", - "version": "0.0.0", - "derived_from": "tosca.datatypes.Root", - "metadata": {} - }, - "onap.datatypes.monitoring.nfFilter": { - "constraints": [], - "properties": { - "modelNames": { - "name": "modelNames", - "type": "list", - "typeVersion": "0.0.0", - "description": "List of model names", - "required": true, - "constraints": [], - "entry_schema": { - "type": "string", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - }, - "modelInvariantIDs": { - "name": "modelInvariantIDs", - "type": "list", - "typeVersion": "0.0.0", - "description": "List of model invariant IDs", - "required": true, - "constraints": [], - "entry_schema": { - "type": "string", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - }, - "modelVersionIDs": { - "name": "modelVersionIDs", - "type": "list", - "typeVersion": "0.0.0", - "description": "List of model version IDs", - "required": true, - "constraints": [], - "entry_schema": { - "type": "string", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - }, - "nfNames": { - "name": "nfNames", - "type": "list", - "typeVersion": "0.0.0", - "description": "List of network functions", - "required": true, - "constraints": [], - "entry_schema": { - "type": "string", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - } - }, - "name": "onap.datatypes.monitoring.nfFilter", - "version": "0.0.0", - "derived_from": "tosca.datatypes.Root", - "metadata": {} - }, - "onap.datatypes.monitoring.subscription": { - "constraints": [], - "properties": { - "measurementGroups": { - "name": "measurementGroups", - "type": "list", - "typeVersion": "0.0.0", - "description": "Measurement Groups", - "required": true, - "constraints": [], - "entry_schema": { - "type": "onap.datatypes.monitoring.measurementGroups", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - }, - "fileBasedGP": { - "name": "fileBasedGP", - "type": "integer", - "typeVersion": "0.0.0", - "description": "File based granularity period", - "required": true, - "constraints": [], - "metadata": {} - }, - "fileLocation": { - "name": "fileLocation", - "type": "string", - "typeVersion": "0.0.0", - "description": "ROP file location", - "required": true, - "constraints": [], - "metadata": {} - }, - "subscriptionName": { - "name": "subscriptionName", - "type": "string", - "typeVersion": "0.0.0", - "description": "Name of the subscription", - "required": true, - "constraints": [], - "metadata": {} - }, - "administrativeState": { - "name": "administrativeState", - "type": "string", - "typeVersion": "0.0.0", - "description": "State of the subscription", - "required": true, - "constraints": [ - { - "valid_values": [ - "LOCKED", - "UNLOCKED" - ] - } - ], - "metadata": {} - }, - "nfFilter": { - "name": "nfFilter", - "type": "map", - "typeVersion": "0.0.0", - "description": "Network function filter", - "required": true, - "constraints": [], - "entry_schema": { - "type": "onap.datatypes.monitoring.nfFilter", - "typeVersion": "0.0.0", - "constraints": [] - }, - "metadata": {} - } - }, - "name": "onap.datatypes.monitoring.subscription", - "version": "0.0.0", - "derived_from": "tosca.datatypes.Root", - "metadata": {} - }, - "org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.RestRequest": { - "version": "1.0.0", - "derived_from": "tosca.datatypes.Root", - "properties": { - "restRequestId": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "typeVersion": "1.0.0", - "required": true, - "description": "The name and version of a REST request to be sent to a REST endpoint" - }, - "httpMethod": { - "type": "string", - "required": true, - "constraints": [ - { - "valid_values": [ - "POST", - "PUT", - "GET", - "DELETE" - ] - } - ], - "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.controlloop.httpControlLoopElement.ConfigurationEntity": { - "version": "1.0.0", - "derived_from": "tosca.datatypes.Root", - "properties": { - "configurationEntityId": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "typeVersion": "1.0.0", - "required": true, - "description": "The name and version of a Configuration Entity to be handled by the HTTP Control Loop Element" - }, - "restSequence": { - "type": "list", - "entry_schema": { - "type": "org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.RestRequest", - "typeVersion": "1.0.0" - }, - "description": "A sequence of REST commands to send to the REST endpoint" - } - } - } - } - }, - "node_types": { - "org.onap.policy.clamp.controlloop.Participant": { - "version": "1.0.1", - "derived_from": "tosca.nodetypes.Root", - "properties": { - "provider": { - "type": "string", - "requred": false - } - } - }, - "org.onap.policy.clamp.controlloop.ControlLoopElement": { - "version": "1.0.1", - "derived_from": "tosca.nodetypes.Root", - "properties": { - "provider": { - "type": "string", - "required": false, - "metadata": { - "common": true - }, - "description": "Specifies the organization that provides the control loop element" - }, - "participant_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "requred": 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 Control Loop Element" - }, - "startPhase": { - "type": "integer", - "required": false, - "constraints": [ - { - "greater_or_equal": 0 - } - ], - "metadata": { - "common": true - }, - "description": "A value indicating the start phase in which this control loop element will be started, the first start phase is zero. Control Loop Elements are started in their start_phase order and stopped in reverse start phase order. Control Loop Elements with the same start phase are started and stopped simultaneously" - }, - "uninitializedToPassiveTimeout": { - "type": "integer", - "required": false, - "constraints": [ - { - "greater_or_equal": 0 - } - ], - "default": 60, - "metadata": { - "common": true - }, - "description": "The maximum time in seconds to wait for a state chage from uninitialized to passive" - }, - "passiveToRunningTimeout": { - "type": "integer", - "required": false, - "constraints": [ - { - "greater_or_equal": 0 - } - ], - "default": 60, - "metadata": { - "common": true - }, - "description": "The maximum time in seconds to wait for a state chage from passive to running" - }, - "runningToPassiveTimeout": { - "type": "integer", - "required": false, - "constraints": [ - { - "greater_or_equal": 0 - } - ], - "default": 60, - "metadata": { - "common": true - }, - "description": "The maximum time in seconds to wait for a state chage from running to passive" - }, - "passiveToUninitializedTimeout": { - "type": "integer", - "required": false, - "constraints": [ - { - "greater_or_equal": 0 - } - ], - "default": 60, - "metadata": { - "common": true - }, - "description": "The maximum time in seconds to wait for a state chage from passive to uninitialized" - } - } - }, - "org.onap.policy.clamp.controlloop.ControlLoop": { - "version": "1.0.1", - "derived_from": "tosca.nodetypes.Root", - "properties": { - "provider": { - "type": "string", - "required": false, - "metadata": { - "common": true - }, - "description": "Specifies the organization that provides the control loop element" - }, - "elements": { - "type": "list", - "required": true, - "metadata": { - "common": true - }, - "entry_schema": { - "type": "onap.datatypes.ToscaConceptIdentifier" - }, - "description": "Specifies a list of control loop element definitions that make up this control loop definition" - } - } - }, - "org.onap.policy.clamp.controlloop.PolicyControlLoopElement": { - "version": "1.0.1", - "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement", - "properties": { - "policy_type_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "requred": true - }, - "policy_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "requred": false - } - } - }, - "org.onap.policy.clamp.controlloop.DerivedPolicyControlLoopElement": { - "version": "1.0.1", - "derived_from": "org.onap.policy.clamp.controlloop.PolicyControlLoopElement", - "properties": { - "policy_type_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "requred": true - }, - "policy_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "requred": false - } - } - }, - "org.onap.policy.clamp.controlloop.DerivedDerivedPolicyControlLoopElement": { - "version": "1.0.1", - "derived_from": "org.onap.policy.clamp.controlloop.DerivedPolicyControlLoopElement", - "properties": { - "policy_type_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "requred": true - }, - "policy_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "requred": false - } - } - }, - "org.onap.policy.clamp.controlloop.CDSControlLoopElement": { - "version": "1.0.1", - "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement", - "properties": { - "cds_blueprint_id": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "requred": true - } - } - }, - "org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement": { - "version": "1.0.1", - "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement", - "properties": { - "chart": { - "type": "string", - "required": true - }, - "configs": { - "type": "list", - "required": false - }, - "requirements": { - "type": "string", - "requred": false - }, - "templates": { - "type": "list", - "required": false, - "entry_schema": null - }, - "values": { - "type": "string", - "requred": true - } - } - }, - "org.onap.policy.clamp.controlloop.HttpControlLoopElement": { - "version": "1.0.1", - "derived_from": "org.onap.policy.clamp.controlloop.ControlLoopElement", - "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.controlloop.httpControlLoopElement.ConfigurationEntity", - "typeVersion": "1.0.0" - }, - "description": "The connfiguration entities the Control Loop Element is managing and their associated REST requests" - } - } - } - }, - "topology_template": { - "inputs": { - "pmsh_monitoring_policy": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "description": "The ID of the PMSH monitoring policy to use", - "default": { - "name": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0test", - "version": "1.0.0" - } - }, - "pmsh_operational_policy": { - "type": "onap.datatypes.ToscaConceptIdentifier", - "description": "The ID of the PMSH operational policy to use", - "default": { - "name": "operational.apex.pmcontrol", - "version": "1.0.0" - } - } - }, - "node_templates": { - "org.onap.policy.controlloop.PolicyControlLoopParticipant": { - "version": "2.3.1", - "type": "org.onap.policy.clamp.controlloop.Participant", - "type_version": "1.0.1", - "description": "Participant for DCAE microservices", - "properties": { - "provider": "ONAP" - } - }, - "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.controlloop.PolicyControlLoopElement", - "type_version": "1.0.0", - "description": "Control loop element for the monitoring policy for Performance Management Subscription Handling", - "properties": { - "provider": "Ericsson", - "participant_id": { - "name": "org.onap.PM_Policy", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant", - "version": "2.3.1" - }, - "policy_type_id": { - "name": "onap.policies.monitoring.pm-subscription-handler", - "version": "1.0.0" - }, - "policy_id": { - "get_input": "pmsh_monitoring_policy" - } - } - }, - "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.controlloop.PolicyControlLoopElement", - "type_version": "1.0.0", - "description": "Control loop element for the operational policy for Performance Management Subscription Handling", - "properties": { - "provider": "Ericsson", - "participant_id": { - "name": "org.onap.PM_Policy", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant", - "version": "2.3.1" - }, - "policy_type_id": { - "name": "onap.policies.operational.pm-subscription-handler", - "version": "1.0.0" - }, - "policy_id": { - "get_input": "pmsh_operational_policy" - } - } - }, - "org.onap.domain.pmsh.DerivedPolicyControlLoopElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.controlloop.DerivedPolicyControlLoopElement", - "type_version": "1.0.0", - "description": "Control loop for Performance Management Subscription Handling", - "properties": { - "provider": "Ericsson", - "participantType": { - "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant", - "version": "2.3.1" - }, - "participant_id": { - "name": "org.onap.PM_Policy", - "version": "1.0.0" - } - } - }, - "org.onap.domain.pmsh.DerivedDerivedPolicyControlLoopElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.controlloop.DerivedDerivedPolicyControlLoopElement", - "type_version": "1.0.0", - "description": "Control loop for Performance Management Subscription Handling", - "properties": { - "provider": "Ericsson", - "participantType": { - "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant", - "version": "2.3.1" - }, - "participant_id": { - "name": "org.onap.PM_Policy", - "version": "1.0.0" - } - } - }, - "org.onap.k8s.controlloop.K8SControlLoopParticipant": { - "version": "2.3.4", - "type": "org.onap.policy.clamp.controlloop.Participant", - "type_version": "1.0.1", - "description": "Participant for K8S", - "properties": { - "provider": "ONAP" - } - }, - "org.onap.domain.database.PMSH_K8SMicroserviceControlLoopElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement", - "type_version": "1.0.0", - "description": "Control loop element for the K8S microservice for PMSH", - "properties": { - "provider": "ONAP", - "participant_id": { - "name": "K8sParticipant0", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.k8s.controlloop.K8SControlLoopParticipant", - "version": "2.3.4" - }, - "chart": { - "chartId": { - "name": "dcae-pmsh", - "version": "8.0.0" - }, - "namespace": "onap", - "releaseName": "pmshms", - "repository": { - "repoName": "chartmuseum", - "protocol": "http", - "address": "10.152.183.120", - "port": 80, - "userName": "onapinitializer", - "password": "demo123456!" - }, - "overrideParams": { - "global.masterPassword": "test" - } - } - } - }, - "org.onap.domain.database.Local_K8SMicroserviceControlLoopElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement", - "type_version": "1.0.0", - "description": "Control loop element for the K8S microservice for local chart", - "properties": { - "provider": "ONAP", - "participant_id": { - "name": "K8sParticipant0", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.k8s.controlloop.K8SControlLoopParticipant", - "version": "2.3.4" - }, - "chart": { - "chartId": { - "name": "nginx-ingress", - "version": "0.9.1" - }, - "releaseName": "nginxms", - "namespace": "test" - } - } - }, - "org.onap.controlloop.HttpControlLoopParticipant": { - "version": "2.3.4", - "type": "org.onap.policy.clamp.controlloop.Participant", - "type_version": "1.0.1", - "description": "Participant for Http requests", - "properties": { - "provider": "ONAP" - } - }, - "org.onap.domain.database.Http_PMSHMicroserviceControlLoopElement": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.controlloop.HttpControlLoopElement", - "type_version": "1.0.1", - "description": "Control loop element for the http requests of PMSH microservice", - "properties": { - "provider": "ONAP", - "participant_id": { - "name": "HttpParticipant0", - "version": "1.0.0" - }, - "participantType": { - "name": "org.onap.k8s.controlloop.HttpControlLoopParticipant", - "version": "2.3.4" - }, - "uninitializedToPassiveTimeout": 180, - "startPhase": 1, - "baseUrl": "http://10.152.183.51:8500", - "httpHeaders": { - "Content-Type": "application/json" - }, - "configurationEntities": [ - { - "configurationEntityId": { - "name": "entity1", - "version": "1.0.1" - }, - "restSequence": [ - { - "restRequestId": { - "name": "request1", - "version": "1.0.1" - }, - "httpMethod": "PUT", - "path": "v1/kv/dcae-pmsh2", - "body": "{ \"control_loop_name\":\"pmsh-control-loop\", \"operational_policy_name\":\"pmsh-operational-policy\", \"aaf_password\":\"demo123456!\", \"aaf_identity\":\"dcae@dcae.onap.org\", \"cert_path\":\"/opt/app/pmsh/etc/certs/cert.pem\", \"key_path\":\"/opt/app/pmsh/etc/certs/key.pem\", \"ca_cert_path\":\"/opt/app/pmsh/etc/certs/cacert.pem\", \"enable_tls\":\"true\", \"pmsh_policy\":{ \"subscription\":{ \"subscriptionName\":\"ExtraPM-All-gNB-R2B\", \"administrativeState\":\"UNLOCKED\", \"fileBasedGP\":15, \"fileLocation\":\"\\/pm\\/pm.xml\", \"nfFilter\":{ \"nfNames\":[ \"^pnf.*\", \"^vnf.*\" ], \"modelInvariantIDs\":[ ], \"modelVersionIDs\":[ ], \"modelNames\":[ ] }, \"measurementGroups\":[ { \"measurementGroup\":{ \"measurementTypes\":[ { \"measurementType\":\"countera\" }, { \"measurementType\":\"counterb\" } ], \"managedObjectDNsBasic\":[ { \"DN\":\"dna\" }, { \"DN\":\"dnb\" } ] } }, { \"measurementGroup\":{ \"measurementTypes\":[ { \"measurementType\":\"counterc\" }, { \"measurementType\":\"counterd\" } ], \"managedObjectDNsBasic\":[ { \"DN\":\"dnc\" }, { \"DN\":\"dnd\" } ] } } ] } }, \"streams_subscribes\":{ \"aai_subscriber\":{ \"type\":\"message_router\", \"dmaap_info\":{ \"topic_url\":\"https://10.152.183.151:3905/events/AAI_EVENT\", \"client_role\":\"org.onap.dcae.aaiSub\", \"location\":\"san-francisco\", \"client_id\":\"1575976809466\" } }, \"policy_pm_subscriber\":{ \"type\":\"message_router\", \"dmaap_info\":{ \"topic_url\":\"https://10.152.183.151:3905/events/org.onap.dmaap.mr.PM_SUBSCRIPTIONS\", \"client_role\":\"org.onap.dcae.pmSubscriber\", \"location\":\"san-francisco\", \"client_id\":\"1575876809456\" } } }, \"streams_publishes\":{ \"policy_pm_publisher\":{ \"type\":\"message_router\", \"dmaap_info\":{ \"topic_url\":\"https://10.152.183.151:3905/events/org.onap.dmaap.mr.PM_SUBSCRIPTIONS\", \"client_role\":\"org.onap.dcae.pmPublisher\", \"location\":\"san-francisco\", \"client_id\":\"1475976809466\" } }, \"other_publisher\":{ \"type\":\"message_router\", \"dmaap_info\":{ \"topic_url\":\"https://10.152.183.151:3905/events/org.onap.dmaap.mr.SOME_OTHER_TOPIC\", \"client_role\":\"org.onap.dcae.pmControlPub\", \"location\":\"san-francisco\", \"client_id\":\"1875976809466\" } } } }", - "expectedResponse": 200 - } - ] - } - ] - } - }, - "org.onap.domain.sample.GenericK8s_ControlLoopDefinition": { - "version": "1.2.3", - "type": "org.onap.policy.clamp.controlloop.ControlLoop", - "type_version": "1.0.0", - "description": "Control loop for Hello World", - "properties": { - "provider": "ONAP", - "elements": [ - { - "name": "org.onap.domain.database.PMSH_K8SMicroserviceControlLoopElement", - "version": "1.2.3" - }, - { - "name": "org.onap.domain.database.Local_K8SMicroserviceControlLoopElement", - "version": "1.2.3" - }, - { - "name": "org.onap.domain.database.Http_PMSHMicroserviceControlLoopElement", - "version": "1.2.3" - }, - { - "name": "org.onap.domain.pmsh.DerivedPolicyControlLoopElement", - "version": "1.2.3" - }, - { - "name": "org.onap.domain.pmsh.DerivedDerivedPolicyControlLoopElement", - "version": "1.2.3" - }, - { - "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement", - "version": "1.2.3" - }, - { - "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement", - "version": "1.2.3" - } - ] - } - } - } - } -} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy.json b/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy.json index d8651ce4..adbf12a2 100644 --- a/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy.json +++ b/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy.json @@ -4,12 +4,12 @@ "policies": [ { "operational.sampledomain": { - "type": "onap.policies.controlloop.operational.Apex", + "type": "onap.policies.acm.operational.Apex", "typeVersion": "1.0.0", - "name": "onap.policies.controlloop.operational.apex.Sampledomain", + "name": "onap.policies.acm.operational.apex.Sampledomain", "version": "1.0.0", "metadata": { - "policy-id": "onap.policies.controlloop.operational.apex.Sampledomain" + "policy-id": "onap.policies.acm.operational.apex.Sampledomain" }, "properties": { "content": { @@ -37,7 +37,7 @@ "jsonAdapters": { "Instant": { "adaptedClass": "java.time.Instant", - "adaptorClass": "org.onap.policy.controlloop.util.Serialization$GsonInstantAdapter" + "adaptorClass": "org.onap.policy.acm.util.Serialization$GsonInstantAdapter" }, "APPC_LCM_REQUEST": { "adaptedClass": "org.onap.policy.appclcm.LcmRequest", @@ -98,4 +98,4 @@ } ] } -} \ No newline at end of file +} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy_failure.json b/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy_failure.json index 1d30f08b..08ba6997 100644 --- a/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy_failure.json +++ b/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy_failure.json @@ -4,12 +4,12 @@ "policies": [ { "operational.sampledomain": { - "type": "onap.policies.controlloop.operational.ApexFailure", + "type": "onap.policies.acm.operational.ApexFailure", "typeVersion": "1.0.0", - "name": "onap.policies.controlloop.operational.apex.Sampledomain", + "name": "onap.policies.acm.operational.apex.Sampledomain", "version": "1.0.0", "metadata": { - "policy-id": "onap.policies.controlloop.operational.apex.Sampledomain" + "policy-id": "onap.policies.acm.operational.apex.Sampledomain" }, "properties": { "content": { @@ -37,7 +37,7 @@ "jsonAdapters": { "Instant": { "adaptedClass": "java.time.Instant", - "adaptorClass": "org.onap.policy.controlloop.util.Serialization$GsonInstantAdapter" + "adaptorClass": "org.onap.policy.acm.util.Serialization$GsonInstantAdapter" }, "APPC_LCM_REQUEST": { "adaptedClass": "org.onap.policy.appclcm.LcmRequest", @@ -98,4 +98,4 @@ } ] } -} \ No newline at end of file +} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy_type.json b/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy_type.json index 810d970d..6aead75c 100644 --- a/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy_type.json +++ b/plugins/forwarding-plugins/src/test/resources/parameters/sample_policy_type.json @@ -1,40 +1,40 @@ { "tosca_definitions_version": "tosca_simple_yaml_1_0_0", "policy_types": { - "onap.policies.controlloop.operational.Apex": { + "onap.policies.acm.operational.Apex": { "version": "1.0.0", - "description": "Operational Policy for Control Loops using the APEX PDP", + "description": "Operational Policy for Automation Compositions using the APEX PDP", "properties": { "engine_service": { - "type": "onap.datatypes.policies.controlloop.operational.apex.EngineService", + "type": "onap.datatypes.policies.acm.operational.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.policies.controlloop.operational.apex.EventHandler" + "type": "onap.datatypes.policies.acm.operational.apex.EventHandler" } }, "outputs": { "type": "map", "description": "Outputs for handling events going out of the APEX engine", "entry_schema": { - "type": "onap.datatypes.policies.controlloop.operational.apex.EventHandler" + "type": "onap.datatypes.policies.acm.operational.apex.EventHandler" } }, "environment": { "type": "list", "description": "Envioronmental parameters for the APEX engine", "entry_schema": { - "type": "onap.datatypes.policies.controlloop.operational.apex.Environment" + "type": "onap.datatypes.policies.acm.operational.apex.Environment" } } } } }, "data_types": { - "onap.datatypes.policies.controlloop.operational.apex.EngineService": { + "onap.datatypes.policies.acm.operational.apex.EngineService": { "derived_from": "tosca.datatypes.Root", "properties": { "name": { @@ -84,13 +84,13 @@ "default": 0 }, "engine": { - "type": "onap.datatypes.policies.controlloop.operational.apex.engineservice.Engine", + "type": "onap.datatypes.policies.acm.operational.apex.engineservice.Engine", "description": "The parameters for all engines in the APEX engine service", "required": true } } }, - "onap.datatypes.policies.controlloop.operational.apex.EventHandler": { + "onap.datatypes.policies.acm.operational.apex.EventHandler": { "derived_from": "tosca.datatypes.Root", "properties": { "name": { @@ -99,12 +99,12 @@ "required": false }, "carrier_technology": { - "type": "onap.datatypes.policies.controlloop.operational.apex.CarrierTechnology", + "type": "onap.datatypes.policies.acm.operational.apex.CarrierTechnology", "description": "Specifies the carrier technology of the event handler (such as REST/Web Socket/Kafka)", "required": true }, "event_protocol": { - "type": "onap.datatypes.policies.controlloop.operational.apex.EventProtocol", + "type": "onap.datatypes.policies.acm.operational.apex.EventProtocol", "description": "Specifies the event protocol of events for the event handler (such as Yaml/JSON/XML/POJO)", "required": true }, @@ -156,7 +156,7 @@ } } }, - "onap.datatypes.policies.controlloop.operational.apex.CarrierTechnology": { + "onap.datatypes.policies.acm.operational.apex.CarrierTechnology": { "derived_from": "tosca.datatypes.Root", "properties": { "label": { @@ -171,7 +171,7 @@ } } }, - "onap.datatypes.policies.controlloop.operational.apex.EventProtocol": { + "onap.datatypes.policies.acm.operational.apex.EventProtocol": { "derived_from": "tosca.datatypes.Root", "properties": { "label": { @@ -186,7 +186,7 @@ } } }, - "onap.datatypes.policies.controlloop.operational.apex.Environmental": { + "onap.datatypes.policies.acm.operational.apex.Environmental": { "derived_from": "tosca.datatypes.Root", "properties": { "name": { @@ -201,11 +201,11 @@ } } }, - "onap.datatypes.policies.controlloop.operational.apex.engineservice.Engine": { + "onap.datatypes.policies.acm.operational.apex.engineservice.Engine": { "derived_from": "tosca.datatypes.Root", "properties": { "context": { - "type": "onap.datatypes.policies.controlloop.operational.apex.engineservice.engine.Context", + "type": "onap.datatypes.policies.acm.operational.apex.engineservice.engine.Context", "description": "The properties for handling context in APEX engines, defaults to using Java maps for context", "required": false }, @@ -220,11 +220,11 @@ } } }, - "onap.datatypes.policies.controlloop.operational.apex.engineservice.engine.Context": { + "onap.datatypes.policies.acm.operational.apex.engineservice.engine.Context": { "derived_from": "tosca.datatypes.Root", "properties": { "distributor": { - "type": "onap.datatypes.policies.controlloop.operational.apex.Plugin", + "type": "onap.datatypes.policies.acm.operational.apex.Plugin", "description": "The plugin to be used for distributing context between APEX PDPs at runtime", "required": false }, @@ -233,22 +233,22 @@ "description": "The plugins for context schemas available in APEX PDPs such as Java and Avro", "required": false, "entry_schema": { - "type": "onap.datatypes.policies.controlloop.operational.apex.Plugin" + "type": "onap.datatypes.policies.acm.operational.apex.Plugin" } }, "locking": { - "type": "onap.datatypes.policies.controlloop.operational.apex.plugin", + "type": "onap.datatypes.policies.acm.operational.apex.plugin", "description": "The plugin to be used for locking context in and between APEX PDPs at runtime", "required": false }, "persistence": { - "type": "onap.datatypes.policies.controlloop.operational.apex.Plugin", + "type": "onap.datatypes.policies.acm.operational.apex.Plugin", "description": "The plugin to be used for persisting context for APEX PDPs at runtime", "required": false } } }, - "onap.datatypes.policies.controlloop.operational.apex.Plugin": { + "onap.datatypes.policies.acm.operational.apex.Plugin": { "derived_from": "tosca.datatypes.Root", "properties": { "name": { @@ -263,4 +263,4 @@ } } } -} \ No newline at end of file +} diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsar.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsar.java new file mode 100644 index 00000000..7bfcb0f9 --- /dev/null +++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsar.java @@ -0,0 +1,117 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.reception.decoding.policy.file; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Enumeration; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import org.onap.policy.common.parameters.ParameterService; +import org.onap.policy.common.utils.coder.CoderException; +import org.onap.policy.distribution.model.Csar; +import org.onap.policy.distribution.model.PolicyInput; +import org.onap.policy.distribution.reception.decoding.PolicyDecoder; +import org.onap.policy.distribution.reception.decoding.PolicyDecodingException; +import org.onap.policy.distribution.reception.util.ReceptionUtil; +import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity; +import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; + +/** + * This class extracts acm information from a CSAR file. + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +public class AutomationCompositionDecoderFileInCsar implements PolicyDecoder { + + private AutomationCompositionDecoderFileInCsarParameterGroup decoderParameters; + private static final String NODE_TYPES = "nodes.yml"; + private static final String DATA_TYPES = "data.yml"; + + /** + * {@inheritDoc}. + */ + @Override + public void configure(final String parameterGroupName) { + decoderParameters = ParameterService.get(parameterGroupName); + } + + /** + * {@inheritDoc}. + */ + @Override + public boolean canHandle(final PolicyInput policyInput) { + return policyInput.getClass().isAssignableFrom(Csar.class); + } + + /** + * {@inheritDoc}. + */ + @Override + public Collection decode(final Csar csar) throws PolicyDecodingException { + final Collection automationCompositionList = new ArrayList<>(); + ToscaServiceTemplate nodeTypes = null; + ToscaServiceTemplate dataTypes = null; + + try (var zipFile = new ZipFile(csar.getCsarFilePath())) { + final Enumeration entries = zipFile.entries(); + while (entries.hasMoreElements()) { + // + // Sonar will flag this as a Security Hotspot + // "Expanding archive files is security-sensitive" + // isZipEntryValid ensures the file being read exists in the archive + // + final ZipEntry entry = entries.nextElement(); // NOSONAR + final String entryName = entry.getName(); + + // Store node_types + if (entryName.contains(NODE_TYPES)) { + nodeTypes = ReceptionUtil.decodeFile(zipFile, entry); + } + + // Store data_types + if (entryName.contains(DATA_TYPES)) { + dataTypes = ReceptionUtil.decodeFile(zipFile, entry); + } + + if (entryName.contains(decoderParameters.getAutomationCompositionType())) { + ReceptionUtil.validateZipEntry(entryName, csar.getCsarFilePath(), entry.getSize()); + final ToscaServiceTemplate automationComposition = ReceptionUtil.decodeFile(zipFile, entry); + if (null != automationComposition.getToscaTopologyTemplate()) { + if (null != nodeTypes) { + automationComposition.setNodeTypes(nodeTypes.getNodeTypes()); + } + if (null != dataTypes) { + automationComposition.setDataTypes(dataTypes.getDataTypes()); + } + automationCompositionList.add(automationComposition); + } + } + } + } catch (final IOException | CoderException exp) { + throw new PolicyDecodingException("Failed decoding the acm", exp); + } + + return automationCompositionList; + } +} diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarParameterGroup.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarParameterGroup.java new file mode 100644 index 00000000..a3efaa28 --- /dev/null +++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarParameterGroup.java @@ -0,0 +1,44 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.reception.decoding.policy.file; + +import lombok.Getter; +import org.onap.policy.common.parameters.annotations.NotBlank; +import org.onap.policy.common.parameters.annotations.NotNull; +import org.onap.policy.distribution.reception.parameters.PolicyDecoderConfigurationParameterGroup; + +/** + * Holds the parameters for the{@link AutomationCompositionDecoderFileInCsar}. + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +@Getter +@NotNull +@NotBlank +public class AutomationCompositionDecoderFileInCsarParameterGroup extends PolicyDecoderConfigurationParameterGroup { + + private String automationCompositionType; + + public AutomationCompositionDecoderFileInCsarParameterGroup() { + super(AutomationCompositionDecoderFileInCsarParameterGroup.class.getSimpleName()); + } +} diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsar.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsar.java deleted file mode 100644 index 96db632c..00000000 --- a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsar.java +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.reception.decoding.policy.file; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Enumeration; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; -import org.onap.policy.common.parameters.ParameterService; -import org.onap.policy.common.utils.coder.CoderException; -import org.onap.policy.distribution.model.Csar; -import org.onap.policy.distribution.model.PolicyInput; -import org.onap.policy.distribution.reception.decoding.PolicyDecoder; -import org.onap.policy.distribution.reception.decoding.PolicyDecodingException; -import org.onap.policy.distribution.reception.util.ReceptionUtil; -import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; - -/** - * This class extracts controlloop information from a CSAR file. - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -public class ControlLoopDecoderFileInCsar implements PolicyDecoder { - - private ControlLoopDecoderFileInCsarParameterGroup decoderParameters; - private static final String NODE_TYPES = "nodes.yml"; - private static final String DATA_TYPES = "data.yml"; - - /** - * {@inheritDoc}. - */ - @Override - public void configure(final String parameterGroupName) { - decoderParameters = ParameterService.get(parameterGroupName); - } - - /** - * {@inheritDoc}. - */ - @Override - public boolean canHandle(final PolicyInput policyInput) { - return policyInput.getClass().isAssignableFrom(Csar.class); - } - - /** - * {@inheritDoc}. - */ - @Override - public Collection decode(final Csar csar) throws PolicyDecodingException { - final Collection controlLoopList = new ArrayList<>(); - ToscaServiceTemplate nodeTypes = null; - ToscaServiceTemplate dataTypes = null; - - try (var zipFile = new ZipFile(csar.getCsarFilePath())) { - final Enumeration entries = zipFile.entries(); - while (entries.hasMoreElements()) { - // - // Sonar will flag this as a Security Hotspot - // "Expanding archive files is security-sensitive" - // isZipEntryValid ensures the file being read exists in the archive - // - final ZipEntry entry = entries.nextElement(); // NOSONAR - final String entryName = entry.getName(); - - // Store node_types - if (entryName.contains(NODE_TYPES)) { - nodeTypes = ReceptionUtil.decodeFile(zipFile, entry); - } - - // Store data_types - if (entryName.contains(DATA_TYPES)) { - dataTypes = ReceptionUtil.decodeFile(zipFile, entry); - } - - if (entryName.contains(decoderParameters.getControlLoopType())) { - ReceptionUtil.validateZipEntry(entryName, csar.getCsarFilePath(), entry.getSize()); - final ToscaServiceTemplate controlLoop = ReceptionUtil.decodeFile(zipFile, entry); - if (null != controlLoop.getToscaTopologyTemplate()) { - if (null != nodeTypes) { - controlLoop.setNodeTypes(nodeTypes.getNodeTypes()); - } - if (null != dataTypes) { - controlLoop.setDataTypes(dataTypes.getDataTypes()); - } - controlLoopList.add(controlLoop); - } - } - } - } catch (final IOException | CoderException exp) { - throw new PolicyDecodingException("Failed decoding the controlloop", exp); - } - - return controlLoopList; - } -} diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarParameterGroup.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarParameterGroup.java deleted file mode 100644 index 358b1f87..00000000 --- a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarParameterGroup.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.reception.decoding.policy.file; - -import lombok.Getter; -import org.onap.policy.common.parameters.annotations.NotBlank; -import org.onap.policy.common.parameters.annotations.NotNull; -import org.onap.policy.distribution.reception.parameters.PolicyDecoderConfigurationParameterGroup; - -/** - * Holds the parameters for the{@link ControlLoopDecoderFileInCsar}. - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -@Getter -@NotNull -@NotBlank -public class ControlLoopDecoderFileInCsarParameterGroup extends PolicyDecoderConfigurationParameterGroup { - - private String controlLoopType; - - public ControlLoopDecoderFileInCsarParameterGroup() { - super(ControlLoopDecoderFileInCsarParameterGroup.class.getSimpleName()); - } -} diff --git a/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarParameterGroupTest.java b/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarParameterGroupTest.java new file mode 100644 index 00000000..ea844e4e --- /dev/null +++ b/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarParameterGroupTest.java @@ -0,0 +1,68 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.reception.decoding.policy.file; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.policy.common.parameters.ValidationStatus; +import org.onap.policy.distribution.reception.handling.sdc.CommonTestData; + +/** + * Class to perform unit test of {@link AutomationCompositionDecoderFileInCsarParameterGroup}. + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +public class AutomationCompositionDecoderFileInCsarParameterGroupTest { + + @Test + public void testValidParameters() { + final AutomationCompositionDecoderFileInCsarParameterGroup configurationParameters = CommonTestData + .getPolicyDecoderParameters( + "src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParameters.json", + AutomationCompositionDecoderFileInCsarParameterGroup.class); + + assertEquals(AutomationCompositionDecoderFileInCsarParameterGroup.class.getSimpleName(), + configurationParameters.getName()); + assertEquals("acm", configurationParameters.getAutomationCompositionType()); + assertEquals(ValidationStatus.CLEAN, configurationParameters.validate().getStatus()); + } + + @Test + public void testInvalidParameters() { + final AutomationCompositionDecoderFileInCsarParameterGroup configurationParameters = + CommonTestData.getPolicyDecoderParameters( + "src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParametersInvalid.json", + AutomationCompositionDecoderFileInCsarParameterGroup.class); + + assertEquals(ValidationStatus.INVALID, configurationParameters.validate().getStatus()); + } + + @Test + public void testEmptyParameters() { + final AutomationCompositionDecoderFileInCsarParameterGroup configurationParameters = + CommonTestData.getPolicyDecoderParameters("src/test/resources/parameters/EmptyParameters.json", + AutomationCompositionDecoderFileInCsarParameterGroup.class); + + assertEquals(ValidationStatus.INVALID, configurationParameters.validate().getStatus()); + } +} diff --git a/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarTest.java b/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarTest.java new file mode 100644 index 00000000..80c520a4 --- /dev/null +++ b/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/AutomationCompositionDecoderFileInCsarTest.java @@ -0,0 +1,97 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * Modifications 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========================================================= + */ + +package org.onap.policy.distribution.reception.decoding.policy.file; + +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.util.Collection; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.runners.MockitoJUnitRunner; +import org.onap.policy.common.parameters.ParameterService; +import org.onap.policy.distribution.model.Csar; +import org.onap.policy.distribution.reception.decoding.PolicyDecodingException; +import org.onap.policy.distribution.reception.handling.sdc.CommonTestData; +import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity; + +/** + * Class to perform unit test of {@link AutomationCompositionDecoderFileInCsar}. + * + * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) + */ +@RunWith(MockitoJUnitRunner.class) +public class AutomationCompositionDecoderFileInCsarTest { + + /** + * Set up. + */ + @BeforeClass + public static void setUp() { + final AutomationCompositionDecoderFileInCsarParameterGroup configurationParameters = CommonTestData + .getPolicyDecoderParameters( + "src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParameters.json", + AutomationCompositionDecoderFileInCsarParameterGroup.class); + configurationParameters.setName(AutomationCompositionDecoderFileInCsarParameterGroup.class.getSimpleName()); + ParameterService.register(configurationParameters); + } + + /** + * Tear down. + */ + @AfterClass + public static void tearDown() { + ParameterService.deregister(AutomationCompositionDecoderFileInCsarParameterGroup.class.getSimpleName()); + } + + @Test + public void testDecodeAutomationComposition() throws PolicyDecodingException { + + final AutomationCompositionDecoderFileInCsar decoder = new AutomationCompositionDecoderFileInCsar(); + decoder.configure(AutomationCompositionDecoderFileInCsarParameterGroup.class.getSimpleName()); + + final File file = new File("src/test/resources/service-Sampleservice-acm.csar"); + final Csar csar = new Csar(file.getAbsolutePath()); + + assertTrue(decoder.canHandle(csar)); + final Collection automationCompositionHolders = decoder.decode(csar); + assertEquals(1, automationCompositionHolders.size()); + } + + @Test + public void testDecodeAutomationCompositionZipError() { + + final AutomationCompositionDecoderFileInCsar decoder = new AutomationCompositionDecoderFileInCsar(); + decoder.configure(AutomationCompositionDecoderFileInCsarParameterGroup.class.getSimpleName()); + + final File file = new File("unknown.csar"); + final Csar csar = new Csar(file.getAbsolutePath()); + + assertTrue(decoder.canHandle(csar)); + assertThatThrownBy(() -> decoder.decode(csar)).isInstanceOf(PolicyDecodingException.class) + .hasMessageContaining("Failed decoding the acm"); + } +} diff --git a/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarParameterGroupTest.java b/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarParameterGroupTest.java deleted file mode 100644 index 16f80096..00000000 --- a/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarParameterGroupTest.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.reception.decoding.policy.file; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.onap.policy.common.parameters.ValidationStatus; -import org.onap.policy.distribution.reception.handling.sdc.CommonTestData; - -/** - * Class to perform unit test of {@link ControlLoopDecoderFileInCsarParameterGroup}. - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -public class ControlLoopDecoderFileInCsarParameterGroupTest { - - @Test - public void testValidParameters() { - final ControlLoopDecoderFileInCsarParameterGroup configurationParameters = CommonTestData - .getPolicyDecoderParameters("src/test/resources/parameters/FileInCsarControlLoopDecoderParameters.json", - ControlLoopDecoderFileInCsarParameterGroup.class); - - assertEquals(ControlLoopDecoderFileInCsarParameterGroup.class.getSimpleName(), - configurationParameters.getName()); - assertEquals("controlloop", configurationParameters.getControlLoopType()); - assertEquals(ValidationStatus.CLEAN, configurationParameters.validate().getStatus()); - } - - @Test - public void testInvalidParameters() { - final ControlLoopDecoderFileInCsarParameterGroup configurationParameters = - CommonTestData.getPolicyDecoderParameters( - "src/test/resources/parameters/FileInCsarControlLoopDecoderParametersInvalid.json", - ControlLoopDecoderFileInCsarParameterGroup.class); - - assertEquals(ValidationStatus.INVALID, configurationParameters.validate().getStatus()); - } - - @Test - public void testEmptyParameters() { - final ControlLoopDecoderFileInCsarParameterGroup configurationParameters = - CommonTestData.getPolicyDecoderParameters("src/test/resources/parameters/EmptyParameters.json", - ControlLoopDecoderFileInCsarParameterGroup.class); - - assertEquals(ValidationStatus.INVALID, configurationParameters.validate().getStatus()); - } -} diff --git a/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarTest.java b/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarTest.java deleted file mode 100644 index e452a7ce..00000000 --- a/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/decoding/policy/file/ControlLoopDecoderFileInCsarTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation. - * Modifications 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========================================================= - */ - -package org.onap.policy.distribution.reception.decoding.policy.file; - -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.io.File; -import java.util.Collection; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.runners.MockitoJUnitRunner; -import org.onap.policy.common.parameters.ParameterService; -import org.onap.policy.distribution.model.Csar; -import org.onap.policy.distribution.reception.decoding.PolicyDecodingException; -import org.onap.policy.distribution.reception.handling.sdc.CommonTestData; -import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity; - -/** - * Class to perform unit test of {@link ControlLoopDecoderFileInCsar}. - * - * @author Sirisha Manchikanti (sirisha.manchikanti@est.tech) - */ -@RunWith(MockitoJUnitRunner.class) -public class ControlLoopDecoderFileInCsarTest { - - /** - * Set up. - */ - @BeforeClass - public static void setUp() { - final ControlLoopDecoderFileInCsarParameterGroup configurationParameters = CommonTestData - .getPolicyDecoderParameters("src/test/resources/parameters/FileInCsarControlLoopDecoderParameters.json", - ControlLoopDecoderFileInCsarParameterGroup.class); - configurationParameters.setName(ControlLoopDecoderFileInCsarParameterGroup.class.getSimpleName()); - ParameterService.register(configurationParameters); - } - - /** - * Tear down. - */ - @AfterClass - public static void tearDown() { - ParameterService.deregister(ControlLoopDecoderFileInCsarParameterGroup.class.getSimpleName()); - } - - @Test - public void testDecodeControlLoop() throws PolicyDecodingException { - - final ControlLoopDecoderFileInCsar decoder = new ControlLoopDecoderFileInCsar(); - decoder.configure(ControlLoopDecoderFileInCsarParameterGroup.class.getSimpleName()); - - final File file = new File("src/test/resources/service-Sampleservice-controlloop.csar"); - final Csar csar = new Csar(file.getAbsolutePath()); - - assertTrue(decoder.canHandle(csar)); - final Collection controlLoopHolders = decoder.decode(csar); - assertEquals(1, controlLoopHolders.size()); - } - - @Test - public void testDecodeControlLoopZipError() { - - final ControlLoopDecoderFileInCsar decoder = new ControlLoopDecoderFileInCsar(); - decoder.configure(ControlLoopDecoderFileInCsarParameterGroup.class.getSimpleName()); - - final File file = new File("unknown.csar"); - final Csar csar = new Csar(file.getAbsolutePath()); - - assertTrue(decoder.canHandle(csar)); - assertThatThrownBy(() -> decoder.decode(csar)).isInstanceOf(PolicyDecodingException.class) - .hasMessageContaining("Failed decoding the controlloop"); - } -} diff --git a/plugins/reception-plugins/src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParameters.json b/plugins/reception-plugins/src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParameters.json new file mode 100644 index 00000000..672a6677 --- /dev/null +++ b/plugins/reception-plugins/src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParameters.json @@ -0,0 +1,3 @@ +{ + "automationCompositionType": "acm" +} diff --git a/plugins/reception-plugins/src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParametersInvalid.json b/plugins/reception-plugins/src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParametersInvalid.json new file mode 100644 index 00000000..ef58553a --- /dev/null +++ b/plugins/reception-plugins/src/test/resources/parameters/FileInCsarAutomationCompositionDecoderParametersInvalid.json @@ -0,0 +1,3 @@ +{ + "acm": "" +} diff --git a/plugins/reception-plugins/src/test/resources/parameters/FileInCsarControlLoopDecoderParameters.json b/plugins/reception-plugins/src/test/resources/parameters/FileInCsarControlLoopDecoderParameters.json deleted file mode 100644 index ca112388..00000000 --- a/plugins/reception-plugins/src/test/resources/parameters/FileInCsarControlLoopDecoderParameters.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "controlLoopType": "controlloop" -} diff --git a/plugins/reception-plugins/src/test/resources/parameters/FileInCsarControlLoopDecoderParametersInvalid.json b/plugins/reception-plugins/src/test/resources/parameters/FileInCsarControlLoopDecoderParametersInvalid.json deleted file mode 100644 index 9d33896e..00000000 --- a/plugins/reception-plugins/src/test/resources/parameters/FileInCsarControlLoopDecoderParametersInvalid.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "controlLoop": "" -} diff --git a/plugins/reception-plugins/src/test/resources/service-Sampleservice-acm.csar b/plugins/reception-plugins/src/test/resources/service-Sampleservice-acm.csar new file mode 100644 index 00000000..226ab158 Binary files /dev/null and b/plugins/reception-plugins/src/test/resources/service-Sampleservice-acm.csar differ diff --git a/plugins/reception-plugins/src/test/resources/service-Sampleservice-controlloop.csar b/plugins/reception-plugins/src/test/resources/service-Sampleservice-controlloop.csar deleted file mode 100644 index 03e29366..00000000 Binary files a/plugins/reception-plugins/src/test/resources/service-Sampleservice-controlloop.csar and /dev/null differ diff --git a/testsuites/stability/src/main/resources/setup/config/jsonConfigs/apiConfigFile.json b/testsuites/stability/src/main/resources/setup/config/jsonConfigs/apiConfigFile.json index e6f076ab..63e0c4c6 100644 --- a/testsuites/stability/src/main/resources/setup/config/jsonConfigs/apiConfigFile.json +++ b/testsuites/stability/src/main/resources/setup/config/jsonConfigs/apiConfigFile.json @@ -36,20 +36,20 @@ "policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml", "policytypes/onap.policies.optimization.resource.Vim_fit.yaml", "policytypes/onap.policies.optimization.resource.VnfPolicy.yaml", - "policytypes/onap.policies.controlloop.guard.Common.yaml", - "policytypes/onap.policies.controlloop.guard.common.Blacklist.yaml", - "policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter.yaml", - "policytypes/onap.policies.controlloop.guard.common.MinMax.yaml", - "policytypes/onap.policies.controlloop.guard.common.Filter.yaml", - "policytypes/onap.policies.controlloop.guard.coordination.FirstBlocksSecond.yaml", + "policytypes/onap.policies.acm.guard.Common.yaml", + "policytypes/onap.policies.acm.guard.common.Blacklist.yaml", + "policytypes/onap.policies.acm.guard.common.FrequencyLimiter.yaml", + "policytypes/onap.policies.acm.guard.common.MinMax.yaml", + "policytypes/onap.policies.acm.guard.common.Filter.yaml", + "policytypes/onap.policies.acm.guard.coordination.FirstBlocksSecond.yaml", "policytypes/onap.policies.Naming.yaml", "policytypes/onap.policies.Match.yaml", "policytypes/onap.policies.native.Drools.yaml", "policytypes/onap.policies.native.Xacml.yaml", "policytypes/onap.policies.native.Apex.yaml", - "policytypes/onap.policies.controlloop.operational.Common.yaml", - "policytypes/onap.policies.controlloop.operational.common.Apex.yaml", - "policytypes/onap.policies.controlloop.operational.common.Drools.yaml" + "policytypes/onap.policies.acm.operational.Common.yaml", + "policytypes/onap.policies.acm.operational.common.Apex.yaml", + "policytypes/onap.policies.acm.operational.common.Drools.yaml" ], "preloadPolicies" : [ "policies/sdnc.policy.naming.input.tosca.yaml" diff --git a/testsuites/stability/src/main/resources/setup/config/jsonConfigs/pdpSimConfig.json b/testsuites/stability/src/main/resources/setup/config/jsonConfigs/pdpSimConfig.json index 396b9f7a..ee832326 100644 --- a/testsuites/stability/src/main/resources/setup/config/jsonConfigs/pdpSimConfig.json +++ b/testsuites/stability/src/main/resources/setup/config/jsonConfigs/pdpSimConfig.json @@ -6,7 +6,7 @@ "pdpType":"apex", "description":"Pdp Heartbeat", "supportedPolicyTypes":[ - {"name":"onap.policies.controlloop.operational.common.Apex","version":"1.0.0"}, + {"name":"onap.policies.acm.operational.common.Apex","version":"1.0.0"}, {"name":"onap.policies.native.Apex","version":"1.0.0"} ] }, diff --git a/testsuites/stability/src/main/resources/setup/distribution/etc/defaultConfig.json b/testsuites/stability/src/main/resources/setup/distribution/etc/defaultConfig.json index 2b3078ac..8a5b769e 100644 --- a/testsuites/stability/src/main/resources/setup/distribution/etc/defaultConfig.json +++ b/testsuites/stability/src/main/resources/setup/distribution/etc/defaultConfig.json @@ -18,10 +18,10 @@ "decoderClassName":"org.onap.policy.distribution.reception.decoding.policy.file.PolicyDecoderFileInCsarToPolicy", "decoderConfigurationName": "toscaPolicyDecoderConfiguration" }, - "ToscaControlLoopDecoder": { - "decoderType": "ToscaControlLoopDecoder", - "decoderClassName": "org.onap.policy.distribution.reception.decoding.policy.file.ControlLoopDecoderFileInCsar", - "decoderConfigurationName": "toscaControlLoopDecoderConfiguration" + "ToscaAutomationCompositionDecoder": { + "decoderType": "ToscaAutomationCompositionDecoder", + "decoderClassName": "org.onap.policy.distribution.reception.decoding.policy.file.AutomationCompositionDecoderFileInCsar", + "decoderConfigurationName": "toscaAutomationCompositionDecoderConfiguration" } }, "policyForwarders": { @@ -30,10 +30,10 @@ "forwarderClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiPolicyForwarder", "forwarderConfigurationName": "lifecycleApiPolicyConfiguration" }, - "LifeCycleApiControlLoopForwarder": { - "forwarderType": "LifeCycleControlLoopAPI", - "forwarderClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiControlLoopForwarder", - "forwarderConfigurationName": "lifecycleApiControlLoopConfiguration" + "LifeCycleApiAutomationCompositionForwarder": { + "forwarderType": "LifeCycleAutomationCompositionAPI", + "forwarderClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiAutomationCompositionForwarder", + "forwarderConfigurationName": "lifecycleApiAutomationCompositionConfiguration" } } } @@ -56,10 +56,10 @@ "policyTypeFileName": "tosca_policy_type" } }, - "toscaControlLoopDecoderConfiguration": { - "parameterClassName": "org.onap.policy.distribution.reception.decoding.policy.file.ControlLoopDecoderFileInCsarParameterGroup", + "toscaAutomationCompositionDecoderConfiguration": { + "parameterClassName": "org.onap.policy.distribution.reception.decoding.policy.file.AutomationCompositionDecoderFileInCsarParameterGroup", "parameters": { - "controlLoopType": "controlloop" + "automationCompositionType": "acm" } } }, @@ -87,12 +87,12 @@ "deployPolicies": true } }, - "lifecycleApiControlLoopConfiguration": { - "parameterClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiControlLoopForwarderParameters", + "lifecycleApiAutomationCompositionConfiguration": { + "parameterClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiAutomationCompositionForwarderParameters", "parameters": { - "controlLoopRuntimeParameters": { - "clientName": "policy-clamp-cl-runtime", - "hostname": "policy-clamp-cl-runtime", + "automationCompositionRuntimeParameters": { + "clientName": "policy-clamp-runtime-acm", + "hostname": "policy-clamp-runtime-acm", "port": 6969, "useHttps": true, "userName": "policyadmin", diff --git a/testsuites/stability/src/main/resources/testplans/stability.jmx b/testsuites/stability/src/main/resources/testplans/stability.jmx index 9182a97d..8022d607 100644 --- a/testsuites/stability/src/main/resources/testplans/stability.jmx +++ b/testsuites/stability/src/main/resources/testplans/stability.jmx @@ -364,7 +364,7 @@ $[:2].policy-type - onap.policies.controlloop.operational.common.Apex + onap.policies.acm.operational.common.Apex true false false -- cgit 1.2.3-korg