aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorDeterme, Sebastien (sd378r) <sd378r@intl.att.com>2017-09-22 15:52:45 +0200
committerDeterme, Sebastien (sd378r) <sd378r@intl.att.com>2017-09-22 16:04:11 +0200
commit8c5ffd0eb1269ceeb9b19a2c274577fae6240840 (patch)
treeb2c21078726a8cf13a0070a579b45248710b3934 /src/test
parent10efd56cf30699a2d241d2b8aef6d504faf3090d (diff)
Add the target resource ID
Add target resource ID in operational policy code as requested. It changes the UI, the Policy code, the model and the tests. Change-Id: Ie72badde55e7f8b5c2e5234099a09b95958205cf Issue-ID: CLAMP-55 Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/clamp/clds/it/OperationPolicyReqIT.java89
-rw-r--r--src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java5
-rw-r--r--src/test/resources/example/model-properties/modelBpmnProp.json6
-rw-r--r--src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json3
-rw-r--r--src/test/resources/example/modelProp.json95
-rw-r--r--src/test/resources/example/modelPropForPolicy.json28
-rw-r--r--src/test/resources/example/operational-policy/yaml-policy-chain-1.yaml112
-rw-r--r--src/test/resources/example/operational-policy/yaml-policy-chain-2.yaml112
8 files changed, 382 insertions, 68 deletions
diff --git a/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqIT.java b/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqIT.java
new file mode 100644
index 00000000..e57c9dde
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqIT.java
@@ -0,0 +1,89 @@
+/*-
+ * ============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 static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.client.req.OperationalPolicyReq;
+import org.onap.clamp.clds.model.CldsEvent;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.model.prop.Policy;
+import org.onap.clamp.clds.model.prop.PolicyChain;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+import org.onap.policy.api.AttributeType;
+import org.onap.policy.controlloop.policy.builder.BuilderException;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@TestPropertySource(locations = "classpath:application-no-camunda.properties")
+public class OperationPolicyReqIT extends AbstractIT {
+
+ @Test
+ public void formatAttributesTest() throws IOException, BuilderException {
+ String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");
+ String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");
+ ModelProperties prop = new ModelProperties("testModel", "controlNameTest", CldsEvent.ACTION_SUBMIT, true,
+ modelBpmnProp, modelProp);
+ List<Map<AttributeType, Map<String, String>>> attributes = new ArrayList<>();
+ if (prop.getType(Policy.class).isFound()) {
+ for (PolicyChain policyChain : prop.getType(Policy.class).getPolicyChains()) {
+
+ attributes.add(OperationalPolicyReq.formatAttributes(refProp, prop, prop.getType(Policy.class).getId(),
+ policyChain));
+ }
+ }
+ assertFalse(attributes.isEmpty());
+ assertTrue(attributes.size() == 2);
+ // now validate the Yaml, to do so we replace the dynamic ID by a known
+ // key so that we can compare it
+ String yaml = URLDecoder.decode(attributes.get(0).get(AttributeType.RULE).get("ControlLoopYaml"), "UTF-8");
+ yaml = yaml.replaceAll("trigger_policy: (.*)", "trigger_policy: <generatedId>");
+ yaml = yaml.replaceAll("id: (.*)", "id: <generatedId>");
+ yaml = yaml.replaceAll("success: (.*)", "success: <generatedId>");
+
+ assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-1.yaml"), yaml);
+
+ yaml = URLDecoder.decode(attributes.get(1).get(AttributeType.RULE).get("ControlLoopYaml"), "UTF-8");
+ yaml = yaml.replaceAll("trigger_policy: (.*)", "trigger_policy: <generatedId>");
+ yaml = yaml.replaceAll("id: (.*)", "id: <generatedId>");
+ yaml = yaml.replaceAll("success: (.*)", "success: <generatedId>");
+
+ assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-2.yaml"), yaml);
+ }
+}
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 efeae00d..f87bd37d 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
@@ -75,6 +75,11 @@ public class ModelPropertiesTest {
assertEquals(1, policy.getPolicyChains().size());
assertEquals("0", policy.getPolicyChains().get(0).getPolicyId());
assertEquals(1, policy.getPolicyChains().get(0).getPolicyItems().size());
+ assertEquals("resourceid", policy.getPolicyChains().get(0).getPolicyItems().get(0).getTargetResourceId());
+ assertEquals(180, policy.getPolicyChains().get(0).getPolicyItems().get(0).getRetryTimeLimit());
+ assertEquals(3, policy.getPolicyChains().get(0).getPolicyItems().get(0).getMaxRetries());
+ assertEquals("", policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicy());
+ assertEquals(null, policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicyConditions());
Tca tca = prop.getType(Tca.class);
assertTrue(tca.isFound());
diff --git a/src/test/resources/example/model-properties/modelBpmnProp.json b/src/test/resources/example/model-properties/modelBpmnProp.json
index 413d3400..3b86ad79 100644
--- a/src/test/resources/example/model-properties/modelBpmnProp.json
+++ b/src/test/resources/example/model-properties/modelBpmnProp.json
@@ -125,6 +125,12 @@
"value": [
""
]
+ },
+ {
+ "name": "targetResourceId",
+ "value": [
+ "resourceid"
+ ]
}
]
]
diff --git a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json b/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json
index 3846f7cf..fba99c6f 100644
--- a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json
+++ b/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json
@@ -165,7 +165,8 @@
"Failure_Exception": "Failure: Exception",
"Failure": "Failure: Other",
"Success": "Success"
- }
+ },
+ "targetResourceId": "resourceid"
},
"shared": {
"byService": {
diff --git a/src/test/resources/example/modelProp.json b/src/test/resources/example/modelProp.json
index 8b8e984f..c2262f52 100644
--- a/src/test/resources/example/modelProp.json
+++ b/src/test/resources/example/modelProp.json
@@ -42,73 +42,6 @@
}
],
- "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":
@@ -472,6 +405,13 @@
[
""
]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
}
],
@@ -525,6 +465,13 @@
"Failure_Exception",
"Failure"
]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
}
]
]
@@ -590,6 +537,13 @@
[
""
]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
}
],
@@ -643,6 +597,13 @@
"Failure_Exception",
"Failure"
]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
}
]
]
diff --git a/src/test/resources/example/modelPropForPolicy.json b/src/test/resources/example/modelPropForPolicy.json
index 6923e1a6..bf348092 100644
--- a/src/test/resources/example/modelPropForPolicy.json
+++ b/src/test/resources/example/modelPropForPolicy.json
@@ -87,6 +87,13 @@
[
""
]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
}
],
@@ -140,6 +147,13 @@
"Failure_Exception",
"Failure"
]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
}
]
]
@@ -205,6 +219,13 @@
[
""
]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
}
],
@@ -258,6 +279,13 @@
"Failure_Exception",
"Failure"
]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
}
]
]
diff --git a/src/test/resources/example/operational-policy/yaml-policy-chain-1.yaml b/src/test/resources/example/operational-policy/yaml-policy-chain-1.yaml
new file mode 100644
index 00000000..029cfbb7
--- /dev/null
+++ b/src/test/resources/example/operational-policy/yaml-policy-chain-1.yaml
@@ -0,0 +1,112 @@
+!!org.onap.policy.controlloop.policy.ControlLoopPolicy
+controlLoop:
+ abatement: false
+ controlLoopName: controlNameTest
+ resources:
+ - resourceInvariantUUID: null
+ resourceName: 6c7aaec2-59eb-41d9-8681-b7f976ab668d
+ resourceType: VF
+ resourceUUID: null
+ resourceVersion: null
+ services:
+ - serviceInvariantUUID: null
+ serviceName: 0f983e18-4603-4bb4-a98c-e29691fb16a1
+ serviceUUID: null
+ serviceVersion: null
+ timeout: 500
+ trigger_policy: <generatedId>
+ version: 2.0.0
+policies:
+- actor: AOTS
+ description: checkENodeBTicketHours Policy - the trigger (no parent) policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: checkENodeBTicketHours Policy
+ operationsAccumulateParams: null
+ payload:
+ timeWindow: '35'
+ recipe: checkENodeBTicketHours
+ retry: 0
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 120
+- actor: AOTS
+ description: checkEquipmentStatus Policy - triggered conditionally by checkENodeBTicketHours Policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: checkEquipmentStatus Policy
+ operationsAccumulateParams: null
+ payload: null
+ recipe: checkEquipmentStatus
+ retry: 0
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 120
+- actor: AOTS
+ description: checkEimStatus Policy - triggered conditionally by checkEquipmentStatus Policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: checkEimStatus Policy
+ operationsAccumulateParams: null
+ payload: null
+ recipe: checkEimStatus
+ retry: 0
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 120
+- actor: AOTS
+ description: checkMaintenanceWindow Policy - triggered conditionally by checkEimStatus Policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: checkMaintenanceWindow Policy
+ operationsAccumulateParams: null
+ payload: null
+ recipe: checkMaintenanceWindow
+ retry: 0
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 120
+- actor: SDNR
+ description: Reset Policy - triggered conditionally by checkMaintenanceWindow Policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: Reset Policy
+ operationsAccumulateParams:
+ limit: 2
+ period: 10s
+ payload: null
+ recipe: Reset
+ retry: 3
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 180
diff --git a/src/test/resources/example/operational-policy/yaml-policy-chain-2.yaml b/src/test/resources/example/operational-policy/yaml-policy-chain-2.yaml
new file mode 100644
index 00000000..029cfbb7
--- /dev/null
+++ b/src/test/resources/example/operational-policy/yaml-policy-chain-2.yaml
@@ -0,0 +1,112 @@
+!!org.onap.policy.controlloop.policy.ControlLoopPolicy
+controlLoop:
+ abatement: false
+ controlLoopName: controlNameTest
+ resources:
+ - resourceInvariantUUID: null
+ resourceName: 6c7aaec2-59eb-41d9-8681-b7f976ab668d
+ resourceType: VF
+ resourceUUID: null
+ resourceVersion: null
+ services:
+ - serviceInvariantUUID: null
+ serviceName: 0f983e18-4603-4bb4-a98c-e29691fb16a1
+ serviceUUID: null
+ serviceVersion: null
+ timeout: 500
+ trigger_policy: <generatedId>
+ version: 2.0.0
+policies:
+- actor: AOTS
+ description: checkENodeBTicketHours Policy - the trigger (no parent) policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: checkENodeBTicketHours Policy
+ operationsAccumulateParams: null
+ payload:
+ timeWindow: '35'
+ recipe: checkENodeBTicketHours
+ retry: 0
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 120
+- actor: AOTS
+ description: checkEquipmentStatus Policy - triggered conditionally by checkENodeBTicketHours Policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: checkEquipmentStatus Policy
+ operationsAccumulateParams: null
+ payload: null
+ recipe: checkEquipmentStatus
+ retry: 0
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 120
+- actor: AOTS
+ description: checkEimStatus Policy - triggered conditionally by checkEquipmentStatus Policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: checkEimStatus Policy
+ operationsAccumulateParams: null
+ payload: null
+ recipe: checkEimStatus
+ retry: 0
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 120
+- actor: AOTS
+ description: checkMaintenanceWindow Policy - triggered conditionally by checkEimStatus Policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: checkMaintenanceWindow Policy
+ operationsAccumulateParams: null
+ payload: null
+ recipe: checkMaintenanceWindow
+ retry: 0
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 120
+- actor: SDNR
+ description: Reset Policy - triggered conditionally by checkMaintenanceWindow Policy - created by CLDS
+ failure: FINAL_FAILURE
+ failure_exception: FINAL_FAILURE_EXCEPTION
+ failure_guard: FINAL_FAILURE_GUARD
+ failure_retries: FINAL_FAILURE_RETRIES
+ failure_timeout: FINAL_FAILURE_TIMEOUT
+ id: <generatedId>
+ name: Reset Policy
+ operationsAccumulateParams:
+ limit: 2
+ period: 10s
+ payload: null
+ recipe: Reset
+ retry: 3
+ success: <generatedId>
+ target:
+ resourceID: resource-id
+ type: VM
+ timeout: 180