Prevent adding same type of Op policy
[clamp.git] / src / main / java / org / onap / clamp / loop / LoopService.java
index af1f58b..d14667e 100644 (file)
@@ -98,7 +98,7 @@ public class LoopService {
     public void updateDcaeDeploymentFields(Loop loop, String deploymentId, String deploymentUrl) {
         loop.setDcaeDeploymentId(deploymentId);
         loop.setDcaeDeploymentStatusUrl(deploymentUrl);
-        loopsRepository.save(loop);
+        loopsRepository.saveAndFlush(loop);
     }
 
     public void updateLoopState(Loop loop, String newState) {
@@ -118,6 +118,12 @@ public class LoopService {
     Loop addOperationalPolicy(String loopName, String policyType, String policyVersion) throws IOException {
         Loop loop = getLoop(loopName);
         PolicyModel policyModel = policyModelsService.getPolicyModel(policyType, policyVersion);
+        Set<OperationalPolicy> opPolicySet = loop.getOperationalPolicies();
+        for (OperationalPolicy opPolicy : opPolicySet) {
+               if (opPolicy.getPolicyModel().equals(policyModel)) {
+                       throw new IllegalArgumentException("This type of Operational Policy is already added to the loop. Please choose another one.");
+               }
+        }
         if (policyModel == null) {
             return null;
         }