aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorWeberLaurent <weberlaurent23@gmail.com>2020-02-06 10:23:01 +0100
committersebdet <sebastien.determe@intl.att.com>2020-03-03 12:41:30 -0800
commitf0a648cc89cb870a4053d47a06fe2a4a54cc3f1c (patch)
tree73943b8d2e363ff74393f60160f3d2d23f3c86ff /src/test
parentfb445e11abb3ad59e5e2305b023422e2b4796989 (diff)
Rework tosca converter
New code to convert the Policy Tosca Yaml to Json Schema for the Clamp UI Issue-ID: CLAMP-253 Change-Id: I10c1d3d81c5feae402773de94bd88c190ec68645 Signed-off-by: WeberLaurent <weberlaurent23@gmail.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/clamp/clds/tosca/update/ArrayFieldTest.java50
-rw-r--r--src/test/java/org/onap/clamp/clds/tosca/update/ComponentTest.java49
-rw-r--r--src/test/java/org/onap/clamp/clds/tosca/update/ConstraintTest.java97
-rw-r--r--src/test/java/org/onap/clamp/clds/tosca/update/PropertyTest.java69
-rw-r--r--src/test/java/org/onap/clamp/clds/tosca/update/TemplateManagementTest.java116
-rw-r--r--src/test/java/org/onap/clamp/clds/tosca/update/TemplateTest.java44
-rw-r--r--src/test/resources/tosca/base.yaml171
-rw-r--r--src/test/resources/tosca/new-converter/constraints.yaml60
-rw-r--r--src/test/resources/tosca/new-converter/origin.json1
-rw-r--r--src/test/resources/tosca/new-converter/rendu.json1
-rw-r--r--src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml160
-rw-r--r--src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml174
-rw-r--r--src/test/resources/tosca/templates.properties7
13 files changed, 999 insertions, 0 deletions
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
new file mode 100644
index 000000000..abf65c366
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/tosca/update/ArrayFieldTest.java
@@ -0,0 +1,50 @@
+/*-
+ * ============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 java.io.IOException;
+import java.util.ArrayList;
+import junit.framework.TestCase;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+
+public class ArrayFieldTest extends TestCase {
+
+ /**
+ * Test the deploy method.
+ *
+ * @throws IOException in case of failure
+ */
+ public void testDeploy() throws IOException {
+ TemplateManagement templateManagement = new TemplateManagement(ResourceFileUtil.getResourceAsString(
+ "tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ Component component = templateManagement.getComponents().get("onap.datatype.controlloop.Actor");
+ Property property = component.getProperties().get("actor");
+ ArrayField arrayParser = new ArrayField((ArrayList<Object>) property.getItems().get("default"));
+ JsonArray toTest = arrayParser.deploy();
+ String reference = "[1,\"String\",5.5,true]";
+ assertEquals(reference, String.valueOf(toTest));
+ }
+} \ No newline at end of file
diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ComponentTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/ComponentTest.java
new file mode 100644
index 000000000..0494ee11d
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/tosca/update/ComponentTest.java
@@ -0,0 +1,49 @@
+/*-
+ * ============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 junit.framework.TestCase;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+
+public class ComponentTest extends TestCase {
+
+ /**
+ * Test propertiesName.
+ *
+ * @throws IOException In case of failure
+ */
+ public void testPropertiesNames() throws IOException {
+ ArrayList<String> reference = new ArrayList<>(Arrays.asList("actor", "operation", "target", "payload"));
+ TemplateManagement templateManagement =
+ new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ Component component = templateManagement.getComponents().get("onap.datatype.controlloop.Actor");
+ assertEquals(reference, component.propertiesNames());
+ }
+
+}
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
new file mode 100644
index 000000000..a71ea8ac4
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/tosca/update/ConstraintTest.java
@@ -0,0 +1,97 @@
+/*-
+ * ============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 java.util.ArrayList;
+import junit.framework.TestCase;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+
+public class ConstraintTest extends TestCase {
+
+ TemplateManagement templateManagement = new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/constraints.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+
+ Component component = templateManagement.getComponents().get("onap.datatype.controlloop.Operation");
+
+ public ConstraintTest() throws IOException {
+ }
+
+ /**
+ * Test get value array.
+ */
+ public void testGetValuesArray() {
+ Property property = component.getProperties().get("timeout");
+ Template template = templateManagement.getTemplates().get("integer");
+ JsonObject resultProcess = new JsonObject();
+ property.addConstraintsAsJson(resultProcess, (ArrayList<Object>) property.getItems().get("constraints"),
+ template);
+ String reference = "{\"enum\":[3,4,5.5,6,10]}";
+ assertEquals(reference, String.valueOf(resultProcess));
+ property = component.getProperties().get("success");
+ template = templateManagement.getTemplates().get("string");
+ resultProcess = new JsonObject();
+ property.addConstraintsAsJson(resultProcess, (ArrayList<Object>) property.getItems().get("constraints"),
+ template);
+ reference = "{\"enum\":[\"VALID\",\"TERMINATED\"]}";
+ assertEquals(reference, String.valueOf(resultProcess));
+ }
+
+ /**
+ * Test get Specific length.
+ */
+ public void testGetSpecificLength() {
+ //Test for string type, same process for array
+ Property property = component.getProperties().get("id");
+ Template template = templateManagement.getTemplates().get("string");
+ JsonObject resultProcess = new JsonObject();
+ property.addConstraintsAsJson(resultProcess, (ArrayList<Object>) property.getItems().get("constraints"),
+ template);
+ int specificLength = 8;
+ int toTest = resultProcess.get("minLength").getAsInt();
+ assertEquals(specificLength, toTest);
+ toTest = resultProcess.get("maxLength").getAsInt();
+ assertEquals(specificLength, toTest);
+ }
+
+ /**
+ * Test get limit value.
+ */
+ public void testGetLimitValue() {
+ //Test for array type, same process for string
+ Property property = component.getProperties().get("description");
+ Template template = templateManagement.getTemplates().get("array");
+ JsonObject resultProcess = new JsonObject();
+ property.addConstraintsAsJson(resultProcess, (ArrayList<Object>) property.getItems().get("constraints"),
+ template);
+
+ int toTest = resultProcess.get("minItems").getAsInt();
+ assertEquals(5, toTest);
+ toTest = resultProcess.get("maxItems").getAsInt();
+ assertEquals(7, toTest);
+ }
+
+} \ 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
new file mode 100644
index 000000000..cf183af81
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/tosca/update/PropertyTest.java
@@ -0,0 +1,69 @@
+/*-
+ * ============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 {
+ TemplateManagement templateManagement = new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ Component component = templateManagement.getComponents().get("onap.datatype.controlloop.Actor");
+ Property property = component.getProperties().get("actor");
+ JsonArray toTest = property.parseArray((ArrayList<Object>) property.getItems().get("default"));
+ assertNotNull(toTest);
+ }
+
+ /**
+ * Test add constraint as json.
+ *
+ * @throws IOException In case of failure
+ */
+ public void testAddConstraintsAsJson() throws IOException {
+ TemplateManagement templateManagement = new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ Component component = templateManagement.getComponents().get("onap.datatype.controlloop.operation.Failure");
+ Property property = component.getProperties().get("category");
+ Template template = templateManagement.getTemplates().get("string");
+ JsonObject toTest = new JsonObject();
+ property.addConstraintsAsJson(toTest, (ArrayList<Object>) 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/TemplateManagementTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/TemplateManagementTest.java
new file mode 100644
index 000000000..8e411069c
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/tosca/update/TemplateManagementTest.java
@@ -0,0 +1,116 @@
+/*-
+ * ============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 junit.framework.TestCase;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+
+public class TemplateManagementTest extends TestCase {
+
+ /**
+ * Test the launch translation.
+ *
+ * @throws IOException In case of failure
+ * @throws UnknownComponentException In case of failure
+ */
+ public void testLaunchTranslation() throws IOException, UnknownComponentException {
+ TemplateManagement templateManagement =
+ new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ assertNull(templateManagement.getParseToJson());
+ String componentName = "onap.policies.controlloop.operational.common.Drools";
+ templateManagement.launchTranslation(componentName);
+ assertNotNull(templateManagement.getParseToJson());
+ }
+
+ /**
+ * Test addTemplate.
+ *
+ * @throws IOException In case of failure
+ */
+ public void testAddTemplate() throws IOException {
+ TemplateManagement templateManagement =
+ new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ int count = templateManagement.getTemplates().size();
+ ArrayList<String> templateFields =
+ new ArrayList<>(Arrays.asList("type", "description", "required", "metadata", "constraints"));
+ templateManagement.addTemplate("test", templateFields);
+ assertNotSame(count, templateManagement.getTemplates().size());
+ }
+
+ /**
+ * test Remove template.
+ *
+ * @throws IOException In case of failure
+ */
+ public void testRemoveTemplate() throws IOException {
+ TemplateManagement templateManagement =
+ new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ int count = templateManagement.getTemplates().size();
+ templateManagement.removeTemplate("string");
+ assertNotSame(count, templateManagement.getTemplates().size());
+ }
+
+ /**
+ * Test update template.
+ *
+ * @throws IOException In case of failure
+ */
+ public void testUpdateTemplate() throws IOException {
+ TemplateManagement templateManagement =
+ new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ int count = templateManagement.getTemplates().get("integer").getFields().size();
+ templateManagement.updateTemplate("integer", "type", false);
+ assertNotSame(count, templateManagement.getTemplates().get("integer").getFields().size());
+ }
+
+ /**
+ * Test has template.
+ *
+ * @throws IOException In case of failure
+ */
+ public void testHasTemplate() throws IOException {
+ TemplateManagement templateManagement =
+ new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ boolean has = true;
+ ArrayList<String> templateFieldsString =
+ new ArrayList<>(Arrays.asList("type", "description", "required", "metadata", "constraints"));
+ Template templateTest = new Template("String", templateFieldsString);
+ has = templateManagement.hasTemplate(templateTest);
+ assertEquals(false, has);
+ }
+
+}
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
new file mode 100644
index 000000000..ebc119f0d
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/tosca/update/TemplateTest.java
@@ -0,0 +1,44 @@
+/*-
+ * ============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 junit.framework.TestCase;
+
+public class TemplateTest extends TestCase {
+
+ /**
+ * Test check failed.
+ */
+ public void testCheckFields() {
+ Template toTest = new Template("toTest");
+ ArrayList<String> fields = new ArrayList<>(Arrays.asList("type", "description", "enum"));
+ toTest.setFields(fields);
+ Template reference = new Template("toTest");
+ reference.setFields(fields);
+ assertTrue(toTest.checkFields(reference));
+ }
+
+} \ No newline at end of file
diff --git a/src/test/resources/tosca/base.yaml b/src/test/resources/tosca/base.yaml
new file mode 100644
index 000000000..3d31cd203
--- /dev/null
+++ b/src/test/resources/tosca/base.yaml
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+topology_template:
+ policy_types:
+ onap.policies.controlloop.operational.Common:
+ derived_from: tosca.policies.Root
+ version: 1.0.0
+ description: Operational Policy for Control Loop execution
+ properties:
+ id:
+ type: String
+ description: The unique control loop id.
+ required: true
+ timeout:
+ type: Integer
+ description: |
+ Overall timeout for executing all the operations. This timeout should equal or exceed the total
+ timeout for each operation listed.
+ required: true
+ abatement:
+ type: Boolean
+ description: Whether an abatement event message will be expected for the control loop from DCAE.
+ required: true
+ default: false
+ trigger:
+ type: String
+ description: Initial operation to execute upon receiving an Onset event message for the Control Loop.
+ required: true
+ operations:
+ type: List
+ description: List of operations to be performed when Control Loop is triggered.
+ required: true
+ entry_schema:
+ type: onap.datatype.controlloop.operation.Failure
+
+ onap.policies.controlloop.operational.common.Apex:
+ derived_from: onap.policies.controlloop.operational.Common
+ type_version: 1.0.0
+ version: 1.0.0
+ description: Operational policies for Apex PDP
+ properties:
+
+ onap.policies.controlloop.operational.common.Drools:
+ derived_from: onap.policies.controlloop.operational.Common
+ type_version: 1.0.0
+ version: 1.0.0
+ description: Operational policies for Drools PDP
+ properties:
+ controllerName:
+ type: String
+ description: Drools controller properties
+ required: false
+
+data_types:
+ # TBD if this is needed
+ onap.datatype.controlloop.operation.Failure:
+ derived_from: tosca.datatypes.Root
+ description: Captures information of an operational failure performed for control loop
+ properties:
+ messages:
+ type: String
+ description: error message
+ required: true
+ category:
+ type: String
+ description: |
+ The category the error occurred in. Whether this is a general error from the actor, or the operation
+ timed out, retries were exhausted in trying to execute the operation, a guard policy prevented the
+ operation from occuring, or an exception in the system caused the failure.
+ constraints:
+ - valid_values: [error, timeout, retries, guard, exception]
+ - values: [4.5, false]
+
+ onap.datatype.controlloop.Target:
+ derived_from: tosca.datatypes.Root
+ description: Definition for a entity in A&AI to perform a control loop operation on
+ properties:
+ targetType:
+ type: String
+ description: Category for the target type
+ required: true
+ constraints:
+ - valid_values: [VNF, VM, VFMODULE, PNF]
+ entityIds:
+ type: Map
+ description: |
+ Map of values that identify the resource. If none are provided, it is assumed that the
+ entity that generated the ONSET event will be the target.
+ required: false
+
+ 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
+ operation:
+ type: String
+ description: The operation the actor is performing.
+ required: true
+ target:
+ type: String
+ description: The resource the operation should be performed on.
+ required: true
+ metadata:
+ clamp_possible_values: <string:see clamp project for syntax>
+ payload:
+ type: Map
+ description: Name/value pairs of payload information passed by Policy to the actor
+ required: false
+ 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
+ metadata:
+ clamp_possible_values: <string:see clamp project for syntax>
+ 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
diff --git a/src/test/resources/tosca/new-converter/constraints.yaml b/src/test/resources/tosca/new-converter/constraints.yaml
new file mode 100644
index 000000000..7a94ca965
--- /dev/null
+++ b/src/test/resources/tosca/new-converter/constraints.yaml
@@ -0,0 +1,60 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+ onap.policies.controlloop.operational.common.Drools:
+ derived_from: onap.policies.controlloop.operational.Common
+ type_version: 1.0.0
+ version: 1.0.0
+ description: Operational policies for Drools PDP
+ properties:
+ controllerName:
+ type: String
+ description: Drools controller properties
+ required: true
+data_types:
+ 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
+ constraints:
+ - length: 8
+ description:
+ type: Array
+ description: A user-friendly description of the intent for the operation
+ required: false
+ constraints:
+ - min_length: 5
+ - max_length: 7
+ test:
+ type: Integer
+ description: |
+ Overall timeout for executing all the operations. This timeout should equal or exceed the total
+ timeout for each operation listed.
+ required: true
+ constraints:
+ - greater_than: 7
+ - greater_or_equal: 1
+ - less_than: 7
+ - less_or_equal: 1
+ timeout:
+ type: Integer
+ description: The amount of time for the actor to perform the operation.
+ required: true
+ constraints:
+ - valid_values: [3,4,5.5,6,10]
+ retries:
+ type: Integer
+ description: The number of retries the actor should attempt to perform the operation.
+ required: true
+ default: 0
+ constraints:
+ - equal: 5
+ 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
+ constraints:
+ - valid_values: [VALID,TERMINATED]
diff --git a/src/test/resources/tosca/new-converter/origin.json b/src/test/resources/tosca/new-converter/origin.json
new file mode 100644
index 000000000..da0529d04
--- /dev/null
+++ b/src/test/resources/tosca/new-converter/origin.json
@@ -0,0 +1 @@
+{"onap.policies.controlloop.operational.common.Drools":{"derived_from":{"onap.policies.controlloop.operational.Common":{"derived_from":"tosca.policies.Root","required":["id","timeout","abatement","trigger","operations"],"properties":{"id":{"type":"String","description":"The unique control loop id.","required":true},"timeout":{"type":"Integer","description":"Overall timeout for executing all the operations. This timeout should equal or exceed the total\ntimeout for each operation listed.\n","required":true},"abatement":{"description":"Whether an abatement event message will be expected for the control loop from DCAE.","required":true},"trigger":{"type":"String","description":"Initial operation to execute upon receiving an Onset event message for the Control Loop.","required":true},"operations":{"type":"List","description":"List of operations to be performed when Control Loop is triggered.","required":true,"entry_schema":{"type":{"onap.datatype.controlloop.Operation":{"derived_from":"tosca.datatypes.Root","required":["id","operation","timeout","retries"],"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":{"derived_from":"tosca.datatypes.Root","required":["actor","operation","target"],"properties":{"actor":{"type":"String","description":"The actor performing the operation.","required":true},"operation":{"type":"String","description":"The operation the actor is performing.","required":true},"target":{"type":"String","description":"The resource the operation should be performed on.","required":true,"metadata":{"clamp_possible_values":"some special treatment"}},"payload":{"type":"Map","description":"Name/value pairs of payload information passed by Policy to the actor","required":false,"entry_schema":{"type":"String"}}}}},"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},"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},"failure":{"type":"String","description":"Points to the operation to invoke on Actor operation failure.","required":false},"failure_timeout":{"type":"String","description":"Points to the operation to invoke when the time out for the operation occurs.","required":false},"failure_retries":{"type":"String","description":"Points to the operation to invoke when the current operation has exceeded its max retries.","required":false},"failure_exception":{"type":"String","description":"Points to the operation to invoke when the current operation causes an exception.","required":false},"failure_guard":{"type":"String","description":"Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.","required":false}}}}}}}}},"required":[],"properties":{"controllerName":{"type":"String","description":"Drools controller properties","required":false}}}} \ No newline at end of file
diff --git a/src/test/resources/tosca/new-converter/rendu.json b/src/test/resources/tosca/new-converter/rendu.json
new file mode 100644
index 000000000..da0529d04
--- /dev/null
+++ b/src/test/resources/tosca/new-converter/rendu.json
@@ -0,0 +1 @@
+{"onap.policies.controlloop.operational.common.Drools":{"derived_from":{"onap.policies.controlloop.operational.Common":{"derived_from":"tosca.policies.Root","required":["id","timeout","abatement","trigger","operations"],"properties":{"id":{"type":"String","description":"The unique control loop id.","required":true},"timeout":{"type":"Integer","description":"Overall timeout for executing all the operations. This timeout should equal or exceed the total\ntimeout for each operation listed.\n","required":true},"abatement":{"description":"Whether an abatement event message will be expected for the control loop from DCAE.","required":true},"trigger":{"type":"String","description":"Initial operation to execute upon receiving an Onset event message for the Control Loop.","required":true},"operations":{"type":"List","description":"List of operations to be performed when Control Loop is triggered.","required":true,"entry_schema":{"type":{"onap.datatype.controlloop.Operation":{"derived_from":"tosca.datatypes.Root","required":["id","operation","timeout","retries"],"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":{"derived_from":"tosca.datatypes.Root","required":["actor","operation","target"],"properties":{"actor":{"type":"String","description":"The actor performing the operation.","required":true},"operation":{"type":"String","description":"The operation the actor is performing.","required":true},"target":{"type":"String","description":"The resource the operation should be performed on.","required":true,"metadata":{"clamp_possible_values":"some special treatment"}},"payload":{"type":"Map","description":"Name/value pairs of payload information passed by Policy to the actor","required":false,"entry_schema":{"type":"String"}}}}},"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},"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},"failure":{"type":"String","description":"Points to the operation to invoke on Actor operation failure.","required":false},"failure_timeout":{"type":"String","description":"Points to the operation to invoke when the time out for the operation occurs.","required":false},"failure_retries":{"type":"String","description":"Points to the operation to invoke when the current operation has exceeded its max retries.","required":false},"failure_exception":{"type":"String","description":"Points to the operation to invoke when the current operation causes an exception.","required":false},"failure_guard":{"type":"String","description":"Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.","required":false}}}}}}}}},"required":[],"properties":{"controllerName":{"type":"String","description":"Drools controller properties","required":false}}}} \ No newline at end of file
diff --git a/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml b/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml
new file mode 100644
index 000000000..c2afeccdc
--- /dev/null
+++ b/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml
@@ -0,0 +1,160 @@
+
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+ onap.policies.controlloop.operational.Common:
+ derived_from: tosca.policies.Root
+ version: 1.0.0
+ description: Operational Policy for Control Loop execution
+ properties:
+ id:
+ type: String
+ description: The unique control loop id.
+ required: true
+ timeout:
+ type: Integer
+ description: |
+ Overall timeout for executing all the operations. This timeout should equal or exceed the total
+ timeout for each operation listed.
+ required: true
+ abatement:
+ type: Boolean
+ description: Whether an abatement event message will be expected for the control loop from DCAE.
+ required: true
+ default: false
+ trigger:
+ type: String
+ description: Initial operation to execute upon receiving an Onset event message for the Control Loop.
+ required: true
+ operations:
+ type: List
+ description: List of operations to be performed when Control Loop is triggered.
+ required: true
+ entry_schema:
+ type: onap.datatype.controlloop.Operation
+ onap.policies.controlloop.operational.common.Drools:
+ derived_from: onap.policies.controlloop.operational.Common
+ type_version: 1.0.0
+ version: 1.0.0
+ description: Operational policies for Drools PDP
+ properties:
+ controllerName:
+ type: String
+ description: Drools controller properties
+ required: false
+data_types:
+ # TBD if this is needed
+ onap.datatype.controlloop.operation.Failure:
+ derived_from: tosca.datatypes.Root
+ description: Captures information of an operational failure performed for control loop
+ properties:
+ messages:
+ type: String
+ description: error message
+ required: true
+ category:
+ type: String
+ description: |
+ The category the error occurred in. Whether this is a general error from the actor, or the operation
+ timed out, retries were exhausted in trying to execute the operation, a guard policy prevented the
+ operation from occuring, or an exception in the system caused the failure.
+ constraints:
+ - valid_values: [error, timeout, retries, guard, exception]
+ onap.datatype.controlloop.Target:
+ derived_from: tosca.datatypes.Root
+ description: Definition for a entity in A&AI to perform a control loop operation on
+ properties:
+ targetType:
+ type: String
+ description: Category for the target type
+ required: true
+ constraints:
+ - valid_values: [VNF, VM, VFMODULE, PNF]
+ entityIds:
+ type: Map
+ description: |
+ Map of values that identify the resource. If none are provided, it is assumed that the
+ entity that generated the ONSET event will be the target.
+ required: false
+ 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
+ operation:
+ type: String
+ description: The operation the actor is performing.
+ required: true
+ target:
+ type: String
+ description: The resource the operation should be performed on.
+ required: true
+ metadata:
+ clamp_possible_values: <string:see clamp project for syntax>
+ payload:
+ type: Map
+ description: Name/value pairs of payload information passed by Policy to the actor
+ required: false
+ 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
+ metadata:
+ clamp_possible_values: <string:see clamp project for syntax>
+ 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
diff --git a/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml b/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml
new file mode 100644
index 000000000..9d45c645e
--- /dev/null
+++ b/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml
@@ -0,0 +1,174 @@
+
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+ onap.policies.controlloop.operational.Common:
+ derived_from: onap.datatype.controlloop.operation.Failure
+ version: 1.0.0
+ description: Operational Policy for Control Loop execution
+ properties:
+ id:
+ type: String
+ description: The unique control loop id.
+ required: true
+ timeout:
+ type: Integer
+ description: |
+ Overall timeout for executing all the operations. This timeout should equal or exceed the total
+ timeout for each operation listed.
+ required: true
+ constraints:
+ - valid_values: [1, 2, 5]
+ - equal: 5
+ - greater_than: 7
+ - greater_or_equal: 1
+ - less_than: 7
+ - less_or_equal: 1
+ abatement:
+ type: Boolean
+ description: Whether an abatement event message will be expected for the control loop from DCAE.
+ required: true
+ default: false
+ trigger:
+ type: String
+ description: Initial operation to execute upon receiving an Onset event message for the Control Loop.
+ required: true
+ operations:
+ type: List
+ description: List of operations to be performed when Control Loop is triggered.
+ required: true
+ entry_schema:
+ type: onap.datatype.controlloop.Operation
+ onap.policies.controlloop.operational.common.Drools:
+ derived_from: onap.policies.controlloop.operational.Common
+ type_version: 1.0.0
+ version: 1.0.0
+ description: Operational policies for Drools PDP
+ properties:
+ controllerName:
+ type: String
+ description: Drools controller properties
+ required: true
+data_types:
+ # TBD if this is needed
+ onap.datatype.controlloop.operation.Failure:
+ derived_from: onap.datatype.controlloop.Target
+ description: Captures information of an operational failure performed for control loop
+ properties:
+ messages:
+ type: String
+ description: error message
+ required: true
+ category:
+ type: String
+ description: |
+ The category the error occurred in. Whether this is a general error from the actor, or the operation
+ timed out, retries were exhausted in trying to execute the operation, a guard policy prevented the
+ operation from occuring, or an exception in the system caused the failure.
+ constraints:
+ - valid_values: [error, timeout, retries, guard, exception]
+ onap.datatype.controlloop.Target:
+ derived_from: tosca.datatypes.Root
+ description: Definition for a entity in A&AI to perform a control loop operation on
+ properties:
+ targetType:
+ type: String
+ description: Category for the target type
+ required: true
+ constraints:
+ - valid_values: [VNF, VM, VFMODULE, PNF]
+ entityIds:
+ type: Map
+ description: |
+ Map of values that identify the resource. If none are provided, it is assumed that the
+ entity that generated the ONSET event will be the target.
+ required: false
+ 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
+ default: [1,"String",5.5,true]
+ operation:
+ type: String
+ description: The operation the actor is performing.
+ required: true
+ target:
+ type: String
+ description: The resource the operation should be performed on.
+ required: true
+ metadata:
+ clamp_possible_values: <string:see clamp project for syntax>
+ payload:
+ type: Map
+ description: Name/value pairs of payload information passed by Policy to the actor
+ required: false
+ 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: Array
+ description: A user-friendly description of the intent for the operation
+ required: false
+ constraints:
+ - min_length: 5
+ - max_length: 7
+ - length: 1
+ operation:
+ type: onap.datatype.controlloop.Actor
+ description: The definition of the operation to be performed.
+ required: true
+ metadata:
+ clamp_possible_values: <string:see clamp project for syntax>
+ timeout:
+ type: Integer
+ description: The amount of time for the actor to perform the operation.
+ required: true
+ constraints:
+ - valid_values: [3, 4, 5.5, 6, 10]
+ 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
diff --git a/src/test/resources/tosca/templates.properties b/src/test/resources/tosca/templates.properties
new file mode 100644
index 000000000..792238bd3
--- /dev/null
+++ b/src/test/resources/tosca/templates.properties
@@ -0,0 +1,7 @@
+Integer=type,description,required
+Boolean=description,required
+String=type,description,required,metadata,constraints
+Number=description,required
+Map=type,description,required,entry_schema
+List=type,required,entry_schema
+onap.datatype.controlloop.Actor=type,description,required,metadata \ No newline at end of file