From 723de7f63f0951d0cfe7a23956cf9d00128809b1 Mon Sep 17 00:00:00 2001 From: sebdet Date: Thu, 12 Mar 2020 14:38:07 -0700 Subject: Fix the new tosca converter Fix the metadata section analysis and make the tosca parser more configurable (in applications.properties) Issue-ID: CLAMP-580 Signed-off-by: sebdet Change-Id: I9068bd9dc89861c640660a7f78fae2cb70bdc178 Signed-off-by: sebdet --- .../clamp/clds/config/CldsUserJsonDecoderTest.java | 4 +- .../it/config/CldsReferencePropertiesItCase.java | 1 + .../tosca/ToscaYamlToJsonConvertorTestItCase.java | 44 +- .../clamp/clds/tosca/update/ArrayFieldTest.java | 16 +- .../clamp/clds/tosca/update/ConstraintTest.java | 48 +- .../clds/tosca/update/JsonTemplateManagerTest.java | 203 +++++ .../clamp/clds/tosca/update/JsonTemplateTest.java | 51 ++ .../onap/clamp/clds/tosca/update/PropertyTest.java | 71 -- .../onap/clamp/clds/tosca/update/TemplateTest.java | 46 - .../tosca/update/ToscaConverterManagerTest.java | 205 ----- .../ToscaConverterWithDictionarySupportItCase.java | 118 +++ .../tosca/update/ToscaElementPropertyTest.java | 79 ++ .../clamp/clds/tosca/update/ToscaElementTest.java | 12 +- .../clds/util/drawing/ClampGraphBuilderTest.java | 13 +- .../clds/util/drawing/SvgLoopGeneratorTest.java | 8 +- .../org/onap/clamp/loop/CsarInstallerItCase.java | 4 +- .../onap/clamp/loop/LoopControllerTestItCase.java | 14 +- .../org/onap/clamp/loop/PolicyComponentTest.java | 10 +- .../microservice/MicroServicePayloadTest.java | 2 +- .../microservice/OperationalPolicyPayloadTest.java | 8 +- .../onap/clamp/util/SemanticVersioningTest.java | 16 +- src/test/resources/application.properties | 4 +- .../resources/clds/camel/rest/clamp-api-v2.xml | 984 --------------------- .../1.0.0?connectionTimeToLive=5000/.file | 4 +- .../1.0.0?connectionTimeToLive=5000/.file | 4 +- .../tosca/new-converter/tca-with-metadata.json | 222 +++++ .../tosca/new-converter/tca-with-metadata.yaml | 184 ++++ 27 files changed, 980 insertions(+), 1395 deletions(-) create mode 100644 src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateManagerTest.java create mode 100644 src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateTest.java delete mode 100644 src/test/java/org/onap/clamp/clds/tosca/update/PropertyTest.java delete mode 100644 src/test/java/org/onap/clamp/clds/tosca/update/TemplateTest.java delete mode 100644 src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterManagerTest.java create mode 100644 src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java create mode 100644 src/test/java/org/onap/clamp/clds/tosca/update/ToscaElementPropertyTest.java delete mode 100644 src/test/resources/clds/camel/rest/clamp-api-v2.xml create mode 100644 src/test/resources/tosca/new-converter/tca-with-metadata.json create mode 100644 src/test/resources/tosca/new-converter/tca-with-metadata.yaml (limited to 'src/test') diff --git a/src/test/java/org/onap/clamp/clds/config/CldsUserJsonDecoderTest.java b/src/test/java/org/onap/clamp/clds/config/CldsUserJsonDecoderTest.java index 5a1292210..7152ee11d 100644 --- a/src/test/java/org/onap/clamp/clds/config/CldsUserJsonDecoderTest.java +++ b/src/test/java/org/onap/clamp/clds/config/CldsUserJsonDecoderTest.java @@ -26,12 +26,12 @@ package org.onap.clamp.clds.config; +import static org.assertj.core.api.Assertions.assertThat; + import org.junit.Test; import org.onap.clamp.authorization.CldsUser; import org.onap.clamp.clds.exception.CldsUsersException; -import static org.assertj.core.api.Assertions.assertThat; - public class CldsUserJsonDecoderTest { private String user1 = "admin1"; diff --git a/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java b/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java index 4bf2de030..d985a5d72 100644 --- a/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java @@ -24,6 +24,7 @@ package org.onap.clamp.clds.it.config; import static org.junit.Assert.assertEquals; + import java.io.IOException; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTestItCase.java b/src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTestItCase.java index db6fd5c03..a32d4995e 100644 --- a/src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTestItCase.java +++ b/src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTestItCase.java @@ -57,7 +57,7 @@ public class ToscaYamlToJsonConvertorTestItCase { * Schema. * * @throws IOException In case of issue when opening the tosca yaml file and - * converted json file + * converted json file */ @Test public final void testParseToscaYaml() throws IOException { @@ -65,11 +65,11 @@ public class ToscaYamlToJsonConvertorTestItCase { ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor(); String parsedJsonSchema = - convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.cdap.tca.hi.lo.app"); + convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.cdap.tca.hi.lo.app"); assertNotNull(parsedJsonSchema); JSONAssert.assertEquals( - ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json.json"), - parsedJsonSchema, true); + ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json.json"), + parsedJsonSchema, true); } /** @@ -77,20 +77,20 @@ public class ToscaYamlToJsonConvertorTestItCase { * based on JSON Editor Schema. * * @throws IOException In case of issue when opening the tosca yaml file and - * converted json file + * converted json file */ @Test public final void testParseToscaYamlWithConstraints() throws IOException { String toscaModelYaml = - ResourceFileUtil.getResourceAsString("tosca/tosca-with-constraints.yaml"); + ResourceFileUtil.getResourceAsString("tosca/tosca-with-constraints.yaml"); ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor(); String parsedJsonSchema = - convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app"); + convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app"); assertNotNull(parsedJsonSchema); JSONAssert.assertEquals( - ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-constraints.json"), - parsedJsonSchema, true); + ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-constraints.json"), + parsedJsonSchema, true); } /** @@ -98,20 +98,20 @@ public class ToscaYamlToJsonConvertorTestItCase { * conversion based on JSON Editor Schema. * * @throws IOException In case of issue when opening the tosca yaml file and - * converted json file + * converted json file */ @Test public final void testParseToscaYamlWithTypes() throws IOException { String toscaModelYaml = - ResourceFileUtil.getResourceAsString("tosca/tosca-with-datatypes.yaml"); + ResourceFileUtil.getResourceAsString("tosca/tosca-with-datatypes.yaml"); ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor(); String parsedJsonSchema = - convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app"); + convertor.parseToscaYaml(toscaModelYaml, "onap.policies.monitoring.example.app"); assertNotNull(parsedJsonSchema); JSONAssert.assertEquals( - ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-datatypes.json"), - parsedJsonSchema, true); + ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-datatypes.json"), + parsedJsonSchema, true); } /** @@ -119,7 +119,7 @@ public class ToscaYamlToJsonConvertorTestItCase { * parameters which defines the Tosca Policy name and its short name. * * @throws IOException In case of issue when opening the tosca yaml file and - * converted json file + * converted json file */ @Test @Transactional @@ -165,24 +165,24 @@ public class ToscaYamlToJsonConvertorTestItCase { dictionaryService.saveOrUpdateDictionary(dictionaryTest2); String toscaModelYaml = - ResourceFileUtil.getResourceAsString("tosca/tosca_metadata_clamp_possible_values.yaml"); + ResourceFileUtil.getResourceAsString("tosca/tosca_metadata_clamp_possible_values.yaml"); JsonObject jsonObject = toscaYamlToJsonConvertor.validateAndConvertToJson(toscaModelYaml); assertNotNull(jsonObject); String policyModelType = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject, - ToscaSchemaConstants.METADATA_POLICY_MODEL_TYPE); + ToscaSchemaConstants.METADATA_POLICY_MODEL_TYPE); String acronym = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject, - ToscaSchemaConstants.METADATA_ACRONYM); + ToscaSchemaConstants.METADATA_ACRONYM); String parsedJsonSchema = - toscaYamlToJsonConvertor.parseToscaYaml(toscaModelYaml, policyModelType); + toscaYamlToJsonConvertor.parseToscaYaml(toscaModelYaml, policyModelType); assertNotNull(parsedJsonSchema); assertEquals("onap.policies.monitoring.cdap.tca.hi.lo.app", policyModelType); assertEquals("tca", acronym); JSONAssert.assertEquals( - ResourceFileUtil - .getResourceAsString("tosca/tosca_metadata_clamp_possible_values_json_schema.json"), - parsedJsonSchema, true); + ResourceFileUtil + .getResourceAsString("tosca/tosca_metadata_clamp_possible_values_json_schema.json"), + parsedJsonSchema, true); } } diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ArrayFieldTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/ArrayFieldTest.java index 83c374e9d..421bd6ab2 100644 --- a/src/test/java/org/onap/clamp/clds/tosca/update/ArrayFieldTest.java +++ b/src/test/java/org/onap/clamp/clds/tosca/update/ArrayFieldTest.java @@ -27,6 +27,10 @@ import com.google.gson.JsonArray; import java.io.IOException; import java.util.ArrayList; import junit.framework.TestCase; +import org.onap.clamp.clds.tosca.update.elements.ArrayField; +import org.onap.clamp.clds.tosca.update.elements.ToscaElement; +import org.onap.clamp.clds.tosca.update.elements.ToscaElementProperty; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplateManager; import org.onap.clamp.clds.util.ResourceFileUtil; public class ArrayFieldTest extends TestCase { @@ -37,13 +41,13 @@ public class ArrayFieldTest extends TestCase { * @throws IOException in case of failure */ public void testDeploy() throws IOException { - ToscaConverterManager toscaConverterManager = new ToscaConverterManager(ResourceFileUtil.getResourceAsString( + JsonTemplateManager jsonTemplateManager = new JsonTemplateManager(ResourceFileUtil.getResourceAsString( "tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml"),ResourceFileUtil.getResourceAsString( - "clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - ToscaElement toscaElement = toscaConverterManager.getComponents().get("onap.datatype.controlloop.Actor"); - Property property = toscaElement.getProperties().get("actor"); - ArrayField arrayParser = new ArrayField((ArrayList) property.getItems().get("default")); + "clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor"); + ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("actor"); + ArrayField arrayParser = new ArrayField((ArrayList) toscaElementProperty.getItems().get("default")); JsonArray toTest = arrayParser.deploy(); String reference = "[1,\"String\",5.5,true]"; assertEquals(reference, String.valueOf(toTest)); diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ConstraintTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/ConstraintTest.java index a73fd6736..5215cbd4d 100644 --- a/src/test/java/org/onap/clamp/clds/tosca/update/ConstraintTest.java +++ b/src/test/java/org/onap/clamp/clds/tosca/update/ConstraintTest.java @@ -27,16 +27,20 @@ import com.google.gson.JsonObject; import java.io.IOException; import java.util.ArrayList; import junit.framework.TestCase; +import org.onap.clamp.clds.tosca.update.elements.ToscaElement; +import org.onap.clamp.clds.tosca.update.elements.ToscaElementProperty; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplate; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplateManager; import org.onap.clamp.clds.util.ResourceFileUtil; public class ConstraintTest extends TestCase { - ToscaConverterManager toscaConverterManager = new ToscaConverterManager( + JsonTemplateManager jsonTemplateManager = new JsonTemplateManager( ResourceFileUtil.getResourceAsString("tosca/new-converter/constraints.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); - ToscaElement toscaElement = toscaConverterManager.getComponents().get("onap.datatype.controlloop.Operation"); + ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Operation"); public ConstraintTest() throws IOException { } @@ -45,18 +49,20 @@ public class ConstraintTest extends TestCase { * Test get value array. */ public void testGetValuesArray() { - Property property = toscaElement.getProperties().get("timeout"); - Template template = toscaConverterManager.getTemplates().get("integer"); + ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("timeout"); + JsonTemplate jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("integer"); JsonObject resultProcess = new JsonObject(); - property.addConstraintsAsJson(resultProcess, (ArrayList) property.getItems().get("constraints"), - template); + toscaElementProperty.addConstraintsAsJson(resultProcess, + (ArrayList) toscaElementProperty.getItems().get("constraints"), + jsonTemplate); String reference = "{\"enum\":[3,4,5.5,6,10]}"; assertEquals(reference, String.valueOf(resultProcess)); - property = toscaElement.getProperties().get("success"); - template = toscaConverterManager.getTemplates().get("string"); + toscaElementProperty = toscaElement.getProperties().get("success"); + jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("string"); resultProcess = new JsonObject(); - property.addConstraintsAsJson(resultProcess, (ArrayList) property.getItems().get("constraints"), - template); + toscaElementProperty.addConstraintsAsJson(resultProcess, + (ArrayList) toscaElementProperty.getItems().get("constraints"), + jsonTemplate); reference = "{\"enum\":[\"VALID\",\"TERMINATED\"]}"; assertEquals(reference, String.valueOf(resultProcess)); } @@ -66,11 +72,12 @@ public class ConstraintTest extends TestCase { */ public void testGetSpecificLength() { //Test for string type, same process for array - Property property = toscaElement.getProperties().get("id"); - Template template = toscaConverterManager.getTemplates().get("string"); + ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("id"); + JsonTemplate jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("string"); JsonObject resultProcess = new JsonObject(); - property.addConstraintsAsJson(resultProcess, (ArrayList) property.getItems().get("constraints"), - template); + toscaElementProperty.addConstraintsAsJson(resultProcess, + (ArrayList) toscaElementProperty.getItems().get("constraints"), + jsonTemplate); int specificLength = 8; int toTest = resultProcess.get("minLength").getAsInt(); assertEquals(specificLength, toTest); @@ -83,11 +90,12 @@ public class ConstraintTest extends TestCase { */ public void testGetLimitValue() { //Test for array type, same process for string - Property property = toscaElement.getProperties().get("description"); - Template template = toscaConverterManager.getTemplates().get("array"); + ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("description"); + JsonTemplate jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("array"); JsonObject resultProcess = new JsonObject(); - property.addConstraintsAsJson(resultProcess, (ArrayList) property.getItems().get("constraints"), - template); + toscaElementProperty.addConstraintsAsJson(resultProcess, + (ArrayList) toscaElementProperty.getItems().get("constraints"), + jsonTemplate); int toTest = resultProcess.get("minItems").getAsInt(); assertEquals(5, toTest); diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateManagerTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateManagerTest.java new file mode 100644 index 000000000..693377ee0 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateManagerTest.java @@ -0,0 +1,203 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.tosca.update; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import junit.framework.TestCase; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplate; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplateField; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplateManager; +import org.onap.clamp.clds.util.ResourceFileUtil; + +public class JsonTemplateManagerTest extends TestCase { + + /** + * Test the launch translation wit operational policies. + * + * @throws IOException In case of failure + * @throws UnknownComponentException In case of failure + */ + public void testLaunchTranslationTca() throws IOException, UnknownComponentException { + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" + + ".policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0?" + + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString( + "clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + String componentName = "onap.policies.monitoring.cdap.tca.hi.lo.app"; + jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null); + } + + /** + * Test the launch translation wit operational policies. + * + * @throws IOException In case of failure + * @throws UnknownComponentException In case of failure + */ + public void testLaunchTranslationFrequencyLimiter() throws IOException, UnknownComponentException { + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" + + ".policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0?" + + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString( + "clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + String componentName = "onap.policies.controlloop.guard.common.FrequencyLimiter"; + jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null); + } + + /** + * Test the launch translation wit operational policies. + * + * @throws IOException In case of failure + * @throws UnknownComponentException In case of failure + */ + public void testLaunchTranslationApex() throws IOException, UnknownComponentException { + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" + + ".policies.controlloop.operational.common.Apex/versions/1.0.0?" + + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString( + "clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + String componentName = "onap.policies.controlloop.operational.common.Apex"; + jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null); + } + + /** + * Test the launch translation wit operational policies. + * + * @throws IOException In case of failure + * @throws UnknownComponentException In case of failure + */ + public void testLaunchTranslationDrools() throws IOException, UnknownComponentException { + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" + + ".policies.controlloop.operational.common.Drools/versions/1.0.0?" + + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString( + "clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + String componentName = "onap.policies.controlloop.operational.common.Drools"; + jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null); + } + + + /** + * Test the launch translation. + * + * @throws IOException In case of failure + * @throws UnknownComponentException In case of failure + */ + public void testLaunchTranslation() throws IOException, UnknownComponentException { + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + String componentName = "onap.policies.controlloop.operational.common.Drools"; + jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null); + } + + /** + * Test addTemplate. + * + * @throws IOException In case of failure + */ + public void testAddTemplate() throws IOException { + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + int count = jsonTemplateManager.getJsonSchemaTemplates().size(); + List + jsonTemplateFields = + new ArrayList<>(Arrays.asList(new JsonTemplateField("type"), new JsonTemplateField("description"), + new JsonTemplateField( + "required"), + new JsonTemplateField("metadata"), new JsonTemplateField("constraints"))); + jsonTemplateManager.addTemplate("test", jsonTemplateFields); + assertNotSame(count, jsonTemplateManager.getJsonSchemaTemplates().size()); + } + + /** + * test Remove template. + * + * @throws IOException In case of failure + */ + public void testRemoveTemplate() throws IOException { + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + int count = jsonTemplateManager.getJsonSchemaTemplates().size(); + jsonTemplateManager.removeTemplate("string"); + assertNotSame(count, jsonTemplateManager.getJsonSchemaTemplates().size()); + } + + /** + * Test update template. + * + * @throws IOException In case of failure + */ + public void testUpdateTemplate() throws IOException { + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + int count = jsonTemplateManager.getJsonSchemaTemplates().get("integer").getJsonTemplateFields().size(); + jsonTemplateManager.updateTemplate("integer", new JsonTemplateField("type"), false); + assertNotSame(count, + jsonTemplateManager.getJsonSchemaTemplates().get("integer").getJsonTemplateFields().size()); + } + + /** + * Test has template. + * + * @throws IOException In case of failure + */ + public void testHasTemplate() throws IOException { + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + boolean has = true; + List jsonTemplateFieldsString = + new ArrayList<>(Arrays.asList(new JsonTemplateField("type"), new JsonTemplateField("description"), + new JsonTemplateField("required"), + new JsonTemplateField("metadata"), new JsonTemplateField("constraints"))); + JsonTemplate jsonTemplateTest = new JsonTemplate("String", jsonTemplateFieldsString); + has = jsonTemplateManager.hasTemplate(jsonTemplateTest); + assertEquals(false, has); + } + +} diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateTest.java new file mode 100644 index 000000000..fab3030ca --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/JsonTemplateTest.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.tosca.update; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import junit.framework.TestCase; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplate; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplateField; + +public class JsonTemplateTest extends TestCase { + + /** + * Test check failed. + */ + public void testCheckFields() { + JsonTemplate toTest = new JsonTemplate("toTest"); + List + jsonTemplateFields = new ArrayList<>( + Arrays.asList(new JsonTemplateField("type"), new JsonTemplateField("description"), + new JsonTemplateField( + "enum"))); + toTest.setJsonTemplateFields(jsonTemplateFields); + JsonTemplate reference = new JsonTemplate("toTest"); + reference.setJsonTemplateFields(jsonTemplateFields); + assertTrue(toTest.checkFields(reference)); + } + +} \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/PropertyTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/PropertyTest.java deleted file mode 100644 index bb1929f98..000000000 --- a/src/test/java/org/onap/clamp/clds/tosca/update/PropertyTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.clamp.clds.tosca.update; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import java.io.IOException; -import java.util.ArrayList; -import junit.framework.TestCase; -import org.onap.clamp.clds.util.ResourceFileUtil; - -public class PropertyTest extends TestCase { - public PropertyTest() throws IOException { - } - - /** - * Test Parse array. - * - * @throws IOException In case of failure - */ - public void testParseArray() throws IOException { - ToscaConverterManager toscaConverterManager = new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - ToscaElement toscaElement = toscaConverterManager.getComponents().get("onap.datatype.controlloop.Actor"); - Property property = toscaElement.getProperties().get("actor"); - JsonArray toTest = property.parseArray((ArrayList) property.getItems().get("default")); - assertNotNull(toTest); - } - - /** - * Test add constraint as json. - * - * @throws IOException In case of failure - */ - public void testAddConstraintsAsJson() throws IOException { - ToscaConverterManager toscaConverterManager = new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - ToscaElement toscaElement = toscaConverterManager.getComponents().get("onap.datatype.controlloop.operation.Failure"); - Property property = toscaElement.getProperties().get("category"); - Template template = toscaConverterManager.getTemplates().get("string"); - JsonObject toTest = new JsonObject(); - property.addConstraintsAsJson(toTest, (ArrayList) property.getItems().get("constraints"), template); - String test = "{\"enum\":[\"error\",\"timeout\",\"retries\",\"guard\",\"exception\"]}"; - assertEquals(test, String.valueOf(toTest)); - } -} \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/TemplateTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/TemplateTest.java deleted file mode 100644 index 02c5747b6..000000000 --- a/src/test/java/org/onap/clamp/clds/tosca/update/TemplateTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.clamp.clds.tosca.update; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import junit.framework.TestCase; - -public class TemplateTest extends TestCase { - - /** - * Test check failed. - */ - public void testCheckFields() { - Template toTest = new Template("toTest"); - List templateFields = new ArrayList<>(Arrays.asList(new TemplateField("type"), new TemplateField("description"),new TemplateField( - "enum"))); - toTest.setTemplateFields(templateFields); - Template reference = new Template("toTest"); - reference.setTemplateFields(templateFields); - assertTrue(toTest.checkFields(reference)); - } - -} \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterManagerTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterManagerTest.java deleted file mode 100644 index 493841215..000000000 --- a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterManagerTest.java +++ /dev/null @@ -1,205 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.clamp.clds.tosca.update; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import junit.framework.TestCase; -import org.onap.clamp.clds.util.ResourceFileUtil; - -public class ToscaConverterManagerTest extends TestCase { - - /** - * Test the launch translation wit operational policies. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslationTca() throws IOException, UnknownComponentException { - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" - + ".policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0?" - + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString( - "clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - assertNull(toscaConverterManager.getParseToJson()); - String componentName = "onap.policies.monitoring.cdap.tca.hi.lo.app"; - toscaConverterManager.startConversionToJson(componentName); - assertNotNull(toscaConverterManager.getParseToJson()); - } - - /** - * Test the launch translation wit operational policies. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslationFrequencyLimiter() throws IOException, UnknownComponentException { - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" - + ".policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0?" - + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString( - "clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - assertNull(toscaConverterManager.getParseToJson()); - String componentName = "onap.policies.controlloop.guard.common.FrequencyLimiter"; - toscaConverterManager.startConversionToJson(componentName); - assertNotNull(toscaConverterManager.getParseToJson()); - } - - /** - * Test the launch translation wit operational policies. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslationApex() throws IOException, UnknownComponentException { - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" - + ".policies.controlloop.operational.common.Apex/versions/1.0.0?" - + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString( - "clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - assertNull(toscaConverterManager.getParseToJson()); - String componentName = "onap.policies.controlloop.operational.common.Apex"; - toscaConverterManager.startConversionToJson(componentName); - assertNotNull(toscaConverterManager.getParseToJson()); - } - - /** - * Test the launch translation wit operational policies. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslationDrools() throws IOException, UnknownComponentException { - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" - + ".policies.controlloop.operational.common.Drools/versions/1.0.0?" - + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString( - "clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - assertNull(toscaConverterManager.getParseToJson()); - String componentName = "onap.policies.controlloop.operational.common.Drools"; - toscaConverterManager.startConversionToJson(componentName); - assertNotNull(toscaConverterManager.getParseToJson()); - } - - /** - * Test the launch translation. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslation() throws IOException, UnknownComponentException { - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - assertNull(toscaConverterManager.getParseToJson()); - String componentName = "onap.policies.controlloop.operational.common.Drools"; - toscaConverterManager.startConversionToJson(componentName); - assertNotNull(toscaConverterManager.getParseToJson()); - } - - /** - * Test addTemplate. - * - * @throws IOException In case of failure - */ - public void testAddTemplate() throws IOException { - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - int count = toscaConverterManager.getTemplates().size(); - List templateFields = new ArrayList<>(Arrays.asList(new TemplateField("type"), new TemplateField("description"), - new TemplateField( - "required"), - new TemplateField("metadata"), new TemplateField("constraints"))); - toscaConverterManager.addTemplate("test", templateFields); - assertNotSame(count, toscaConverterManager.getTemplates().size()); - } - - /** - * test Remove template. - * - * @throws IOException In case of failure - */ - public void testRemoveTemplate() throws IOException { - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - int count = toscaConverterManager.getTemplates().size(); - toscaConverterManager.removeTemplate("string"); - assertNotSame(count, toscaConverterManager.getTemplates().size()); - } - - /** - * Test update template. - * - * @throws IOException In case of failure - */ - public void testUpdateTemplate() throws IOException { - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - int count = toscaConverterManager.getTemplates().get("integer").getTemplateFields().size(); - toscaConverterManager.updateTemplate("integer", new TemplateField("type"), false); - assertNotSame(count, toscaConverterManager.getTemplates().get("integer").getTemplateFields().size()); - } - - /** - * Test has template. - * - * @throws IOException In case of failure - */ - public void testHasTemplate() throws IOException { - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( - ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - boolean has = true; - List templateFieldsString = - new ArrayList<>(Arrays.asList(new TemplateField("type"), new TemplateField("description"), new TemplateField("required"), - new TemplateField("metadata"), new TemplateField("constraints"))); - Template templateTest = new Template("String", templateFieldsString); - has = toscaConverterManager.hasTemplate(templateTest); - assertEquals(false, has); - } - -} diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java new file mode 100644 index 000000000..b4f8b1245 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java @@ -0,0 +1,118 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.tosca.update; + +import com.google.gson.JsonObject; +import java.io.IOException; +import javax.transaction.Transactional; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.clamp.clds.Application; +import org.onap.clamp.clds.tosca.update.parser.metadata.ToscaMetadataParserWithDictionarySupport; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplateManager; +import org.onap.clamp.clds.util.JsonUtils; +import org.onap.clamp.clds.util.ResourceFileUtil; +import org.onap.clamp.tosca.Dictionary; +import org.onap.clamp.tosca.DictionaryElement; +import org.onap.clamp.tosca.DictionaryService; +import org.skyscreamer.jsonassert.JSONAssert; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringBootTest(classes = Application.class) +public class ToscaConverterWithDictionarySupportItCase { + + @Autowired + private DictionaryService dictionaryService; + + @Autowired + private ToscaMetadataParserWithDictionarySupport toscaMetadataParserWithDictionarySupport; + + /** + * This Test validates Tosca yaml with metadata tag that contains policy_model_type and acronym + * parameters which defines the Tosca Policy name and its short name. + * + * @throws IOException In case of issue when opening the tosca yaml file and + * converted json file + */ + @Test + @Transactional + public final void testMetadataClampPossibleValues() throws IOException, UnknownComponentException { + + // Set up dictionary elements + Dictionary dictionaryTest = new Dictionary(); + dictionaryTest.setName("Context"); + dictionaryTest.setSecondLevelDictionary(0); + + DictionaryElement element = new DictionaryElement(); + element.setName("PROD"); + element.setShortName("PROD"); + element.setType("string"); + element.setDescription("Production"); + dictionaryTest.addDictionaryElements(element); + + dictionaryService.saveOrUpdateDictionary(dictionaryTest); + + Dictionary dictionaryTest1 = new Dictionary(); + dictionaryTest1.setName("EventDictionary"); + dictionaryTest1.setSecondLevelDictionary(0); + + DictionaryElement element1 = new DictionaryElement(); + element1.setName("alarmCondition"); + element1.setShortName("alarmCondition"); + element1.setType("string"); + element1.setDescription("Alarm Condition"); + dictionaryTest1.addDictionaryElements(element1); + + dictionaryService.saveOrUpdateDictionary(dictionaryTest1); + + Dictionary dictionaryTest2 = new Dictionary(); + dictionaryTest2.setName("Operators"); + dictionaryTest2.setSecondLevelDictionary(0); + + DictionaryElement element2 = new DictionaryElement(); + element2.setName("equals"); + element2.setShortName("equals"); + element2.setType("string"); + element2.setDescription("equals"); + dictionaryTest2.addDictionaryElements(element2); + dictionaryService.saveOrUpdateDictionary(dictionaryTest2); + + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("tosca/tosca_metadata_clamp_possible_values.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + + JsonObject jsonSchema = jsonTemplateManager.getJsonSchemaForPolicyType( + "onap.policies.monitoring.cdap.tca.hi.lo.app", toscaMetadataParserWithDictionarySupport); + + JSONAssert.assertEquals( + ResourceFileUtil + .getResourceAsString("tosca/new-converter/tca-with-metadata.json"), + JsonUtils.GSON.toJson(jsonSchema), true); + } +} diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaElementPropertyTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaElementPropertyTest.java new file mode 100644 index 000000000..967f330dc --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaElementPropertyTest.java @@ -0,0 +1,79 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.tosca.update; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import java.io.IOException; +import java.util.ArrayList; +import junit.framework.TestCase; +import org.onap.clamp.clds.tosca.update.elements.ToscaElement; +import org.onap.clamp.clds.tosca.update.elements.ToscaElementProperty; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplate; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplateManager; +import org.onap.clamp.clds.util.ResourceFileUtil; + +public class ToscaElementPropertyTest extends TestCase { + public ToscaElementPropertyTest() throws IOException { + } + + /** + * Test Parse array. + * + * @throws IOException In case of failure + */ + public void testParseArray() throws IOException { + JsonTemplateManager jsonTemplateManager = new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor"); + ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("actor"); + JsonArray toTest = + toscaElementProperty.parseArray((ArrayList) toscaElementProperty.getItems().get("default")); + assertNotNull(toTest); + } + + /** + * Test add constraint as json. + * + * @throws IOException In case of failure + */ + public void testAddConstraintsAsJson() throws IOException { + JsonTemplateManager jsonTemplateManager = new JsonTemplateManager( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + ToscaElement toscaElement = + jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.operation.Failure"); + ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("category"); + JsonTemplate jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("string"); + JsonObject toTest = new JsonObject(); + toscaElementProperty + .addConstraintsAsJson(toTest, (ArrayList) toscaElementProperty.getItems().get("constraints"), + jsonTemplate); + String test = "{\"enum\":[\"error\",\"timeout\",\"retries\",\"guard\",\"exception\"]}"; + assertEquals(test, String.valueOf(toTest)); + } +} \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaElementTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaElementTest.java index 7ffba4e00..5f7de28ae 100644 --- a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaElementTest.java +++ b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaElementTest.java @@ -27,6 +27,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import junit.framework.TestCase; +import org.onap.clamp.clds.tosca.update.elements.ToscaElement; +import org.onap.clamp.clds.tosca.update.templates.JsonTemplateManager; import org.onap.clamp.clds.util.ResourceFileUtil; public class ToscaElementTest extends TestCase { @@ -38,12 +40,12 @@ public class ToscaElementTest extends TestCase { */ public void testPropertiesNames() throws IOException { ArrayList reference = new ArrayList<>(Arrays.asList("actor", "operation", "target", "payload")); - ToscaConverterManager toscaConverterManager = - new ToscaConverterManager( + JsonTemplateManager jsonTemplateManager = + new JsonTemplateManager( ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/default-tosca-types.yaml"), - ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.json")); - ToscaElement toscaElement = toscaConverterManager.getComponents().get("onap.datatype.controlloop.Actor"); + ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json")); + ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor"); assertEquals(reference, toscaElement.propertiesNames()); } diff --git a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java index 184a391d7..8eeba07ed 100644 --- a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java +++ b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java @@ -39,7 +39,6 @@ import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; -import org.onap.clamp.loop.Loop; import org.onap.clamp.loop.template.PolicyModel; import org.onap.clamp.policy.microservice.MicroServicePolicy; import org.onap.clamp.policy.operational.OperationalPolicy; @@ -65,11 +64,11 @@ public class ClampGraphBuilderTest { public void clampGraphBuilderCompleteChainTest() { String collector = "VES"; MicroServicePolicy ms1 = new MicroServicePolicy("ms1", new PolicyModel("org.onap.ms1", "", "1.0.0"), false, - null); + null, null, null, null); MicroServicePolicy ms2 = new MicroServicePolicy("ms2", new PolicyModel("org.onap.ms2", "", "1.0.0"), false, - null); + null, null, null, null); - OperationalPolicy opPolicy = new OperationalPolicy("OperationalPolicy", new Loop(), new JsonObject(), + OperationalPolicy opPolicy = new OperationalPolicy("OperationalPolicy", new JsonObject(), new JsonObject(), new PolicyModel("org.onap.opolicy", null, "1.0.0", "opolicy1"), null, null, null); final Set opPolicies = Set.of(opPolicy); final Set microServices = Set.of(ms1, ms2); @@ -92,9 +91,11 @@ public class ClampGraphBuilderTest { public void clampGraphBuilderNoPolicyGivenTest() { String collector = "VES"; MicroServicePolicy ms1 = - new MicroServicePolicy("ms1", new PolicyModel("org.onap.ms1", "", "1.0.0"), false, null); + new MicroServicePolicy("ms1", new PolicyModel("org.onap.ms1", "", "1.0.0"), false, null, null, null, + null); MicroServicePolicy ms2 = - new MicroServicePolicy("ms2", new PolicyModel("org.onap.ms2", "", "1.0.0"), false, null); + new MicroServicePolicy("ms2", new PolicyModel("org.onap.ms2", "", "1.0.0"), false, null, null, null, + null); ClampGraphBuilder clampGraphBuilder = new ClampGraphBuilder(mockPainter); assertThat(clampGraphBuilder.collector(collector).addMicroService(ms1).addMicroService(ms2).build()) diff --git a/src/test/java/org/onap/clamp/clds/util/drawing/SvgLoopGeneratorTest.java b/src/test/java/org/onap/clamp/clds/util/drawing/SvgLoopGeneratorTest.java index a320131c4..9559fa17d 100644 --- a/src/test/java/org/onap/clamp/clds/util/drawing/SvgLoopGeneratorTest.java +++ b/src/test/java/org/onap/clamp/clds/util/drawing/SvgLoopGeneratorTest.java @@ -24,6 +24,7 @@ package org.onap.clamp.clds.util.drawing; import static org.assertj.core.api.Assertions.assertThat; + import com.google.gson.JsonObject; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; @@ -38,12 +39,11 @@ public class SvgLoopGeneratorTest { private Loop getLoop() { MicroServicePolicy ms1 = new MicroServicePolicy("ms1", new PolicyModel("org.onap.ms1", "", "1.0.0", "short.ms1"), - false, - null); + false,null,null,null,null); MicroServicePolicy ms2 = new MicroServicePolicy("ms2", new PolicyModel("org.onap.ms2", "", "1.0.0", "short.ms2"), - false, null); - OperationalPolicy opPolicy = new OperationalPolicy("OperationalPolicy", new Loop(), new JsonObject(), + false, null,null,null,null); + OperationalPolicy opPolicy = new OperationalPolicy("OperationalPolicy", new JsonObject(),new JsonObject(), new PolicyModel("org.onap.opolicy", null, "1.0.0", "short.OperationalPolicy"), null, null, null); Loop loop = new Loop(); loop.addMicroServicePolicy(ms1); diff --git a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java index a57a35ea4..d06695545 100644 --- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java @@ -27,6 +27,7 @@ package org.onap.clamp.loop; import static org.assertj.core.api.Assertions.assertThat; + import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -96,7 +97,8 @@ public class CsarInstallerItCase { private CsarInstaller csarInstaller; private BlueprintArtifact buildFakeBuildprintArtifact(String instanceName, String invariantResourceUuid, - String blueprintFilePath, String artifactName, String invariantServiceUuid) throws IOException { + String blueprintFilePath, String artifactName, + String invariantServiceUuid) throws IOException { IResourceInstance resource = Mockito.mock(IResourceInstance.class); Mockito.when(resource.getResourceInstanceName()).thenReturn(instanceName); Mockito.when(resource.getResourceInvariantUUID()).thenReturn(invariantResourceUuid); diff --git a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java index 24a9037ad..4d51bb27c 100644 --- a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java +++ b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java @@ -30,6 +30,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import java.io.IOException; import java.util.Set; import javax.transaction.Transactional; import org.junit.Test; @@ -46,7 +47,6 @@ import org.onap.clamp.policy.operational.OperationalPolicy; import org.onap.clamp.policy.operational.OperationalPolicyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.Commit; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @@ -77,10 +77,10 @@ public class LoopControllerTestItCase { private void saveTestLoopToDb() { Loop testLoop = createTestLoop(EXAMPLE_LOOP_NAME, "blueprint", "representation"); testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class)); - LoopTemplate template = new LoopTemplate(); + LoopTemplate template = new LoopTemplate(); template.setName("testTemplate"); testLoop.setLoopTemplate(template); - Service modelService = new Service("{\"name\":\"serviceName\",\"UUID\":\"uuid\"}","{}"); + Service modelService = new Service("{\"name\":\"serviceName\",\"UUID\":\"uuid\"}", "{}"); testLoop.setModelService(modelService); loopService.saveOrUpdateLoop(testLoop); } @@ -140,7 +140,7 @@ public class LoopControllerTestItCase { public void testUpdateMicroservicePolicy() { saveTestLoopToDb(); PolicyModel policyModel = new PolicyModel("testPolicyModel", - "tosca_definitions_version: tosca_simple_yaml_1_0_0","1.0.0"); + "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0"); policyModelsService.saveOrUpdatePolicyModel(policyModel); MicroServicePolicy policy = new MicroServicePolicy("policyName", policyModel, false, JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null); @@ -158,10 +158,10 @@ public class LoopControllerTestItCase { @Test @Transactional - public void testAddAndRemoveOperationalPolicies() { + public void testAddAndRemoveOperationalPolicies() throws IOException { saveTestLoopToDb(); PolicyModel policyModel = new PolicyModel("testPolicyModel", - "tosca_definitions_version: tosca_simple_yaml_1_0_0","1.0.0"); + null, "1.0.0"); policyModelsService.saveOrUpdatePolicyModel(policyModel); loopController.addOperationalPolicy(EXAMPLE_LOOP_NAME, "testPolicyModel", "1.0.0"); @@ -169,7 +169,7 @@ public class LoopControllerTestItCase { Loop newLoop = loopController.getLoop(EXAMPLE_LOOP_NAME); Set opPolicyList = newLoop.getOperationalPolicies(); assertThat(opPolicyList.size()).isEqualTo(1); - for(OperationalPolicy policy : opPolicyList) { + for (OperationalPolicy policy : opPolicyList) { assertThat(policy.getName().contains("OPERATIONAL_serviceName")).isTrue(); assertThat(policy.getPolicyModel().getPolicyModelType()).isEqualTo("testPolicyModel"); assertThat(policy.getPolicyModel().getVersion()).isEqualTo("1.0.0"); diff --git a/src/test/java/org/onap/clamp/loop/PolicyComponentTest.java b/src/test/java/org/onap/clamp/loop/PolicyComponentTest.java index 89d3e6172..1c9b10189 100644 --- a/src/test/java/org/onap/clamp/loop/PolicyComponentTest.java +++ b/src/test/java/org/onap/clamp/loop/PolicyComponentTest.java @@ -28,7 +28,6 @@ import static org.assertj.core.api.Assertions.assertThat; import com.google.gson.Gson; import com.google.gson.JsonObject; import java.io.IOException; -import java.util.HashSet; import org.apache.camel.Exchange; import org.apache.camel.Message; import org.junit.Test; @@ -265,9 +264,12 @@ public class PolicyComponentTest { loopTest.addMicroServicePolicy(microServicePolicy); PolicyModel policyModel2 = new PolicyModel("onap.policies.controlloop.Operational", null, "1.0.0"); - OperationalPolicy opPolicy = new OperationalPolicy("opPolicy", loopTest, - new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), policyModel2, null, "pdpGroup2", - "pdpSubgroup2"); + OperationalPolicy opPolicy = + new OperationalPolicy("opPolicy", new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), + new Gson().fromJson("{\"jsonschema\":\"schema\"}", JsonObject.class), policyModel2, null, + "pdpGroup2", + "pdpSubgroup2"); + loopTest.addOperationalPolicy(opPolicy); LoopTemplate loopTemplate = new LoopTemplate("test", "yaml", "svg", 1, null); diff --git a/src/test/java/org/onap/clamp/policy/microservice/MicroServicePayloadTest.java b/src/test/java/org/onap/clamp/policy/microservice/MicroServicePayloadTest.java index ea1218206..01e2184a7 100644 --- a/src/test/java/org/onap/clamp/policy/microservice/MicroServicePayloadTest.java +++ b/src/test/java/org/onap/clamp/policy/microservice/MicroServicePayloadTest.java @@ -37,7 +37,7 @@ public class MicroServicePayloadTest { public void testPayloadConstruction() throws IOException { MicroServicePolicy policy = new MicroServicePolicy("testPolicy", new PolicyModel( "onap.policies.monitoring.cdap.tca.hi.lo.app", - ResourceFileUtil.getResourceAsString("tosca/tosca_example.yaml"),"1.0.0"), false, null); + ResourceFileUtil.getResourceAsString("tosca/tosca_example.yaml"),"1.0.0"), false,null,null, null,null); policy.setConfigurationsJson(JsonUtils.GSON.fromJson( ResourceFileUtil.getResourceAsString("tosca/micro-service-policy-properties.json"), JsonObject.class)); JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/micro-service-policy-payload.json"), diff --git a/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java b/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java index 4b8eee921..58a432d34 100644 --- a/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java +++ b/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java @@ -42,8 +42,8 @@ public class OperationalPolicyPayloadTest { public void testOperationalPolicyLegacyPayloadConstruction() throws IOException { JsonObject jsonConfig = new GsonBuilder().create().fromJson( ResourceFileUtil.getResourceAsString("tosca/operational-policy-properties.json"), JsonObject.class); - OperationalPolicy policy = new OperationalPolicy("testPolicy.legacy", null, jsonConfig, - new PolicyModel("onap.policies.controlloop.Operational.legacy","","1.0.0","test"), null,null,null); + OperationalPolicy policy = new OperationalPolicy("testPolicy.legacy", jsonConfig, null, + new PolicyModel("onap.policies.controlloop.Operational.legacy", "", "1.0.0", "test"), null, null, null); assertThat(policy.createPolicyPayloadYaml()) .isEqualTo(ResourceFileUtil.getResourceAsString("tosca/operational-policy-payload.yaml")); @@ -65,7 +65,7 @@ public class OperationalPolicyPayloadTest { JsonObject jsonConfig = new GsonBuilder().create().fromJson( ResourceFileUtil.getResourceAsString("tosca/operational-policy-no-guard-properties.json"), JsonObject.class); - OperationalPolicy policy = new OperationalPolicy("testPolicy", null, jsonConfig, null, null, null, null); + OperationalPolicy policy = new OperationalPolicy("testPolicy", jsonConfig, null, null, null, null, null); Map guardsMap = policy.createGuardPolicyPayloads(); assertThat(guardsMap).isEmpty(); assertThat(guardsMap.entrySet()).isEmpty(); @@ -75,7 +75,7 @@ public class OperationalPolicyPayloadTest { public void testGuardPolicyPayloadConstruction() throws IOException { JsonObject jsonConfig = new GsonBuilder().create().fromJson( ResourceFileUtil.getResourceAsString("tosca/operational-policy-properties.json"), JsonObject.class); - OperationalPolicy policy = new OperationalPolicy("testPolicy", null, jsonConfig, null, null, null, null); + OperationalPolicy policy = new OperationalPolicy("testPolicy", jsonConfig, null, null, null, null, null); Map guardsMap = policy.createGuardPolicyPayloads(); diff --git a/src/test/java/org/onap/clamp/util/SemanticVersioningTest.java b/src/test/java/org/onap/clamp/util/SemanticVersioningTest.java index e018f0952..88f2bbe1b 100644 --- a/src/test/java/org/onap/clamp/util/SemanticVersioningTest.java +++ b/src/test/java/org/onap/clamp/util/SemanticVersioningTest.java @@ -23,12 +23,15 @@ package org.onap.clamp.util; -import org.junit.Test; - import static org.assertj.core.api.Assertions.assertThat; +import org.junit.Test; + public class SemanticVersioningTest { + /** + * compare test. + */ @Test public void compareTest() { assertThat(SemanticVersioning.compare("1.0.0", "2.0.0")).isEqualTo(-1); @@ -53,6 +56,9 @@ public class SemanticVersioningTest { assertThat(SemanticVersioning.compare("1.2", "1")).isEqualTo(1); } + /** + * Compare test. + */ @Test public void compareEqualsTest() { assertThat(SemanticVersioning.compare("1.0.0", "1.0.0")).isEqualTo(0); @@ -62,6 +68,9 @@ public class SemanticVersioningTest { } + /** + * Compare with null. + */ @Test public void compareNullTest() { assertThat(SemanticVersioning.compare(null, null)).isEqualTo(0); @@ -69,6 +78,9 @@ public class SemanticVersioningTest { assertThat(SemanticVersioning.compare("1.0", null)).isEqualTo(1); } + /** + * Increment major version test. + */ @Test public void incrementVersionTest() { assertThat(SemanticVersioning.incrementMajorVersion("1.0")).isEqualTo("2.0.0"); diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 0e453535c..ea17836a0 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -168,4 +168,6 @@ clamp.config.cds.userName=ccsdkapps clamp.config.cds.password=ccsdkapps ## Tosca converter -clamp.config.tosca.converter.templates=classpath:/clds/tosca_updates/templates.json \ No newline at end of file +clamp.config.tosca.converter.json.schema.templates=classpath:/clds/tosca-converter/templates.json +clamp.config.tosca.converter.default.datatypes=classpath:/clds/tosca-converter/default-tosca-types.yaml +clamp.config.tosca.converter.dictionary.support.enabled=true \ No newline at end of file diff --git a/src/test/resources/clds/camel/rest/clamp-api-v2.xml b/src/test/resources/clds/camel/rest/clamp-api-v2.xml deleted file mode 100644 index b0a8d2fd7..000000000 --- a/src/test/resources/clds/camel/rest/clamp-api-v2.xml +++ /dev/null @@ -1,984 +0,0 @@ - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - ${body} - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - ${body} - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - ${body} - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - - - false - - - - - ${exchangeProperty[loopObject].getMicroServicePolicies()} - - - ${body} - - - - false - - - - - - - ${exchangeProperty[loopObject].getOperationalPolicies()} - - - ${body} - - - - false - - - - - - - - ${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()} - - - ${body} - - - - - false - - - - - - - - 3000 - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - - - - - ${exchangeProperty[loopObject].getMicroServicePolicies()} - - - ${body} - - - - - - - - ${exchangeProperty[loopObject].getOperationalPolicies()} - - - ${body} - - - - - - ${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()} - - - ${body} - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - ${exchangeProperty[loopObject]} - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - ${body} - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - ${body} - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - - - - - - - - - - java.lang.Exception - - true - - - 500 - - - ERROR: ${exception.message} - - - - - - - - - - - - - - - - java.lang.Exception - - true - - - 500 - - - ERROR: ${exception.message} - - - - - - - - - - - - - - - - java.lang.Exception - - true - - - 500 - - - ERROR: ${exception.message} - - - - - - - - - - - - - - - ${body} - - - - - java.lang.Exception - - true - - - 404 - - - ERROR: ${exception.message} - - - - - - - - - - - - - - - - - - java.lang.Exception - - true - - - 500 - - - ERROR: ${exception.message} - - - - - - - - - - - - - - - - java.lang.Exception - - true - - - 500 - - - ERROR: ${exception.message} - - - - - - - - - - - - - - - - java.lang.Exception - - false - - - - - - - - diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0?connectionTimeToLive=5000/.file b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0?connectionTimeToLive=5000/.file index 44f55879e..64ba559c1 100644 --- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0?connectionTimeToLive=5000/.file +++ b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0?connectionTimeToLive=5000/.file @@ -91,7 +91,7 @@ data_types: description: The resource the operation should be performed on. required: true metadata: - clamp_possible_values: + clamp_possible_values: test payload: type: map description: Name/value pairs of payload information passed by Policy to the actor @@ -116,7 +116,7 @@ data_types: description: The definition of the operation to be performed. required: true metadata: - clamp_possible_values: + clamp_possible_values: test timeout: type: integer description: The amount of time for the actor to perform the operation. diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0?connectionTimeToLive=5000/.file b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0?connectionTimeToLive=5000/.file index 72897be07..1c082b1ee 100644 --- a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0?connectionTimeToLive=5000/.file +++ b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0?connectionTimeToLive=5000/.file @@ -79,7 +79,7 @@ data_types: description: The resource the operation should be performed on. required: true metadata: - clamp_possible_values: + clamp_possible_values: test payload: type: map description: Name/value pairs of payload information passed by Policy to the actor @@ -104,7 +104,7 @@ data_types: description: The definition of the operation to be performed. required: true metadata: - clamp_possible_values: + clamp_possible_values: test timeout: type: integer description: The amount of time for the actor to perform the operation. diff --git a/src/test/resources/tosca/new-converter/tca-with-metadata.json b/src/test/resources/tosca/new-converter/tca-with-metadata.json new file mode 100644 index 000000000..1b95f8c95 --- /dev/null +++ b/src/test/resources/tosca/new-converter/tca-with-metadata.json @@ -0,0 +1,222 @@ +{ + "title": "onap.policies.monitoring.cdap.tca.hi.lo.app", + "type": "object", + "required": [], + "properties": { + "tca_policy": { + "type": "object", + "description": "TCA Policy JSON", + "properties": { + "onap.datatypes.monitoring.tca_policy": { + "title": "onap.datatypes.monitoring.tca_policy", + "type": "object", + "required": [ + "domain", + "metricsPerEventName" + ], + "properties": { + "domain": { + "type": "string", + "description": "Domain name to which TCA needs to be applied", + "default": "measurementsForVfScaling", + "const": "measurementsForVfScaling" + }, + "metricsPerEventName": { + "type": "array", + "description": "Contains eventName and threshold details that need to be applied to given eventName", + "items": { + "title": "onap.datatypes.monitoring.metricsPerEventName", + "type": "object", + "required": [ + "controlLoopSchemaType", + "eventName", + "policyName", + "policyScope", + "policyVersion", + "thresholds", + "context", + "signature" + ], + "properties": { + "controlLoopSchemaType": { + "type": "string", + "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM", + "enum": [ + "VM", + "VNF" + ] + }, + "eventName": { + "type": "string", + "description": "Event name to which thresholds need to be applied" + }, + "policyName": { + "type": "string", + "description": "TCA Policy Scope Name" + }, + "policyScope": { + "type": "string", + "description": "TCA Policy Scope" + }, + "policyVersion": { + "type": "string", + "description": "TCA Policy Scope Version" + }, + "thresholds": { + "type": "array", + "description": "Thresholds associated with eventName", + "items": { + "title": "onap.datatypes.monitoring.thresholds", + "type": "object", + "required": [ + "closedLoopControlName", + "closedLoopEventStatus", + "direction", + "fieldPath", + "severity", + "thresholdValue", + "version" + ], + "properties": { + "closedLoopControlName": { + "type": "string", + "description": "Closed Loop Control Name associated with the threshold" + }, + "closedLoopEventStatus": { + "type": "string", + "description": "Closed Loop Event Status of the threshold", + "enum": [ + "ONSET", + "ABATED" + ] + }, + "direction": { + "type": "string", + "description": "Direction of the threshold", + "enum": [ + "LESS", + "LESS_OR_EQUAL", + "GREATER", + "GREATER_OR_EQUAL", + "EQUAL" + ] + }, + "fieldPath": { + "type": "string", + "description": "Json field Path as per CEF message which needs to be analyzed for TCA", + "enum": [ + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage", + "$.event.measurementsForVfScalingFields.meanRequestLatency", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed", + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value" + ] + }, + "severity": { + "type": "string", + "description": "Threshold Event Severity", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "NORMAL" + ] + }, + "thresholdValue": { + "type": "integer", + "description": "Threshold value for the field Path inside CEF message" + }, + "version": { + "type": "string", + "description": "Version number associated with the threshold" + } + } + } + }, + "context": { + "type": "string", + "description": "TCA Policy Dummy Context", + "enum": [ + "PROD" + ], + "options": { + "enum_titles": [ + "PROD" + ] + } + }, + "signature": { + "title": "onap.datatypes.monitoring.Dummy_Signature", + "type": "object", + "required": [ + "filter_clause" + ], + "properties": { + "filter_clause": { + "type": "qbldr", + "description": "Filter Clause", + "minLength": 1, + "qschema": { + "filters": [ + { + "type": "string", + "minLength": 1, + "id": "alarmCondition", + "label": "alarmCondition", + "operators": [ + "equals" + ] + } + ] + } + } + } + } + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/test/resources/tosca/new-converter/tca-with-metadata.yaml b/src/test/resources/tosca/new-converter/tca-with-metadata.yaml new file mode 100644 index 000000000..c0d2a86e0 --- /dev/null +++ b/src/test/resources/tosca/new-converter/tca-with-metadata.yaml @@ -0,0 +1,184 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + onap.policies.Monitoring: + derived_from: tosca.policies.Root + description: a base policy type for all policies that governs monitoring provisioning + onap.policies.monitoring.cdap.tca.hi.lo.app: + derived_from: onap.policies.Monitoring + version: 1.0.0 + properties: + tca_policy: + type: map + description: TCA Policy JSON + entry_schema: + type: onap.datatypes.monitoring.tca_policy + metadata: + policy_model_type: onap.policies.monitoring.cdap.tca.hi.lo.app + acronym: tca + +data_types: + onap.datatypes.monitoring.metricsPerEventName: + derived_from: tosca.datatypes.Root + properties: + controlLoopSchemaType: + type: string + required: true + description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM + constraints: + - valid_values: + - VM + - VNF + eventName: + type: string + required: true + description: Event name to which thresholds need to be applied + policyName: + type: string + required: true + description: TCA Policy Scope Name + policyScope: + type: string + required: true + description: TCA Policy Scope + policyVersion: + type: string + required: true + description: TCA Policy Scope Version + thresholds: + type: list + required: true + description: Thresholds associated with eventName + entry_schema: + type: onap.datatypes.monitoring.thresholds + context: + type: string + required: true + description: TCA Policy Dummy Context + metadata: + clamp_possible_values: "Dictionary:Context" + + signature: + type: onap.datatypes.monitoring.Dummy_Signature + description: Signature + required: true + + onap.datatypes.monitoring.Dummy_Signature: + derived_from: tosca.datatypes.Root + properties: + filter_clause: + type: string + description: Filter Clause + required: true + metadata: + clamp_possible_values: "Dictionary:EventDictionary#Operators" + + onap.datatypes.monitoring.tca_policy: + derived_from: tosca.datatypes.Root + properties: + domain: + type: string + required: true + description: Domain name to which TCA needs to be applied + default: measurementsForVfScaling + constraints: + - equal: measurementsForVfScaling + metricsPerEventName: + type: list + required: true + description: Contains eventName and threshold details that need to be applied to given eventName + entry_schema: + type: onap.datatypes.monitoring.metricsPerEventName + onap.datatypes.monitoring.thresholds: + derived_from: tosca.datatypes.Root + properties: + closedLoopControlName: + type: string + required: true + description: Closed Loop Control Name associated with the threshold + closedLoopEventStatus: + type: string + required: true + description: Closed Loop Event Status of the threshold + constraints: + - valid_values: + - ONSET + - ABATED + direction: + type: string + required: true + description: Direction of the threshold + constraints: + - valid_values: + - LESS + - LESS_OR_EQUAL + - GREATER + - GREATER_OR_EQUAL + - EQUAL + fieldPath: + type: string + required: true + description: Json field Path as per CEF message which needs to be analyzed for TCA + constraints: + - valid_values: + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated + - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait + - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage + - $.event.measurementsForVfScalingFields.meanRequestLatency + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree + - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed + - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value + severity: + type: string + required: true + description: Threshold Event Severity + constraints: + - valid_values: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - NORMAL + thresholdValue: + type: integer + required: true + description: Threshold value for the field Path inside CEF message + version: + type: string + required: true + description: Version number associated with the threshold -- cgit 1.2.3-korg