Rework of the unit tests (mainly IT)
Rework of the unit tests (mainly IT)
+ new example files and test resource config
Change-Id: I4970b3710c7decdc8a3265a86115097d4394ad80
Issue-Id: CLAMP-1
Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
diff --git a/src/test/java/org/onap/clamp/clds/AbstractIT.java b/src/test/java/org/onap/clamp/clds/AbstractIT.java
index 873c852..b705e38 100644
--- a/src/test/java/org/onap/clamp/clds/AbstractIT.java
+++ b/src/test/java/org/onap/clamp/clds/AbstractIT.java
@@ -1,3 +1,26 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
package org.onap.clamp.clds;
import org.junit.BeforeClass;
@@ -6,14 +29,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ActiveProfiles;
-/**
- * Created by j on 6/16/17.
- */
@ActiveProfiles("clamp-default")
public abstract class AbstractIT {
@Autowired
- protected RefProp refProp;
+ protected RefProp refProp;
@Autowired
protected PolicyClient policyClient;
diff --git a/src/test/java/org/onap/clamp/clds/it/AsdcIT.java b/src/test/java/org/onap/clamp/clds/it/AsdcIT.java
deleted file mode 100644
index d616b7e..0000000
--- a/src/test/java/org/onap/clamp/clds/it/AsdcIT.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2017 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============================================
- * ===================================================================
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-
-package org.onap.clamp.clds.it;
-
-import org.onap.clamp.clds.AbstractIT;
-import org.onap.clamp.clds.client.req.SdcReq;
-import org.onap.clamp.clds.model.CldsEvent;
-import org.onap.clamp.clds.model.prop.ModelProperties;
-import org.onap.clamp.clds.transform.TransformUtil;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-/**
- * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE Delegates in test.
- */
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class AsdcIT extends AbstractIT {
-
- @Test
- public void testBlueprint() throws Exception {
- String modelProp = TransformUtil.getResourceAsString("example/modelProp.json");
- String modelBpmnProp = TransformUtil.getResourceAsString("example/modelBpmnProp.json");
- String modelName = "example-model06";
- String controlName = "ClosedLoop-FRWL-SIG04-1582f840-test-test-1234-005056a9d756";
- String docText = TransformUtil.getResourceAsString("example/templateProp.json");
- ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, modelBpmnProp, modelProp);
- String blueprint = SdcReq.formatBlueprint(refProp, prop, docText);
- System.out.println("blueprint=" + blueprint);
- }
-
-}
diff --git a/src/test/java/org/onap/clamp/clds/it/DcaeIT.java b/src/test/java/org/onap/clamp/clds/it/DcaeIT.java
index aef4c64..54b2797 100644
--- a/src/test/java/org/onap/clamp/clds/it/DcaeIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/DcaeIT.java
@@ -48,7 +48,7 @@
String modelName = "example-model";
String controlName = "ClosedLoop-FRWL-SIG-1582f840-2881-11e6-b4ec-005056a9d756";
- ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, modelBpmnProp, modelProp);
+ ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, true, modelBpmnProp, modelProp);
String dcaeReq = DcaeReq.format(refProp, prop);
System.out.println("dcaeReq=" + dcaeReq);
diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java b/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java
index d0fcf42..7960c6a 100644
--- a/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java
@@ -5,16 +5,16 @@
* Copyright (C) 2017 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.
+ * 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
+ *
+ * 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============================================
* ===================================================================
@@ -34,18 +34,20 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.client.req.TcaMPolicyReq;
import org.onap.clamp.clds.model.CldsEvent;
-import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.model.prop.*;
import org.onap.policy.api.AttributeType;
+import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.test.context.junit4.SpringRunner;
import org.onap.clamp.clds.client.req.OperationalPolicyReq;
import org.onap.clamp.clds.client.req.StringMatchPolicyReq;
-import org.onap.clamp.clds.model.prop.Policy;
-import org.onap.clamp.clds.model.prop.StringMatch;
import org.onap.clamp.clds.transform.TransformUtil;
+import static org.junit.Assert.assertEquals;
+
/**
* Test Policy API in org.onap.clamp.ClampDesigner.client package - replicate
* Policy Delegates in tests.
@@ -67,105 +69,131 @@
}
private void createUpdateStringMatch(String actionCd) throws Exception {
- ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, modelBpmnProp, modelProp);
- String stringMatchPolicyRequestUuid = UUID.randomUUID().toString();
- String policyJson = StringMatchPolicyReq.format(refProp, prop);
- System.out.println("String Match policyJson=" + policyJson);
- String responseMessage = policyClient.sendMicroService(policyJson, prop, stringMatchPolicyRequestUuid);
- System.out.println(responseMessage);
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp);
+ StringMatch stringMatch = prop.getType(StringMatch.class);
+ if (stringMatch.isFound()) {
+ String stringMatchPolicyRequestUuid = UUID.randomUUID().toString();
+
+ String policyJson = StringMatchPolicyReq.format(refProp, prop);
+ String correctValue = TransformUtil.getResourceAsString("expected/stringmatch.json");
+ JSONAssert.assertEquals(policyJson, correctValue, true);
+ String responseMessage = "";
+ try {
+ responseMessage = policyClient.sendMicroService(policyJson, prop, stringMatchPolicyRequestUuid);
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Policy send failed: PE500 "));
+ }
+ System.out.println(responseMessage);
+ }
}
private void createUpdateOperationalPolicy(String actionCd) throws Exception {
- ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, modelBpmnProp, modelProp);
- String operationalPolicyRequestUuid = UUID.randomUUID().toString();
- Map<AttributeType, Map<String, String>> attributes = OperationalPolicyReq.formatAttributes(refProp, prop);
- String responseMessage = policyClient.sendBrms(attributes, prop, operationalPolicyRequestUuid);
- System.out.println(responseMessage);
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp);
+ Policy policy = prop.getType(Policy.class);
+ if (policy.isFound()) {
+ for (PolicyChain policyChain : policy.getPolicyChains()) {
+ String operationalPolicyRequestUuid = UUID.randomUUID().toString();
+
+ Map<AttributeType, Map<String, String>> attributes = OperationalPolicyReq.formatAttributes(refProp,
+ prop, policy.getId(), policyChain);
+ String responseMessage = policyClient.sendBrms(attributes, prop, operationalPolicyRequestUuid);
+ System.out.println(responseMessage);
+ }
+ }
}
- private void createUpdatePolicies(String actionCd) throws Exception {
- createUpdateStringMatch(actionCd);
- createUpdateOperationalPolicy(actionCd);
+ private void createUpdateTcaPolicy(String actionCd) throws Exception {
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp);
+ Tca tca = prop.getTca();
+ if (tca.isFound()) {
+ String tcaPolicyRequestUuid = UUID.randomUUID().toString();
+ String policyJson = TcaMPolicyReq.formatTca(refProp, prop);
+ String correctValue = TransformUtil.getResourceAsString("expected/tca.json");
+ JSONAssert.assertEquals(policyJson, correctValue, true);
+ String responseMessage = "";
+ try {
+ responseMessage = policyClient.sendMicroService(policyJson, prop, tcaPolicyRequestUuid);
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Policy send failed: PE500 "));
+ }
+ System.out.println(responseMessage);
+ }
}
private void deleteStringMatchPolicy(String actionCd) throws Exception {
- ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, modelBpmnProp, modelProp);
- StringMatch stringMatch = prop.getStringMatch();
- prop.setCurrentModelElementId(stringMatch.getId());
- String responseMessage = policyClient.deleteMicrosService(prop);
- System.out.println(responseMessage);
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp);
+
+ StringMatch stringMatch = prop.getType(StringMatch.class);
+ if (stringMatch.isFound()) {
+ prop.setCurrentModelElementId(stringMatch.getId());
+ String responseMessage = "";
+ try {
+ responseMessage = policyClient.deleteMicrosService(prop);
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Policy delete failed: PE500 "));
+ }
+ System.out.println(responseMessage);
+ }
}
private void deleteOperationalPolicy(String actionCd) throws Exception {
- ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, modelBpmnProp, modelProp);
- Policy policy = prop.getPolicy();
- prop.setCurrentModelElementId(policy.getId());
- String responseMessage = policyClient.deleteBrms(prop);
- System.out.println(responseMessage);
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp);
+
+ Policy policy = prop.getType(Policy.class);
+ if (policy.isFound()) {
+ prop.setCurrentModelElementId(policy.getId());
+ for (PolicyChain policyChain : policy.getPolicyChains()) {
+ prop.setPolicyUniqueId(policyChain.getPolicyId());
+ String responseMessage = policyClient.deleteBrms(prop);
+ System.out.println(responseMessage);
+ }
+ }
}
- private void deletePolicies(String actionCd) throws Exception {
- deleteStringMatchPolicy(actionCd);
- deleteOperationalPolicy(actionCd);
+ private void deleteTcaPolicy(String actionCd) throws Exception {
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, false, modelBpmnProp, modelProp);
+
+ Tca tca = prop.getTca();
+ if (tca.isFound()) {
+ prop.setCurrentModelElementId(tca.getId());
+ String responseMessage = "";
+ try {
+ responseMessage = policyClient.deleteMicrosService(prop);
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Policy delete failed: PE500 "));
+ }
+
+ System.out.println(responseMessage);
+ }
}
- /**
- * Delete policies so we can start with a clean state. But this is just a
- * precaution - the policies might not already exists. So ignore errors in
- * attempting to do this.
- *
- * @param actionCd
- */
- private void cleanUpPolicies(String actionCd) {
- try {
- deleteStringMatchPolicy(actionCd);
- } catch (Exception e) {
- System.err.println(
- "TestPolicyClient: The following error is ok - attempting delete in case the policy exists - the goal is to start with clean slate");
- }
- try {
- deleteOperationalPolicy(actionCd);
- } catch (Exception e) {
- System.err.println(
- "TestPolicyClient: The following error is ok - attempting delete in case the policy exists - the goal is to start with clean slate");
- }
+ // @Test
+ public void testCreateUpdateDeleteStringMatchPolicy() throws Exception {
+
+ createUpdateStringMatch(CldsEvent.ACTION_SUBMIT);
+
+ TimeUnit.SECONDS.sleep(20);
+
+ deleteStringMatchPolicy(CldsEvent.ACTION_DELETE);
+ }
+
+ // @Test
+ public void testCreateUpdateDeleteOperationalPolicy() throws Exception {
+
+ createUpdateOperationalPolicy(CldsEvent.ACTION_SUBMIT);
+
+ TimeUnit.SECONDS.sleep(20);
+
+ deleteOperationalPolicy(CldsEvent.ACTION_DELETE);
}
@Test
- public void testCreateUpdateDeletePolicy() throws Exception {
+ public void testCreateUpdateDeleteTcaPolicy() throws Exception {
- cleanUpPolicies(CldsEvent.ACTION_DELETE);
- TimeUnit.SECONDS.sleep(5);
- System.out.println("entered into update");
- String actionCd;
+ createUpdateTcaPolicy(CldsEvent.ACTION_SUBMIT);
- try {
- actionCd = CldsEvent.ACTION_SUBMIT;
- createUpdatePolicies(actionCd);
- } catch (Exception e) {
- assertTrue(e.getMessage().contains("Policy send failed: PE500 "));
- }
+ TimeUnit.SECONDS.sleep(20);
- try {
- actionCd = CldsEvent.ACTION_RESUBMIT;
- createUpdatePolicies(actionCd);
- } catch (Exception e) {
- assertTrue(e.getMessage().contains("Policy send failed: PE500 "));
- }
-
- try {
- actionCd = CldsEvent.ACTION_RESUBMIT;
- createUpdatePolicies(actionCd);
- } catch (Exception e) {
- assertTrue(e.getMessage().contains("Policy send failed: PE500 "));
- }
-
- try {
- TimeUnit.SECONDS.sleep(20);
- deletePolicies(CldsEvent.ACTION_DELETE);
- } catch (Exception e) {
- assertTrue(e.getMessage().contains("Unable to get valid Response from PDP"));
- }
-
+ deleteTcaPolicy(CldsEvent.ACTION_DELETE);
}
}
diff --git a/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java b/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java
index 7eeb04e..ca849e1 100644
--- a/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java
+++ b/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java
@@ -5,16 +5,16 @@
* Copyright (C) 2017 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.
+ * 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
+ *
+ * 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============================================
* ===================================================================
@@ -23,58 +23,59 @@
package org.onap.clamp.clds.it;
+import java.io.IOException;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.client.req.SdcReq;
+import org.onap.clamp.clds.model.CldsSdcServiceDetail;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.junit4.SpringRunner;
+
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import org.onap.clamp.clds.AbstractIT;
-import org.onap.clamp.clds.client.req.SdcReq;
-import org.onap.clamp.clds.model.CldsAsdcServiceDetail;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import java.io.IOException;
/**
- * Test ASDC API - stand alone (except for some config).
- * Replicates getAsdcServices and getAsdcServicesByUUID in the CldsService
- * Adds test of putting putting an artifact to VF.
- * TODO Also needs update and perhaps delete tests.
+ * Test SDC API - stand alone (except for some config). Replicates
+ * getSdcServices and getSdcServicesByUUID in the CldsService Adds test of
+ * putting putting an artifact to VF. TODO Also needs update and perhaps delete
+ * tests.
*/
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class PropJsonBuilderIT extends AbstractIT {
- private String globalPropsPartial;
+ private String globalPropsPartial;
private ObjectMapper mapper;
@Before
public void setUp() throws IOException {
- String url = refProp.getStringValue("asdc.serviceUrl");
- String catalogUrl = refProp.getStringValue("asdc.catalog.url");
- String basicAuth = SdcReq.getAsdcBasicAuth(refProp);
+ String url = refProp.getStringValue("sdc.serviceUrl");
+ String catalogUrl = refProp.getStringValue("sdc.catalog.url");
+ String basicAuth = SdcReq.getSdcBasicAuth(refProp);
System.out.println("value of string and basicAuth:" + url + basicAuth);
- CldsAsdcServiceDetail cldsservicedetail = new CldsAsdcServiceDetail();
- // cldsservicedetail.set
+ CldsSdcServiceDetail cldsservicedetail = new CldsSdcServiceDetail();
+ // cldsservicedetail.set
String globalProps = refProp.getStringValue("globalPropsTest");
globalPropsPartial = refProp.getStringValue("globalPropsPartialTest");
mapper = new ObjectMapper();
}
/**
- * List services from ASDC.
- * List meta data for a particular service from ASDC.
- * Test uploading artifact to a VF in ASDC.
+ * List services from SDC. List meta data for a particular service from SDC.
+ * Test uploading artifact to a VF in SDC.
*/
@Test
- public void testAsdc() throws Exception {
-// String createEmptySharedObject = createEmptySharedObject();
-// System.out.println("value of emptySharedObject:" + createEmptySharedObject);
+ public void testSdc() throws Exception {
+ // String createEmptySharedObject = createEmptySharedObject();
+ // System.out.println("value of emptySharedObject:" +
+ // createEmptySharedObject);
sampleJsonObject();
System.out.println(createTestEmptySharedObject());
}
@@ -83,8 +84,8 @@
ArrayNode arrayNode = mapper.createArrayNode();
/**
- * Create three JSON Objects objectNode1, objectNode2, objectNode3
- * Add all these three objects in the array
+ * Create three JSON Objects objectNode1, objectNode2, objectNode3 Add
+ * all these three objects in the array
*/
ObjectNode objectNode1 = mapper.createObjectNode();
@@ -107,8 +108,8 @@
arrayNode.add(objectNode3);
/**
- * We can directly write the JSON in the console.
- * But it wont be pretty JSON String
+ * We can directly write the JSON in the console. But it wont be pretty
+ * JSON String
*/
System.out.println(arrayNode.toString());
@@ -121,17 +122,8 @@
private String createEmptySharedObject() throws JsonProcessingException {
/**
- * "": {
- "vf": {
- "": ""
- },
- "location": {
- "": ""
- },
- "alarmCondition": {
- "": ""
- }
- }
+ * "": { "vf": { "": "" }, "location": { "": "" }, "alarmCondition": {
+ * "": "" } }
*/
ObjectNode emptyObjectNode = mapper.createObjectNode();
emptyObjectNode.put("", "");
@@ -149,10 +141,7 @@
emptyServiceObjectNode.putPOJO("", samArrayNode);
/**
- * "vf": {
- * " ": " ",
- * "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3"
- * }
+ * "vf": { " ": " ", "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3" }
*
*/
ObjectNode vfObjectNode2 = mapper.createObjectNode();
@@ -164,11 +153,8 @@
vfObjectNode2.putPOJO("vf", vfArrayNode);
/**
- * "location": {
- "SNDGCA64": "San Diego SAN3",
- "ALPRGAED": "Alpharetta PDK1",
- "LSLEILAA": "Lisle DPA3"
- },
+ * "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED":
+ * "Alpharetta PDK1", "LSLEILAA": "Lisle DPA3" },
*/
ObjectNode locationObjectNode2 = mapper.createObjectNode();
ObjectNode sandiegoLocationNode = mapper.createObjectNode();
@@ -182,9 +168,9 @@
locationObjectNode2.putPOJO("location", locationArrayNode);
/**
- * "alarmCondition": {
- "A+Fallback+Operation+will+soon+be+started": "A Fallback Operation will soon be started",
- "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
+ * "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":
+ * "A Fallback Operation will soon be started",
+ * "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
*/
ObjectNode alarmConditionObjectNode2 = mapper.createObjectNode();
ObjectNode alamrCondition1 = mapper.createObjectNode();
@@ -214,18 +200,8 @@
byServiceBasicObjetNode.putPOJO("byService", byServiceBasicArrayNode);
/**
- * "byVf": {
- "": {
- "vfc": {
- "": ""
- },
- "03596c12-c7e3-44b7-8994-5cdfeda8afdd": {
- "vfc": {
- " ": " "
- }
- }
- }
- }
+ * "byVf": { "": { "vfc": { "": "" },
+ * "03596c12-c7e3-44b7-8994-5cdfeda8afdd": { "vfc": { " ": " " } } } }
*/
ObjectNode byVfCBasicNode = mapper.createObjectNode();
@@ -262,17 +238,8 @@
ObjectNode locationJsonNode = (ObjectNode) mapper.readValue(locationStringValue, JsonNode.class);
ObjectNode alarmStringJsonNode = (ObjectNode) mapper.readValue(alarmStringValue, JsonNode.class);
/**
- * "": {
- "vf": {
- "": ""
- },
- "location": {
- "": ""
- },
- "alarmCondition": {
- "": ""
- }
- }
+ * "": { "vf": { "": "" }, "location": { "": "" }, "alarmCondition": {
+ * "": "" } }
*/
ObjectNode emptyObjectNode = mapper.createObjectNode();
emptyObjectNode.put("", "");
@@ -284,10 +251,7 @@
emptyServiceObjectNode.putPOJO("", vfObjectNode);
/**
- * "vf": {
- * " ": " ",
- * "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3"
- * }
+ * "vf": { " ": " ", "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3" }
*
*/
ObjectNode vfObjectNode2 = mapper.createObjectNode();
@@ -297,43 +261,32 @@
vfObjectNode2.putPOJO("vf", dcaeClampDemo3Node);
/**
- * "location": {
- "SNDGCA64": "San Diego SAN3",
- "ALPRGAED": "Alpharetta PDK1",
- "LSLEILAA": "Lisle DPA3"
- },
+ * "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED":
+ * "Alpharetta PDK1", "LSLEILAA": "Lisle DPA3" },
*/
-// ObjectNode sandiegoLocationNode = mapper.createObjectNode();
-// sandiegoLocationNode.put("SNDGCA64","San Diego SAN3");
-// sandiegoLocationNode.put("ALPRGAED","Alpharetta PDK1");
+ // ObjectNode sandiegoLocationNode = mapper.createObjectNode();
+ // sandiegoLocationNode.put("SNDGCA64","San Diego SAN3");
+ // sandiegoLocationNode.put("ALPRGAED","Alpharetta PDK1");
vfObjectNode2.putPOJO("location", locationJsonNode);
/**
- * "alarmCondition": {
- "A+Fallback+Operation+will+soon+be+started": "A Fallback Operation will soon be started",
- "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
+ * "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":
+ * "A Fallback Operation will soon be started",
+ * "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
*/
-// ObjectNode alamrCondition1 = mapper.createObjectNode();
-// alamrCondition1.put("A+Fallback+Operation+will+soon+be+started","A Fallback Operation will soon be started");
-// alamrCondition1.put("BRM%2C+Scheduled+Backup+Failed","BRM, Scheduled Backup Failed");
+ // ObjectNode alamrCondition1 = mapper.createObjectNode();
+ // alamrCondition1.put("A+Fallback+Operation+will+soon+be+started","A
+ // Fallback Operation will soon be started");
+ // alamrCondition1.put("BRM%2C+Scheduled+Backup+Failed","BRM, Scheduled
+ // Backup Failed");
vfObjectNode2.putPOJO("alarmCondition", alarmStringJsonNode);
emptyServiceObjectNode.putPOJO("c989a551-69f7-4b30-b10a-2e85bb227c30", vfObjectNode2);
ObjectNode byServiceBasicObjetNode = mapper.createObjectNode();
byServiceBasicObjetNode.putPOJO("byService", emptyServiceObjectNode);
/**
- * "byVf": {
- "": {
- "vfc": {
- "": ""
- },
- "03596c12-c7e3-44b7-8994-5cdfeda8afdd": {
- "vfc": {
- " ": " "
- }
- }
- }
- }
+ * "byVf": { "": { "vfc": { "": "" },
+ * "03596c12-c7e3-44b7-8994-5cdfeda8afdd": { "vfc": { " ": " " } } } }
*/
ObjectNode emptyvfcobjectNode = mapper.createObjectNode();
@@ -352,19 +305,10 @@
return readTree.toString();
}
- private String createCldsSharedObject(CldsAsdcServiceDetail cldsAsdcServiceDetail) throws IOException {
+ private String createCldsSharedObject(CldsSdcServiceDetail CldsSdcServiceDetail) throws IOException {
/**
- * "": {
- "vf": {
- "": ""
- },
- "location": {
- "": ""
- },
- "alarmCondition": {
- "": ""
- }
- }
+ * "": { "vf": { "": "" }, "location": { "": "" }, "alarmCondition": {
+ * "": "" } }
*/
ObjectNode emptyObjectNode = mapper.createObjectNode();
emptyObjectNode.put("", "");
@@ -376,10 +320,7 @@
emptyServiceObjectNode.putPOJO("", vfObjectNode);
/**
- * "vf": {
- * " ": " ",
- * "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3"
- * }
+ * "vf": { " ": " ", "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3" }
*
*/
ObjectNode vfObjectNode2 = mapper.createObjectNode();
@@ -389,11 +330,8 @@
vfObjectNode2.putPOJO("vf", dcaeClampDemo3Node);
/**
- * "location": {
- "SNDGCA64": "San Diego SAN3",
- "ALPRGAED": "Alpharetta PDK1",
- "LSLEILAA": "Lisle DPA3"
- },
+ * "location": { "SNDGCA64": "San Diego SAN3", "ALPRGAED":
+ * "Alpharetta PDK1", "LSLEILAA": "Lisle DPA3" },
*/
ObjectNode sandiegoLocationNode = mapper.createObjectNode();
sandiegoLocationNode.put("SNDGCA64", "San Diego SAN3");
@@ -401,9 +339,9 @@
vfObjectNode2.putPOJO("location", sandiegoLocationNode);
/**
- * "alarmCondition": {
- "A+Fallback+Operation+will+soon+be+started": "A Fallback Operation will soon be started",
- "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
+ * "alarmCondition": { "A+Fallback+Operation+will+soon+be+started":
+ * "A Fallback Operation will soon be started",
+ * "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
*/
ObjectNode alamrCondition1 = mapper.createObjectNode();
alamrCondition1.put("A+Fallback+Operation+will+soon+be+started", "A Fallback Operation will soon be started");
@@ -414,18 +352,8 @@
byServiceBasicObjetNode.putPOJO("byService", emptyServiceObjectNode);
/**
- * "byVf": {
- "": {
- "vfc": {
- "": ""
- },
- "03596c12-c7e3-44b7-8994-5cdfeda8afdd": {
- "vfc": {
- " ": " "
- }
- }
- }
- }
+ * "byVf": { "": { "vfc": { "": "" },
+ * "03596c12-c7e3-44b7-8994-5cdfeda8afdd": { "vfc": { " ": " " } } } }
*/
ObjectNode emptyvfcobjectNode = mapper.createObjectNode();
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java
new file mode 100644
index 0000000..d0ba745
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.model.prop;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+/**
+ * A CustomModelElement to test the capability to add new elements on the fly.
+ */
+public class CustomModelElement extends ModelElement {
+
+ private static final String CUSTOM_TYPE = "customType";
+
+ /**
+ *
+ */
+ public CustomModelElement(ModelProperties modelProp, ModelBpmn modelBpmn, JsonNode modelJson) {
+ super(CUSTOM_TYPE, modelProp, modelBpmn, modelJson);
+ topicPublishes = getValueByName("topicPublishes");
+ }
+
+ public static final String getType() {
+ return CUSTOM_TYPE;
+ }
+
+}
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java
new file mode 100644
index 0000000..9c9cb4a
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java
@@ -0,0 +1,67 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.model.prop;
+
+import java.io.IOException;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.onap.clamp.clds.transform.TransformUtil;
+
+public class CustomModelElementTest {
+
+ public CustomModelElementTest() {
+ }
+
+ @Test
+ public void testNewElement() {
+
+ try {
+ String modelBpmnProp = TransformUtil.getResourceAsString("example/modelBpmnProp.json");
+ String modelProp = TransformUtil.getResourceAsString("example/modelProp.json");
+ String modName = "example-model-name";
+ String controlName = "example-control-name";
+
+ CustomModelElement customModelElement = null;
+
+ // Instantiate first, we should not have our CustomModelElement yet
+ ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);
+
+ Assert.assertNotNull(prop);
+
+ customModelElement = prop.getType(CustomModelElement.class);
+
+ Assert.assertNull(customModelElement);
+
+ ModelProperties.registerModelElement(CustomModelElement.class, CustomModelElement.getType());
+
+ customModelElement = prop.getType(CustomModelElement.class);
+
+ Assert.assertNotNull(customModelElement);
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
index 54a7a4a..1038e5d 100644
--- a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
+++ b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
@@ -5,16 +5,16 @@
* Copyright (C) 2017 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.
+ * 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
+ *
+ * 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============================================
* ===================================================================
@@ -26,7 +26,7 @@
import org.onap.clamp.clds.transform.TransformUtil;
import org.junit.Assert;
import org.junit.Test;
-
+import static org.junit.Assert.assertEquals;
import java.io.IOException;
/**
@@ -41,33 +41,54 @@
String modName = "example-model-name";
String controlName = "example-control-name";
- ModelProperties prop = new ModelProperties(modName, controlName, null, modelBpmnProp, modelProp);
+ ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);
Assert.assertEquals(modName, prop.getModelName());
Assert.assertEquals(controlName, prop.getControlName());
Assert.assertEquals(null, prop.getActionCd());
Global g = prop.getGlobal();
- Assert.assertEquals("df6fcd2b-1932-429e-bb13-0cd0d32113cb", g.getService());
- Assert.assertEquals("[SNDGCA64, ALPRGAED]", g.getLocation().toString());
- Assert.assertEquals("[4b49acee-cf70-4b20-b956-a4fe0c1a8239]", g.getResourceVf().toString());
+ Assert.assertEquals("0f983e18-4603-4bb4-a98c-e29691fb16a1", g.getService());
+ Assert.assertEquals("[SNDGCA64]", g.getLocation().toString());
+ Assert.assertEquals("[6c7aaec2-59eb-41d9-8681-b7f976ab668d]", g.getResourceVf().toString());
- Collector c = prop.getCollector();
- Assert.assertEquals("Collector_", c.getId());
- Assert.assertEquals("DCAE-COLLECTOR-UCSNMP", c.getTopicPublishes());
-
- StringMatch sm = prop.getStringMatch();
+ StringMatch sm = prop.getType(StringMatch.class);
Assert.assertEquals("StringMatch_", sm.getId());
- Assert.assertEquals("DCAE-CL-EVENT", sm.getTopicPublishes());
- Policy p = prop.getPolicy();
+ Policy p = prop.getType(Policy.class);
Assert.assertEquals("Policy_", p.getId());
Assert.assertEquals(null, p.getTopicPublishes());
- Assert.assertEquals("DCAE-CL-EVENT", p.getTopicSubscribes());
- Assert.assertEquals(500, p.getTimeout().intValue());
-
- Tca t = prop.getTca();
+ Assert.assertEquals(null, p.getTopicSubscribes());
+
+ Tca t = prop.getType(Tca.class);
Assert.assertEquals("Narra", t.getTcaItems().get(0).getTcaName());
Assert.assertEquals(Integer.valueOf(4), t.getTcaItems().get(0).getTcaThreshholds().get(0).getThreshhold());
}
+ @Test
+ public void testPolicy() throws IOException {
+
+ String modelBpmnProp = TransformUtil.getResourceAsString("example/modelBpmnPropForPolicy.json");
+ System.out.println(modelBpmnProp);
+
+ String modelProp = TransformUtil.getResourceAsString("example/modelPropForPolicy.json");
+ System.out.println(modelProp);
+
+ ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmnProp, modelProp);
+ System.out.println("attempting prop.getGlobal()...");
+ Global g = prop.getGlobal();
+ System.out.println("attempting prop.getStringMatch()...");
+ StringMatch stringMatch = prop.getType(StringMatch.class);
+ if(stringMatch.isFound()){
+ System.out.println("stringMatch json object is present...");
+ assertEquals("1", stringMatch.getResourceGroups().get(0).getPolicyId());
+ }
+ System.out.println("attempting prop.getPolicy()...");
+ Policy policy = prop.getType(Policy.class);
+ if(policy.isFound()){
+ System.out.println("policy json object is present...");
+ assertEquals("1", policy.getPolicyChains().get(0).getPolicyId());
+ }
+ }
+
+
}
\ No newline at end of file
diff --git a/src/test/resources/clds/clds-reference.properties b/src/test/resources/clds/clds-reference.properties
index 6487989..7cedc13 100644
--- a/src/test/resources/clds/clds-reference.properties
+++ b/src/test/resources/clds/clds-reference.properties
@@ -37,10 +37,10 @@
dcae.template={"properties":{"service_name":"","service_ids":[],"vnf_ids":[],"location_ids":[]},"template":{"string_matching":{"dcae":{"inputTopic":"","outputTopic":"","closedLoopControlName":"","closedLoopEventClient":"configuration.dcae.microservice.stringmatcher.xml","policyName":"","policyScope":"service=vSCP;resource=F5;type=configuration","policyVersion":"v0.0.1","serviceConfigurations":{}}}}}
dcae.decode.service_ids={"vUSP":["vUSP - vCTS"],"Trinity":["ASBGv TLS VNF","ASBGv No TLS","ASBGv (NO TLS) VNF","ASBGv TLS","NSBGv VNF","NSBGv"],"vSCP":["AKRON_vSCP_F5_FW-SVC/vSCP_F5_FW 1","ALLEN_vSCP_F5_FW-SVC/vSCP_F5_FW 1"],"vProbes":["vProbes - FW"]}
#
-# ASDC request blueprint properties
+# SDC request blueprint properties
#
-asdc.template={}
-asdc.decode.service_ids={}
+sdc.template={}
+sdc.decode.service_ids={}
#
#
# General Policy request properties
@@ -73,25 +73,34 @@
#
op.policyDescription=from clds
# default
-op.templateName=ClosedLoopvUSP
+op.templateName=ClosedLoopGuardvUSP
op.operationTopic=APPC-CL
op.notificationTopic=POLICY-CL-MGT
op.controller=1610-vUSP
# by service: vSCP
op.templateName.vSCP=ClosedLoopTemplate
op.controller.vSCP=1607-f5fw
+op.eNodeB.templateName=CLeNodeB
+op.eNodeB.operationTopic=com.onap.sdnr.RanCLRequest-v00
+op.eNodeB.notificationTopic=com.onap-policy.IST-ENODEB-CL
+op.eNodeB.controller=ClosedLoop-eNodeB
+op.eNodeB.recipe={"eNodeBRecipes":[{"Actor":"AOTS","Recipe":"checkENodeBTicketHours","ParentPolicy":"","PPConditions":"","Retry":"0","TimeLimit":"120"},{"Actor":"AOTS","Recipe":"checkEquipmentStatus","ParentPolicy":"checkENodeBTicketHours","PPConditions":"Success","Retry":"0","TimeLimit":"120"},{"Actor":"AOTS","Recipe":"checkEimStatus","ParentPolicy":"checkEquipmentStatus","PPConditions":"Success","Retry":"0","TimeLimit":"120"},{"Actor":"AOTS","Recipe":"checkMaintenanceWindow","ParentPolicy":"checkEimStatus","PPConditions":"Success","Retry":"0","TimeLimit":"120"},{"Actor":"SDNR","Recipe":"Reset","ParentPolicy":"checkMaintenanceWindow","PPConditions":"Success","Retry":"","TimeLimit":""}]}
+op.eNodeB.timeWindow=35
+op.eNodeB.limit=2
+op.eNodeB.period=10s
#
-# Asdc service properties
-asdc.catalog.url=http://127.0.0.1:8080/sdc/v1/catalog/
-asdc.hostUrl=http://127.0.0.1:8080
-asdc.serviceUrl=http://127.0.0.1:8080/sdc/v1/catalog/services
-asdc.serviceUsername=test
-asdc.servicePassword=123456
-asdc.artifactLabel=blueprintclampcockpit
-asdc.asdcX-ECOMP-InstanceID=CLAMP
-asdc.artifactType=DCAE_INVENTORY_BLUEPRINT
-asdc.locationArtifactLabel=LocationClampCockpit
-asdc.locationArtifactType=DCAE_INVENTORY_JSON
+# sdc service properties
+sdc.catalog.url=http://127.0.0.1:8080/sdc/v1/catalog/
+sdc.hostUrl=http://127.0.0.1:8080
+sdc.serviceUrl=http://127.0.0.1:8080/sdc/v1/catalog/services
+sdc.serviceUsername=test
+sdc.servicePassword=123456
+sdc.artifactLabel=blueprintclampcockpit
+sdc.sdcX-InstanceID=CLAMP
+sdc.artifactType=DCAE_INVENTORY_BLUEPRINT
+sdc.locationArtifactLabel=LocationClampCockpit
+sdc.locationArtifactType=DCAE_INVENTORY_JSON
+sdc.InstanceID=X-ONAP-InstanceID
#
#
#
diff --git a/src/test/resources/example/modelBpmnProp.json b/src/test/resources/example/modelBpmnProp.json
index 140a567..26fd884 100644
--- a/src/test/resources/example/modelBpmnProp.json
+++ b/src/test/resources/example/modelBpmnProp.json
@@ -1 +1,41 @@
-{"collector":[{"id":"Collector_", "from":"StartEvent_1"}],"stringMatch":[{"id":"StringMatch_", "from":"Collector_"}],"policy":[{"id":"Policy_", "from":"StringMatch_"}],"tca":[{"id":"TCA_", "from":""}]}
\ No newline at end of file
+{
+ "collector":
+ [
+ {
+ "id": "Collector_",
+ "from": "StartEvent_1"
+ }
+ ],
+
+ "stringMatch":
+ [
+ {
+ "id": "StringMatch_",
+ "from": "Collector_"
+ }
+ ],
+
+ "policy":
+ [
+ {
+ "id": "Policy_",
+ "from": "StringMatch_"
+ }
+ ],
+
+ "tca":
+ [
+ {
+ "id": "TCA_",
+ "from": ""
+ }
+ ],
+
+ "customType":
+ [
+ {
+ "id": "CustomType_",
+ "from": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/test/resources/example/modelBpmnPropForPolicy.json b/src/test/resources/example/modelBpmnPropForPolicy.json
new file mode 100644
index 0000000..243f7e8
--- /dev/null
+++ b/src/test/resources/example/modelBpmnPropForPolicy.json
@@ -0,0 +1,26 @@
+{
+ "collector":
+ [
+
+ ],
+ "stringMatch":
+ [
+
+ ],
+
+ "policy":
+ [
+ {
+ "id": "Policy_",
+ "from": "StartEvent_1"
+ }
+ ],
+
+ "tca":
+ [
+ {
+ "id": "TCA_",
+ "from": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/test/resources/example/modelProp.json b/src/test/resources/example/modelProp.json
index 831bf2d..8b8e984 100644
--- a/src/test/resources/example/modelProp.json
+++ b/src/test/resources/example/modelProp.json
@@ -1,369 +1,789 @@
{
- "Collector_":[
- {
- "name":"topicPublishes",
- "value":"DCAE-COLLECTOR-UCSNMP"
- }
- ],
- "global":[
- {
- "name":"service",
- "value":[
- "df6fcd2b-1932-429e-bb13-0cd0d32113cb"
- ]
- },
- {
- "name":"vf",
- "value":[
- "4b49acee-cf70-4b20-b956-a4fe0c1a8239"
- ]
- },
- {
- "name":"location",
- "value":[
- "SNDGCA64",
- "ALPRGAED"
- ]
- }
- ],
- "StringMatch_":[
+ "Collector_":
[
- {
- "name":"topicPublishes",
- "value":"DCAE-CL-EVENT"
- }
+ {
+ "name": "topicPublishes",
+ "value": "DCAE-COLLECTOR-UCSNMP"
+ }
],
- {
- "serviceConfigurations":[
- [
- {
- "name":"aaiMatchingFields",
- "value":[
- "Identiy"
- ]
- },
- {
- "name":"aaiSendFields",
- "value":[
- "VMID"
- ]
- },
- {
- "name":"groupNumber",
- "value":[
- "1"
- ]
- },
- {
- "name":"timeWindow",
- "value":[
- "1"
- ]
- },
- {
- "name":"ageLimit",
- "value":[
- "1600"
- ]
- },
- {
- "name":"createClosedLoopEventId",
- "value":[
- "Initial"
- ]
- },
- {
- "name":"outputEventName",
- "value":[
- "OnSet"
- ]
- },
- {
- "stringSet":[
- {
- "name":"alarmCondition",
- "value":[
- "Reports a transient alarm condition when an outgoing Ro message send fails"
- ]
- },
- {
- "name":"eventSeverity",
- "value":[
- "WARNING"
- ]
- },
- {
- "name":"eventSourceType",
- "value":[
- "f5BigIP"
- ]
- }
- ]
- }
- ],
- [
- {
- "name":"aaiMatchingFields",
- "value":[
- "VMID"
- ]
- },
- {
- "name":"aaiSendFields",
- "value":[
- "Identiy"
- ]
- },
- {
- "name":"groupNumber",
- "value":[
- "1"
- ]
- },
- {
- "name":"timeWindow",
- "value":[
- "0"
- ]
- },
- {
- "name":"ageLimit",
- "value":[
- "1600"
- ]
- },
- {
- "name":"createClosedLoopEventId",
- "value":[
- "Close"
- ]
- },
- {
- "name":"outputEventName",
- "value":[
- "Abatement"
- ]
- },
- {
- "stringSet":[
- {
- "name":"alarmCondition",
- "value":[
- "Reports a transient alarm condition when an outgoing GTP' message send fails"
- ]
- },
- {
- "name":"eventSeverity",
- "value":[
- "NORMAL"
- ]
- },
- {
- "name":"eventSourceType",
- "value":[
- "f5BigIP"
- ]
- }
- ]
- }
- ]
- ]
- }
- ],
- "Policy_":[
- [
- {
- "name":"timeout",
- "value":"500"
- }
- ],
- {
- "policyConfigurations":[
- [
- {
- "name":"recipe",
- "value":[
- "restart"
- ]
- },
- {
- "name":"maxRetries",
- "value":[
- "3"
- ]
- },
- {
- "name":"retryTimeLimit",
- "value":[
- "180"
- ]
- },
- {
- "name":"_id",
- "value":[
- "n9bQ4t6"
- ]
- },
- {
- "name":"parentPolicy",
- "value":[
- ""
- ]
- }
- ],
- [
- {
- "name":"recipe",
- "value":[
- "rebuild"
- ]
- },
- {
- "name":"maxRetries",
- "value":[
- "3"
- ]
- },
- {
- "name":"retryTimeLimit",
- "value":[
- "180"
- ]
- },
- {
- "name":"_id",
- "value":[
- "ItE5xKT"
- ]
- },
- {
- "name":"parentPolicy",
- "value":[
- "n9bQ4t6"
- ]
- },
- {
- "name":"parentPolicyConditions",
- "value":[
- "Failure_Retries",
- "Failure_Timeout",
- "Failure_Exception",
- "Failure"
- ]
- }
- ]
- ]
- }
- ],
- "TCA_":{
- "Narra":[
- {
- "name": "tname",
- "value": "Narra"
- },
- {
- "name": "tuuid",
- "value": "886be8da-14fe-tca1-d04b-d13b55d58df9"
- },
- {
- "name": "tnfc",
- "value": "ENBE"
- },
- {
- "name": "tcaEnab",
- "value": "on"
- },
- {
- "name": "tcaPol",
- "value": "Policy1"
- },
- {
- "name": "tcaPolId",
- "value": "1"
- },
- {
- "name": "tcaInt",
- "value": "2"
- },
- {
- "name": "tcaSev",
- "value": "Warning"
- },
- {
- "name": "tcaVio",
- "value": "3"
- },
- {
- "serviceConfigurations":[
- [
- "PMRRCCONNESTABFAILCELLLATENCY",
- "LESS",
- "4",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
- ],
- [
- "PMRAATTCBRA",
- "GREATER",
- "30",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
- ]
+ "global":
+ [
+ {
+ "name": "service",
+ "value":
+ [
+ "0f983e18-4603-4bb4-a98c-e29691fb16a1"
]
- }
- ],
- "Srini":[
- {
- "name": "tname",
- "value": "Srini"
- },
- {
- "name": "tuuid",
- "value": "8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d"
- },
- {
- "name": "tnfc",
- "value": "ENBE"
- },
- {
- "name": "tcaEnab",
- "value": "on"
- },
- {
- "name": "tcaPol",
- "value": "Policy2"
- },
- {
- "name": "tcaPolId",
- "value": "2"
- },
- {
- "name": "tcaInt",
- "value": "10"
- },
- {
- "name": "tcaSev",
- "value": "Critical"
- },
- {
- "name": "tcaVio",
- "value": "5"
- },
- {
- "serviceConfigurations":[
- [
- "PMRRCCONNESTABFAILCELLLATENCY",
- "EQUAL",
- "3",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
- ],
- [
- "PMRAATTCBRA",
- "GREATER",
- "30",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
- ]
+ },
+
+ {
+ "name": "vf",
+ "value":
+ [
+ "6c7aaec2-59eb-41d9-8681-b7f976ab668d"
]
- }
- ]
- }
+ },
+
+ {
+ "name": "actionSet",
+ "value":
+ [
+ "enbRecipe"
+ ]
+ },
+
+ {
+ "name": "location",
+ "value":
+ [
+ "SNDGCA64"
+ ]
+ }
+ ],
+
+ "HighlandPark_":
+ [
+ [
+ {
+ "name": "topicPublishes",
+ "value": "DCAE-HIGHLANDPARK-EVENT-OUTPUT-VOIP"
+ }
+ ],
+
+ {
+ "serviceConfigurations":
+ [
+ [
+ {
+ "name": "alarmCondition",
+ "value":
+ [
+ "Reports a transient alarm condition when an incoming ACR message is in conflict with former ACR in one diameter session"
+ ]
+ },
+
+ {
+ "name": "eventSourceType",
+ "value":
+ [
+ "f5BigIP"
+ ]
+ },
+
+ {
+ "name": "eventSeverity",
+ "value":
+ [
+ "NORMAL"
+ ]
+ }
+ ],
+
+ [
+ {
+ "name": "alarmCondition",
+ "value":
+ [
+ "Reports a transient alarm condition when an incoming ACR message is in conflict with former ACR in one diameter session"
+ ]
+ },
+
+ {
+ "name": "eventSourceType",
+ "value":
+ [
+ "f5BigIP"
+ ]
+ },
+
+ {
+ "name": "eventSeverity",
+ "value":
+ [
+ "NORMAL"
+ ]
+ }
+ ]
+ ]
+ }
+ ],
+
+ "StringMatch_":
+ {
+ "Group1":
+ [
+ {
+ "name": "rgname",
+ "value": "1493749598520"
+ },
+
+ {
+ "name": "rgfriendlyname",
+ "value": "Group1"
+ },
+
+ {
+ "name": "policyName",
+ "value": "Policy1"
+ },
+
+ {
+ "name": "policyId",
+ "value": "1"
+ },
+
+ {
+ "serviceConfigurations":
+ [
+ [
+ {
+ "name": "aaiMatchingFields",
+ "value":
+ [
+ "complex.city",
+ "vserver.vserver-name"
+ ]
+ },
+
+ {
+ "name": "aaiSendFields",
+ "value":
+ [
+ "complex.city",
+ "vserver.vserver-name"
+ ]
+ },
+
+ {
+ "name": "timeWindow",
+ "value":
+ [
+ "100"
+ ]
+ },
+
+ {
+ "name": "ageLimit",
+ "value":
+ [
+ "100"
+ ]
+ },
+
+ {
+ "name": "createClosedLoopEventId",
+ "value":
+ [
+ "Initial"
+ ]
+ },
+
+ {
+ "name": "outputEventName",
+ "value":
+ [
+ "ONSET"
+ ]
+ },
+
+ {
+ "stringSet":
+ [
+ {
+ "name": "alarmCondition",
+ "value":
+ [
+ "Reports a transient alarm condition when an outgoing Ro message send fails"
+ ]
+ },
+
+ {
+ "name": "eventSeverity",
+ "value":
+ [
+ "WARNING"
+ ]
+ },
+
+ {
+ "name": "eventSourceType",
+ "value":
+ [
+ "f5BigIP"
+ ]
+ }
+ ]
+ }
+ ]
+ ]
+ }
+ ],
+
+ "Group2":
+ [
+ {
+ "name": "rgname",
+ "value": "1493749665149"
+ },
+
+ {
+ "name": "rgfriendlyname",
+ "value": "Group2"
+ },
+
+ {
+ "name": "policyName",
+ "value": "Policy2"
+ },
+
+ {
+ "name": "policyId",
+ "value": "2"
+ },
+
+ {
+ "serviceConfigurations":
+ [
+ [
+ {
+ "name": "aaiMatchingFields",
+ "value":
+ [
+ "cloud-region.identity-url",
+ "vserver.vserver-name"
+ ]
+ },
+
+ {
+ "name": "aaiSendFields",
+ "value":
+ [
+ "cloud-region.identity-url",
+ "vserver.vserver-name"
+ ]
+ },
+
+ {
+ "name": "timeWindow",
+ "value":
+ [
+ "1000"
+ ]
+ },
+
+ {
+ "name": "ageLimit",
+ "value":
+ [
+ "1000"
+ ]
+ },
+
+ {
+ "name": "createClosedLoopEventId",
+ "value":
+ [
+ "Initial"
+ ]
+ },
+
+ {
+ "name": "outputEventName",
+ "value":
+ [
+ "ONSET"
+ ]
+ },
+
+ {
+ "stringSet":
+ [
+ {
+ "name": "alarmCondition",
+ "value":
+ [
+ "LSS_asdaCommunicationFailure"
+ ]
+ },
+
+ {
+ "name": "eventSeverity",
+ "value":
+ [
+ "WARNING"
+ ]
+ },
+
+ {
+ "name": "eventSourceType",
+ "value":
+ [
+ "f5BigIP"
+ ]
+ }
+ ]
+ }
+ ],
+
+ [
+ {
+ "name": "aaiMatchingFields",
+ "value":
+ [
+ "generic-vnf.vnf-name",
+ "vserver.vserver-name"
+ ]
+ },
+
+ {
+ "name": "aaiSendFields",
+ "value":
+ [
+ "generic-vnf.vnf-name",
+ "vserver.vserver-name"
+ ]
+ },
+
+ {
+ "name": "timeWindow",
+ "value":
+ [
+ "3000"
+ ]
+ },
+
+ {
+ "name": "ageLimit",
+ "value":
+ [
+ "3000"
+ ]
+ },
+
+ {
+ "name": "createClosedLoopEventId",
+ "value":
+ [
+ "Initial"
+ ]
+ },
+
+ {
+ "name": "outputEventName",
+ "value":
+ [
+ "ABATED"
+ ]
+ },
+
+ {
+ "stringSet":
+ [
+ {
+ "name": "alarmCondition",
+ "value":
+ [
+ "LSS_asdaCommunicationFailure"
+ ]
+ },
+
+ {
+ "name": "eventSeverity",
+ "value":
+ [
+ "MAJOR"
+ ]
+ },
+
+ {
+ "name": "eventSourceType",
+ "value":
+ [
+ "f5BigIP"
+ ]
+ }
+ ]
+ }
+ ]
+ ]
+ }
+ ]
+ },
+
+ "Policy_":
+ {
+ "Policy1":
+ [
+ {
+ "name": "pname",
+ "value": "Policy1"
+ },
+
+ {
+ "name": "pid",
+ "value": "1"
+ },
+
+ {
+ "name": "timeout",
+ "value": "500"
+ },
+
+ {
+ "policyConfigurations":
+ [
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "restart"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ ""
+ ]
+ }
+ ],
+
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "rebuild"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "ItE5xKT"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicyConditions",
+ "value":
+ [
+ "Failure_Retries",
+ "Failure_Timeout",
+ "Failure_Exception",
+ "Failure"
+ ]
+ }
+ ]
+ ]
+ }
+ ],
+
+ "Policy2":
+ [
+ {
+ "name": "pname",
+ "value": "Policy2"
+ },
+
+ {
+ "name": "pid",
+ "value": "2"
+ },
+
+ {
+ "name": "timeout",
+ "value": "500"
+ },
+
+ {
+ "policyConfigurations":
+ [
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "restart"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ ""
+ ]
+ }
+ ],
+
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "rebuild"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "ItE5xKT"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicyConditions",
+ "value":
+ [
+ "Failure_Retries",
+ "Failure_Timeout",
+ "Failure_Exception",
+ "Failure"
+ ]
+ }
+ ]
+ ]
+ }
+ ]
+ },
+
+ "TCA_":
+ {
+ "Narra":
+ [
+ {
+ "name": "tname",
+ "value": "Narra"
+ },
+
+ {
+ "name": "tuuid",
+ "value": "886be8da-14fe-tca1-d04b-d13b55d58df9"
+ },
+
+ {
+ "name": "tnfc",
+ "value": "ENBE"
+ },
+
+ {
+ "name": "tcaEnab",
+ "value": "on"
+ },
+
+ {
+ "name": "tcaPol",
+ "value": "Policy1"
+ },
+
+ {
+ "name": "tcaPolId",
+ "value": "1"
+ },
+
+ {
+ "name": "tcaInt",
+ "value": "2"
+ },
+
+ {
+ "name": "tcaSev",
+ "value": "Warning"
+ },
+
+ {
+ "name": "tcaVio",
+ "value": "3"
+ },
+
+ {
+ "serviceConfigurations":
+ [
+ [
+ "PMRRCCONNESTABFAILCELLLATENCY",
+ "LESS",
+ "4",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
+ ],
+
+ [
+ "PMRAATTCBRA",
+ "GREATER",
+ "30",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
+ ]
+ ]
+ }
+ ],
+
+ "Srini":
+ [
+ {
+ "name": "tname",
+ "value": "Srini"
+ },
+
+ {
+ "name": "tuuid",
+ "value": "8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d"
+ },
+
+ {
+ "name": "tnfc",
+ "value": "ENBE"
+ },
+
+ {
+ "name": "tcaEnab",
+ "value": "on"
+ },
+
+ {
+ "name": "tcaPol",
+ "value": "Policy2"
+ },
+
+ {
+ "name": "tcaPolId",
+ "value": "2"
+ },
+
+ {
+ "name": "tcaInt",
+ "value": "10"
+ },
+
+ {
+ "name": "tcaSev",
+ "value": "Critical"
+ },
+
+ {
+ "name": "tcaVio",
+ "value": "5"
+ },
+
+ {
+ "serviceConfigurations":
+ [
+ [
+ "PMRRCCONNESTABFAILCELLLATENCY",
+ "EQUAL",
+ "3",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
+ ],
+
+ [
+ "PMRAATTCBRA",
+ "GREATER",
+ "30",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
+ ]
+ ]
+ }
+ ]
+ }
}
\ No newline at end of file
diff --git a/src/test/resources/example/modelPropForPolicy.json b/src/test/resources/example/modelPropForPolicy.json
new file mode 100644
index 0000000..6923e1a
--- /dev/null
+++ b/src/test/resources/example/modelPropForPolicy.json
@@ -0,0 +1,404 @@
+{
+ "global":
+ [
+ {
+ "name": "service",
+ "value":
+ [
+ "0f983e18-4603-4bb4-a98c-e29691fb16a1"
+ ]
+ },
+
+ {
+ "name": "vf",
+ "value":
+ [
+ "6c7aaec2-59eb-41d9-8681-b7f976ab668d"
+ ]
+ },
+
+ {
+ "name": "location",
+ "value":
+ [
+ "SNDGCA64"
+ ]
+ }
+ ],
+
+ "Policy_":
+ {
+ "Policy1":
+ [
+ {
+ "name": "pname",
+ "value": "Policy1"
+ },
+
+ {
+ "name": "pid",
+ "value": "1"
+ },
+
+ {
+ "name": "timeout",
+ "value": "500"
+ },
+
+ {
+ "policyConfigurations":
+ [
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "restart"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ ""
+ ]
+ }
+ ],
+
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "rebuild"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "ItE5xKT"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicyConditions",
+ "value":
+ [
+ "Failure_Retries",
+ "Failure_Timeout",
+ "Failure_Exception",
+ "Failure"
+ ]
+ }
+ ]
+ ]
+ }
+ ],
+
+ "Policy2":
+ [
+ {
+ "name": "pname",
+ "value": "Policy2"
+ },
+
+ {
+ "name": "pid",
+ "value": "2"
+ },
+
+ {
+ "name": "timeout",
+ "value": "500"
+ },
+
+ {
+ "policyConfigurations":
+ [
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "restart"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ ""
+ ]
+ }
+ ],
+
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "rebuild"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "ItE5xKT"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicyConditions",
+ "value":
+ [
+ "Failure_Retries",
+ "Failure_Timeout",
+ "Failure_Exception",
+ "Failure"
+ ]
+ }
+ ]
+ ]
+ }
+ ]
+ },
+
+ "TCA_":
+ {
+ "Narra":
+ [
+ {
+ "name": "tname",
+ "value": "Narra"
+ },
+
+ {
+ "name": "tuuid",
+ "value": "886be8da-14fe-tca1-d04b-d13b55d58df9"
+ },
+
+ {
+ "name": "tnfc",
+ "value": "ENBE"
+ },
+
+ {
+ "name": "tcaEnab",
+ "value": "on"
+ },
+
+ {
+ "name": "tcaPol",
+ "value": "Policy1"
+ },
+
+ {
+ "name": "tcaPolId",
+ "value": "1"
+ },
+
+ {
+ "name": "tcaInt",
+ "value": "2"
+ },
+
+ {
+ "name": "tcaSev",
+ "value": "Warning"
+ },
+
+ {
+ "name": "tcaVio",
+ "value": "3"
+ },
+
+ {
+ "serviceConfigurations":
+ [
+ [
+ "PMRRCCONNESTABFAILCELLLATENCY",
+ "LESS",
+ "4",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
+ ],
+
+ [
+ "PMRAATTCBRA",
+ "GREATER",
+ "30",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
+ ]
+ ]
+ }
+ ],
+
+ "Srini":
+ [
+ {
+ "name": "tname",
+ "value": "Srini"
+ },
+
+ {
+ "name": "tuuid",
+ "value": "8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d"
+ },
+
+ {
+ "name": "tnfc",
+ "value": "ENBE"
+ },
+
+ {
+ "name": "tcaEnab",
+ "value": "on"
+ },
+
+ {
+ "name": "tcaPol",
+ "value": "Policy2"
+ },
+
+ {
+ "name": "tcaPolId",
+ "value": "2"
+ },
+
+ {
+ "name": "tcaInt",
+ "value": "10"
+ },
+
+ {
+ "name": "tcaSev",
+ "value": "Critical"
+ },
+
+ {
+ "name": "tcaVio",
+ "value": "5"
+ },
+
+ {
+ "serviceConfigurations":
+ [
+ [
+ "PMRRCCONNESTABFAILCELLLATENCY",
+ "EQUAL",
+ "3",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
+ ],
+
+ [
+ "PMRAATTCBRA",
+ "GREATER",
+ "30",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
+ ]
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/example/templatePropForTca.json b/src/test/resources/example/templatePropForTca.json
new file mode 100644
index 0000000..9f1ce1d
--- /dev/null
+++ b/src/test/resources/example/templatePropForTca.json
@@ -0,0 +1,10 @@
+{
+ "global": [
+ {
+ "name": "service",
+ "value": [
+ "tosca_definitions_version: cloudify_dsl_1_2\r\n\r\nimports:\r\n- http://www.getcloudify.org/spec/cloudify/3.3.1/types.yaml\r\n- http://135.207.127.211/1607_prod/type_files/cdap_app.yaml\r\n\r\nnode_templates:\r\n MTCA:\r\n type: dcae.nodes.cdap_app\r\n properties:\r\n service_name: \"cdap-mtca-central\"\r\n deployment_JSON: |-\r\n {\r\n \"clusterService\": {\"$ref\": \"/services/vm-cdap-cluster-central/instances/rdm2c\"},\r\n \"namespace\": \"MTCA\",\r\n \"appNames\": [ \"cdap-mtca\" ],\r\n \"flowNames\": [ \"cdap-mtca.TCAVESCollectorFlow\" ],\r\n \"workerNames\": [\"cdap-mtca.TCADMaaPMRSubscriberWorker\", \"cdap-mtca.TCADMaaPMRPublisherWorker\"],\r\n \"serviceNames\" : [],\r\n \"apps\": {\r\n \"cdap-mtca\": {\r\n \"jarFile\": \"/opt/app/cdap-apps/dcae-analytics-mtca-1.0.0.jar\",\r\n \"artifactName\": \"dcae-analytics-mtca\",\r\n \"version\": \"1.0.0\",\r\n \"appConfigFileContent\": \"{config:{ \\\"appName\\\":\\\"cdap-mtca\\\", \\\"appDescription\\\":\\\"DCAE Analytics Threshold Crossing Alert Application\\\", \\\"tcaSubscriberOutputStreamName\\\":\\\"TCASubscriberOutputStream\\\", \\\"thresholdCalculatorFlowletInstances\\\":2, \\\"tcaVESMessageStatusTableName\\\":\\\"TCAVESMessageStatusTable\\\", \\\"tcaVESMessageStatusTableTTLSeconds\\\":864000, \\\"tcaVESAlertsTableName\\\":\\\"TCAVESAlertsTable\\\", \\\"tcaVESAlertsTableTTLSeconds\\\":1728000 }}\"\r\n }\r\n },\r\n \r\n \"configuration\": {\r\n \"$class\": \"com.att.ecomp.dcae.clamp.common.MThresholdCrossingConfiguration\",\r\n \"subscriberContentType\": \"\",\r\n \"subscriberConsumerId\": \"c12\",\r\n \"subscriberConsumerGroup\": \"OpenDCAE-c12\",\r\n \"subscriberTimeoutMS\": \"-1\",\r\n \"subscriberMessageLimit\": \"-1\",\r\n \"subscriberPollingInterval\": \"20000\",\r\n \"publisherContentType\": \"application/json\",\r\n \"publisherMaxBatchSize\": \"10\",\r\n \"publisherMaxRecoveryQueueSize\": \"100000\",\r\n \"publisherPollingInterval\": \"20000\",\r\n \"publisherAlertWindowingTime\": \"86400\",\r\n \"policyName\": \"policy.dcae.configuration\",\r\n \"policyScope\": \"pnf=eNodeB;type=configuration\",\r\n \"policyVersion\": \"1.0.0\",\r\n \"domain\" : \"measurementsForVfScaling\",\r\n \r\n \"signatures\" : {\r\n \t }\r\n\r\n }\r\n }\r\n"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/test/resources/expected/stringmatch.json b/src/test/resources/expected/stringmatch.json
new file mode 100644
index 0000000..52e6d01
--- /dev/null
+++ b/src/test/resources/expected/stringmatch.json
@@ -0,0 +1 @@
+{"service":"StringMatchingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"example_model06.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_StringMatch_","description":"from clds","configName":"com.att.d2.policy.StringMatchingConfiguration","templateVersion":"1604","priority":"4","version":"1610","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"serviceConfigurations":{"Item1":{"rulegroup":"1493749598520","closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_1","aaiMatchingFields":["complex.city","vserver.vserver-name"],"aaiSendFields":["complex.city","vserver.vserver-name"],"stringSet":["eventSeverity","WARNING","alarmCondition","Reports a transient alarm condition when an outgoing Ro message send fails"],"timeWindow":"100","ageLimit":"100","createClosedLoopEventId":"Initial","outputEventName":"ONSET"},"Item2":{"rulegroup":"1493749665149","closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_2","aaiMatchingFields":["cloud-region.identity-url","vserver.vserver-name"],"aaiSendFields":["cloud-region.identity-url","vserver.vserver-name"],"stringSet":["eventSeverity","WARNING","alarmCondition","Reports a transient alarm condition when an outgoing Ro message send fails"],"timeWindow":"1000","ageLimit":"1000","createClosedLoopEventId":"Initial","outputEventName":"ONSET"},"Item3":{"rulegroup":"1493749665149","closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_2","aaiMatchingFields":["generic-vnf.vnf-name","vserver.vserver-name"],"aaiSendFields":["generic-vnf.vnf-name","vserver.vserver-name"],"stringSet":["eventSeverity","WARNING","alarmCondition","Reports a transient alarm condition when an outgoing Ro message send fails"],"timeWindow":"3000","ageLimit":"3000","createClosedLoopEventId":"Initial","outputEventName":"ABATED"}}}}
\ No newline at end of file
diff --git a/src/test/resources/expected/tca.json b/src/test/resources/expected/tca.json
new file mode 100644
index 0000000..2fd16bd
--- /dev/null
+++ b/src/test/resources/expected/tca.json
@@ -0,0 +1,93 @@
+{
+ "service": "MThresholdCrossingConfiguration",
+ "location": "Edge",
+ "uuid": "TestUUID",
+ "policyName": "example_model06.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_",
+ "description": "from clds",
+ "configName": "MThresholdCrossingConfiguration",
+ "templateVersion": "5.2.0.1",
+ "priority": "4",
+ "version": "5.2.0.1",
+ "policyScope": "resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8",
+ "content":
+ {
+ "$class": "com.att.ecomp.dcae.clamp.common.MThresholdCrossingConfiguration",
+ "domain": "measurementsForVfScaling",
+ "policyScope": "pnf=eNodeB;type=configuration",
+ "policyName": "policy.dcae.configuration",
+ "policyVersion": "1.0.0",
+ "subscriberContentType": "application/json",
+ "subscriberConsumerId": "c13",
+ "subscriberConsumerGroup": "OpenDCAE-c13",
+ "subscriberTimeoutMS": "-1",
+ "subscriberMessageLimit": "-1",
+ "subscriberPollingInterval": "20000",
+ "publisherContentType": "application/json",
+ "publisherMaxBatchSize": "10",
+ "publisherMaxRecoveryQueueSize": "100000",
+ "publisherPollingInterval": "20000",
+ "publisherAlertWindowingTime": "86400",
+ "signatures":
+ [
+ {
+ "nfNamingCode": "ENBE",
+ "target": "common_id",
+ "targetType": "eNodeB",
+ "useCaseName": "Narra",
+ "signatureName": "Narra_886be8da-14fe-tca1-d04b-d13b55d58df9",
+ "signatureUuid": "886be8da-14fe-tca1-d04b-d13b55d58df9",
+ "closedLoopControlName": "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_1",
+ "severity": "Warning",
+ "version": "1.0.2",
+ "maxInterval": 2,
+ "minMessageViolations": 3,
+ "thresholds":
+ [
+ {
+ "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value",
+ "thresholdName": "PMRRCCONNESTABFAILCELLLATENCY",
+ "thresholdValue": 4,
+ "direction": "LESS"
+ },
+
+ {
+ "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value",
+ "thresholdName": "PMRAATTCBRA",
+ "thresholdValue": 30,
+ "direction": "GREATER"
+ }
+ ]
+ },
+
+ {
+ "nfNamingCode": "ENBE",
+ "target": "common_id",
+ "targetType": "eNodeB",
+ "useCaseName": "Srini",
+ "signatureName": "Srini_8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d",
+ "signatureUuid": "8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d",
+ "closedLoopControlName": "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_2",
+ "severity": "Critical",
+ "version": "1.0.2",
+ "maxInterval": 10,
+ "minMessageViolations": 5,
+ "thresholds":
+ [
+ {
+ "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value",
+ "thresholdName": "PMRRCCONNESTABFAILCELLLATENCY",
+ "thresholdValue": 3,
+ "direction": "EQUAL"
+ },
+
+ {
+ "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value",
+ "thresholdName": "PMRAATTCBRA",
+ "thresholdValue": 30,
+ "direction": "GREATER"
+ }
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file