lower code smells
[appc.git] / appc-inbound / appc-interfaces-service / bundle / src / main / java / org / onap / appc / interfaces / service / executorImpl / ServiceExecutorImpl.java
index f38ea83..405dfcf 100644 (file)
@@ -4,8 +4,10 @@
  * ================================================================================
  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
- * Copyright (C) 2017 Amdocs
- * =============================================================================
+ * Modifications Copyright (C) 2019 Ericsson
+ * ================================================================================
+ * Modifications Copyright (C) 2019 IBM
+ * ================================================================================
  * 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
@@ -31,8 +33,8 @@ import java.util.Map;
 import org.onap.appc.aai.client.aai.AaiService;
 import org.onap.appc.interfaces.service.data.Request;
 import org.onap.appc.interfaces.service.data.ScopeOverlap;
-import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 import org.onap.ccsdk.sli.adaptors.aai.AAIClient;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
@@ -43,12 +45,12 @@ public class ServiceExecutorImpl {
 
     private static final EELFLogger log = EELFManager.getInstance().getLogger(ServiceExecutorImpl.class);
     private AAIClient aaiClient;
+
     public String isRequestOverLap(String requestData) throws Exception {
         String response = "\"requestOverlap\"  : ";
         log.info("Response from ServiceExecutorImpl");
-        ScopeOverlap scopeOverlap = new ScopeOverlap();
-        ObjectMapper mapper = new ObjectMapper();
-        scopeOverlap = mapper.readValue(requestData, ScopeOverlap.class);
+        ObjectMapper mapper = getObjectMapper();
+        ScopeOverlap scopeOverlap = mapper.readValue(requestData, ScopeOverlap.class);
         // return response + String.valueOf(checkForOverLap(scopeOverlap));
         boolean isOverlap = checkForOverLap(scopeOverlap);
         scopeOverlap.setOverlap(String.valueOf(isOverlap));
@@ -69,11 +71,12 @@ public class ServiceExecutorImpl {
         }else if ( scopeOverlap.getInProgressRequest().isEmpty()){
             return Boolean.FALSE;
         }
-        else if (scopeOverlap.getInProgressRequest().size() == 0) {
-            return Boolean.FALSE;
-        }
         if (scopeOverlap.getCurrentRequest().getActionIdentifiers().getVnfId() != null) {
             return Boolean.TRUE;
+        } else if (!Strings.isNullOrEmpty(scopeOverlap.getVnfId())
+                && scopeOverlap.getInProgressRequest().size() > 0) {
+            log.info("Checking overlap for similar vnfid :" + isVnfIdOverlap(scopeOverlap));
+            return isVnfIdOverlap(scopeOverlap);
         } else if (scopeOverlap.getCurrentRequest().getActionIdentifiers().getVfModuleId() != null) {
             return Boolean.TRUE;
         } else if (scopeOverlap.getCurrentRequest().getActionIdentifiers().getvServerId() != null) {
@@ -86,11 +89,11 @@ public class ServiceExecutorImpl {
     }
 
     private boolean isVnfcNameOverLap(ScopeOverlap scopeOverlap) throws Exception {
-        
-        AaiService aaiService =new AaiService(aaiClient);
-        SvcLogicContext ctx = new SvcLogicContext();
-        Map<String, String> params = new HashMap<String, String>();
-        List<String> inProgressVServerIds = new ArrayList<String>();
+
+        AaiService aaiService = getAaiService(aaiClient);
+        SvcLogicContext ctx = getSvcLogicContext();
+        Map<String, String> params = new HashMap<>();
+        List<String> inProgressVServerIds = new ArrayList<>();
         String currentVnfcVserverId = new String();
         String currentRequestVnfcName = scopeOverlap.getCurrentRequest().getActionIdentifiers().getVnfcName();
         String currentRequestVServerId = scopeOverlap.getCurrentRequest().getActionIdentifiers().getvServerId();
@@ -98,27 +101,31 @@ public class ServiceExecutorImpl {
         params.put("vnfId", scopeOverlap.getVnfId());
         try {
             aaiService.getGenericVnfInfo(params, ctx);
-            int vm_count = Integer.parseInt(ctx.getAttribute("vm-count"));
-                for(Request inprogressRequest:inProgressRequests){    
+            int vmCount = Integer.parseInt(ctx.getAttribute("vm-count"));
+                for(Request inprogressRequest:inProgressRequests){
                     if(inprogressRequest.getActionIdentifiers().getVnfcName() != null){
-                    for (int i = 0; i < vm_count; i++){                    
-                        if (ctx.getAttribute("vm[" + i + "].vnfc-name") != null && ctx.getAttribute("vm[" + i + "].vnfc-name")
-                        .equals(inprogressRequest.getActionIdentifiers().getVnfcName()))
-                            inProgressVServerIds.add(ctx.getAttribute("vm[" + i + "].vserver-id"));
-                        log.debug("Received vserver-id from AAI: "+ inProgressVServerIds);
+                        for (int i = 0; i < vmCount; i++) {
+                            if (ctx.getAttribute("vm[" + i + "].vnfc-name") != null && ctx.getAttribute("vm[" + i + "].vnfc-name")
+                                    .equals(inprogressRequest.getActionIdentifiers().getVnfcName())) {
+                                String newInProgressVserverId = ctx.getAttribute("vm[" + i + "].vserver-id");
+                                inProgressVServerIds.add(newInProgressVserverId);
+                                log.debug("Received vserver-id from AAI: " + newInProgressVserverId);
+                            }
+                        }
                     }
-                }
             }
             for(Request inProgVserverIds:inProgressRequests)
-                if(inProgVserverIds.getActionIdentifiers().getvServerId()!=null)
+                if(inProgVserverIds.getActionIdentifiers().getvServerId() != null)
                     inProgressVServerIds.add(inProgVserverIds.getActionIdentifiers().getvServerId());
             if(currentRequestVnfcName != null){
-                for (int i = 0; i < vm_count; i++)
+                for (int i = 0; i < vmCount; i++) {
                     if (ctx.getAttribute("vm[" + i + "].vnfc-name") != null && ctx.getAttribute("vm[" + i + "].vnfc-name")
-                            .equals(currentRequestVnfcName))
-                 currentVnfcVserverId = ctx.getAttribute("vm[" + i + "].vserver-id");
-                log.debug("Received vserver-id from AAI: "+ currentVnfcVserverId);
-                return inProgressVServerIds.contains(currentVnfcVserverId);
+                            .equals(currentRequestVnfcName)) {
+                        currentVnfcVserverId = ctx.getAttribute("vm[" + i + "].vserver-id");
+                        log.debug("Received vserver-id from AAI: " + currentVnfcVserverId);
+                        return inProgressVServerIds.contains(currentVnfcVserverId);
+                    }
+                }
             }
             for (Request request : inProgressRequests) {
                 if(!Strings.isNullOrEmpty(currentRequestVServerId)  && currentRequestVServerId.equalsIgnoreCase(request.getActionIdentifiers().getvServerId()))
@@ -129,7 +136,6 @@ public class ServiceExecutorImpl {
             }
             return Boolean.FALSE;
         } catch (Exception e) {
-            e.printStackTrace();
             log.debug(e.getMessage());
             throw e;
         }
@@ -138,11 +144,11 @@ public class ServiceExecutorImpl {
     private boolean isVserverOrVnfcIdOverLap(ScopeOverlap scopeOverlap) throws Exception {
         List<Request> inProgressRequests = scopeOverlap.getInProgressRequest();
         for (Request request : inProgressRequests) {
-            if(request.getActionIdentifiers().getVnfId()!= null)
+            if(request.getActionIdentifiers().getVnfId() != null)
             return Boolean.TRUE ;
             }
         for (Request request : inProgressRequests) {
-            if(request.getActionIdentifiers().getVfModuleId()!= null)
+            if(request.getActionIdentifiers().getVfModuleId() != null)
                 return Boolean.TRUE ;
         }
         String currentVserverID = scopeOverlap.getCurrentRequest().getActionIdentifiers().getvServerId();
@@ -152,4 +158,30 @@ public class ServiceExecutorImpl {
         }
         return isVnfcNameOverLap(scopeOverlap);
     }
+
+    private boolean isVnfIdOverlap(ScopeOverlap scopeOverlap) throws Exception {
+        List<Request> inProgressRequests = scopeOverlap.getInProgressRequest();
+        log.info("inProgressRequests list" + inProgressRequests.toString());
+        for (Request request : inProgressRequests) {
+            log.info("request list" + request.getTargetId());
+            if (!Strings.isNullOrEmpty(scopeOverlap.getVnfId())
+                    && !Strings.isNullOrEmpty(request.getTargetId())
+                    && (request.getTargetId()
+                            .equals(scopeOverlap.getVnfId())))
+                return Boolean.TRUE;
+        }
+        return Boolean.FALSE;
+    }
+
+    protected ObjectMapper getObjectMapper() {
+        return new ObjectMapper();
+    }
+
+    protected AaiService getAaiService(AAIClient aaiClient) {
+        return new AaiService(aaiClient);
+    }
+
+    protected SvcLogicContext getSvcLogicContext() {
+        return new SvcLogicContext();
+    }
 }