Merge "Reorder modifiers"
[so.git] / bpmn / MSOCommonBPMN / src / main / java / org / openecomp / mso / client / appc / ApplicationControllerAction.java
index 8b87088..3c00627 100644 (file)
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.mso.client.appc;\r
-\r
-import java.util.HashMap;\r
-import java.util.List;\r
-\r
-import org.openecomp.mso.client.appc.ApplicationControllerSupport.StatusCategory;\r
-import org.openecomp.mso.bpmn.appc.payload.PayloadClient;\r
-import org.openecomp.mso.bpmn.core.json.JsonUtils;\r
-import org.openecomp.mso.client.appc.ApplicationControllerOrchestrator;\r
-import java.util.Optional;\r
-import org.onap.appc.client.lcm.model.Action;\r
-import org.onap.appc.client.lcm.model.Status;\r
-import com.att.eelf.configuration.EELFLogger;\r
-import com.att.eelf.configuration.EELFManager;\r
-import com.att.eelf.configuration.EELFLogger.Level;\r
-import java.lang.NoSuchMethodError;\r
-import com.fasterxml.jackson.core.JsonProcessingException;\r
-import com.fasterxml.jackson.core.type.TypeReference;\r
-import com.fasterxml.jackson.databind.JsonMappingException;\r
-import com.fasterxml.jackson.databind.ObjectMapper;\r
-\r
-\r
-public class ApplicationControllerAction {\r
-       protected ApplicationControllerOrchestrator client = new ApplicationControllerOrchestrator();\r
-       private String errorCode = "1002";\r
-       private String errorMessage = "Unable to reach App C Servers";\r
-       protected final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();\r
-       \r
-       public void runAppCCommand(Action action, String msoRequestId, String vnfId, Optional<String> payload, HashMap<String, String> payloadInfo){\r
-               Status appCStatus = null;\r
-               try{\r
-                       String vnfName = payloadInfo.getOrDefault("vnfName", "");\r
-                       String aicIdentity = payloadInfo.getOrDefault("vnfName","");\r
-                       String vnfHostIpAddress = payloadInfo.getOrDefault("vnfHostIpAddress","");\r
-                       String vmIdList = payloadInfo.getOrDefault("vmIdList", "");\r
-                       String identityUrl = payloadInfo.getOrDefault("identityUrl", "");\r
-                       switch(action){\r
-                               case ResumeTraffic:\r
-                                       appCStatus = resumeTrafficAction(msoRequestId, vnfId, vnfName);\r
-                                       break;\r
-                           case Start:\r
-                           case Stop:\r
-                               appCStatus = startStopAction(action, msoRequestId, vnfId, aicIdentity);\r
-                               break;\r
-                               case Unlock:\r
-                               case Lock:\r
-                                       appCStatus = client.vnfCommand(action, msoRequestId, vnfId, Optional.empty());\r
-                                       break;\r
-                               case QuiesceTraffic:\r
-                                       appCStatus = quiesceTrafficAction(msoRequestId, vnfId, payload, vnfName);\r
-                                       break;\r
-                               case HealthCheck:\r
-                                       appCStatus = healthCheckAction(msoRequestId, vnfId, vnfName, vnfHostIpAddress);\r
-                                       break;\r
-                               case Snapshot:\r
-                                       String vmIds = JsonUtils.getJsonValue(vmIdList, "vmIds");\r
-                                       String vmId = "";\r
-                                       ObjectMapper mapper = new ObjectMapper();\r
-                                       List<String> vmIdJsonList = mapper.readValue(vmIds, new TypeReference<List<String>>(){});\r
-                                       int i = 0;\r
-                                       while(i < vmIdJsonList.size()){\r
-                                               vmId = vmIdJsonList.get(i);\r
-                                               appCStatus = snapshotAction(msoRequestId, vnfId, vmId, identityUrl);\r
-                                               i++;\r
-                                       }\r
-                                       break;\r
-                               case ConfigModify:\r
-                                       appCStatus = payloadAction(action, msoRequestId, vnfId, payload);\r
-                                       break;\r
-                               case UpgradePreCheck:\r
-                               case UpgradePostCheck:\r
-                               case UpgradeSoftware:\r
-                               case UpgradeBackup:\r
-                                       appCStatus = upgradeAction(action,msoRequestId, vnfId, payload, vnfName);\r
-                                       break;\r
-                               default:\r
-                                       errorMessage = "Unable to idenify Action request for AppCClient";\r
-                                       break;\r
-                       }\r
-                       if(appCStatus != null){\r
-                               errorCode = Integer.toString(appCStatus.getCode());\r
-                               errorMessage = appCStatus.getMessage();\r
\r
-                       }\r
-                       if(ApplicationControllerSupport.getCategoryOf(appCStatus).equals(StatusCategory.NORMAL)){\r
-                               errorCode = "0";\r
-                       }\r
-               }\r
-               catch(JsonProcessingException e){\r
-                       auditLogger.log(Level.ERROR, "Incorrect Payload format for action request" + action.toString(),e, e.getMessage());\r
-                       errorMessage = e.getMessage();\r
-               }\r
-               catch(ApplicationControllerOrchestratorException e){\r
-                       auditLogger.log(Level.ERROR, "Error building Appc request: ", e, e.getMessage());\r
-                       errorCode = "1002";\r
-                       errorMessage = e.getMessage();\r
-               }\r
-               catch (NoSuchMethodError e) {\r
-                       auditLogger.log(Level.ERROR, "Error building Appc request: ", e, e.getMessage());\r
-                       errorMessage = e.getMessage();\r
-               } \r
-               catch(Exception e){\r
-                       auditLogger.log(Level.ERROR, "Error building Appc request: ", e, e.getMessage());\r
-                       errorMessage = e.getMessage();\r
-               }\r
-       }\r
-       \r
-       private Status payloadAction(Action action, String msoRequestId, String vnfId, Optional<String> payload) throws JsonProcessingException, Exception{\r
-               if(!(payload.isPresent())){\r
-                       throw new IllegalArgumentException("Payload is not present for " + action.toString());\r
-               }\r
-               return client.vnfCommand(action, msoRequestId, vnfId, payload);\r
-       }\r
-       \r
-       private Status quiesceTrafficAction(String msoRequestId, String vnfId, Optional<String> payload, String vnfName) throws JsonProcessingException, Exception{\r
-               if(!(payload.isPresent())){\r
-                       throw new IllegalArgumentException("Payload is not present for " + Action.QuiesceTraffic.toString());\r
-               }\r
-               payload = PayloadClient.quiesceTrafficFormat(payload, vnfName);\r
-               return client.vnfCommand(Action.QuiesceTraffic, msoRequestId, vnfId, payload);\r
-       }\r
-       \r
-       private Status upgradeAction(Action action, String msoRequestId, String vnfId, Optional<String> payload, String vnfName) throws JsonProcessingException, Exception{\r
-               if(!(payload.isPresent())){\r
-                       throw new IllegalArgumentException("Payload is not present for " + action.toString());\r
-               }\r
-               payload = PayloadClient.upgradeFormat(payload, vnfName);\r
-               return client.vnfCommand(action, msoRequestId, vnfId, payload);\r
-       }\r
-       \r
-       private Status resumeTrafficAction(String msoRequestId, String vnfId, String vnfName)throws JsonProcessingException, Exception{\r
-               Optional<String> payload = PayloadClient.resumeTrafficFormat(vnfName);\r
-               return client.vnfCommand(Action.ResumeTraffic, msoRequestId, vnfId, payload);\r
-       }\r
-       \r
-       private Status startStopAction(Action action, String msoRequestId, String vnfId, String aicIdentity)throws JsonProcessingException, Exception{\r
-               Optional<String> payload = PayloadClient.startStopFormat(aicIdentity);\r
-               return client.vnfCommand(action, msoRequestId, vnfId, payload);\r
-       }\r
-       \r
-       private Status healthCheckAction(String msoRequestId, String vnfId, String vnfName, String vnfHostIpAddress)throws JsonProcessingException, Exception{\r
-               Optional<String> payload = PayloadClient.healthCheckFormat(vnfName, vnfHostIpAddress);\r
-               return client.vnfCommand(Action.HealthCheck, msoRequestId, vnfId, payload);\r
-       }\r
-       \r
-       private Status snapshotAction(String msoRequestId, String vnfId, String vmId, String identityUrl) throws JsonProcessingException, Exception{\r
-               Optional<String> payload = PayloadClient.snapshotFormat(vmId, identityUrl);\r
-               return client.vnfCommand(Action.Snapshot, msoRequestId, vnfId, payload);\r
-       }\r
-       \r
-       public String getErrorMessage(){\r
-               return errorMessage;\r
-       }\r
-       \r
-       public String getErrorCode(){\r
-               return errorCode;\r
-       }\r
-}\r
+package org.openecomp.mso.client.appc;
+
+import java.util.HashMap;
+import java.util.List;
+
+import org.openecomp.mso.client.appc.ApplicationControllerSupport.StatusCategory;
+import org.openecomp.mso.bpmn.appc.payload.PayloadClient;
+import org.openecomp.mso.bpmn.core.json.JsonUtils;
+import org.openecomp.mso.client.appc.ApplicationControllerOrchestrator;
+import java.util.Optional;
+import org.onap.appc.client.lcm.model.Action;
+import org.onap.appc.client.lcm.model.Status;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.att.eelf.configuration.EELFLogger.Level;
+import java.lang.NoSuchMethodError;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+
+public class ApplicationControllerAction {
+       protected ApplicationControllerOrchestrator client = new ApplicationControllerOrchestrator();
+       private String errorCode = "1002";
+       private String errorMessage = "Unable to reach App C Servers";
+       protected final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+       
+       public void runAppCCommand(Action action, String msoRequestId, String vnfId, Optional<String> payload, HashMap<String, String> payloadInfo, String controllerType){             Status appCStatus = null;
+               try{
+                       String vnfName = payloadInfo.getOrDefault("vnfName", "");
+                       String aicIdentity = payloadInfo.getOrDefault("vnfName","");
+                       String vnfHostIpAddress = payloadInfo.getOrDefault("vnfHostIpAddress","");
+                       String vmIdList = payloadInfo.getOrDefault("vmIdList", "");
+                       String identityUrl = payloadInfo.getOrDefault("identityUrl", "");
+                       switch(action){
+                               case ResumeTraffic:
+                                       appCStatus = resumeTrafficAction(msoRequestId, vnfId, vnfName, controllerType);
+                                       break;
+                           case Start:
+                           case Stop:
+                               appCStatus = startStopAction(action, msoRequestId, vnfId, aicIdentity, controllerType);
+                               break;
+                               case Unlock:
+                               case Lock:
+                                       appCStatus = client.vnfCommand(action, msoRequestId, vnfId, Optional.empty(), controllerType);
+                                       break;
+                               case QuiesceTraffic:
+                                       appCStatus = quiesceTrafficAction(msoRequestId, vnfId, payload, vnfName, controllerType);
+                                       break;
+                               case HealthCheck:
+                                       appCStatus = healthCheckAction(msoRequestId, vnfId, vnfName, vnfHostIpAddress, controllerType);
+                                       break;
+                               case Snapshot:
+                                       String vmIds = JsonUtils.getJsonValue(vmIdList, "vmIds");
+                                       String vmId = "";
+                                       ObjectMapper mapper = new ObjectMapper();
+                                       List<String> vmIdJsonList = mapper.readValue(vmIds, new TypeReference<List<String>>(){});
+                                       int i = 0;
+                                       while(i < vmIdJsonList.size()){
+                                               vmId = vmIdJsonList.get(i);
+                                               appCStatus = snapshotAction(msoRequestId, vnfId, vmId, identityUrl, controllerType);
+                                               i++;
+                                       }
+                                       break;
+                               case ConfigModify:
+                               case ConfigScaleOut:
+                                       appCStatus = payloadAction(action, msoRequestId, vnfId, payload, controllerType);
+                                       break;
+                               case UpgradePreCheck:
+                               case UpgradePostCheck:
+                               case UpgradeSoftware:
+                               case UpgradeBackup:
+                                       appCStatus = upgradeAction(action,msoRequestId, vnfId, payload, vnfName, controllerType);
+                                       break;
+                               default:
+                                       errorMessage = "Unable to idenify Action request for AppCClient";
+                                       break;
+                       }
+                       if(appCStatus != null){
+                               errorCode = Integer.toString(appCStatus.getCode());
+                               errorMessage = appCStatus.getMessage();
+                       }
+                       if(ApplicationControllerSupport.getCategoryOf(appCStatus).equals(StatusCategory.NORMAL)){
+                               errorCode = "0";
+                       }
+               }
+               catch(JsonProcessingException e){
+                       auditLogger.log(Level.ERROR, "Incorrect Payload format for action request" + action.toString(),e, e.getMessage());
+                       errorMessage = e.getMessage();
+               }
+               catch(ApplicationControllerOrchestratorException e){
+                       auditLogger.log(Level.ERROR, "Error building Appc request: ", e, e.getMessage());
+                       errorCode = "1002";
+                       errorMessage = e.getMessage();
+               }
+               catch (NoSuchMethodError e) {
+                       auditLogger.log(Level.ERROR, "Error building Appc request: ", e, e.getMessage());
+                       errorMessage = e.getMessage();
+               } 
+               catch(Exception e){
+                       auditLogger.log(Level.ERROR, "Error building Appc request: ", e, e.getMessage());
+                       errorMessage = e.getMessage();
+               }
+       }
+       
+       private Status payloadAction(Action action, String msoRequestId, String vnfId, Optional<String> payload, String controllerType) throws JsonProcessingException, IllegalArgumentException,ApplicationControllerOrchestratorException{
+               if(!(payload.isPresent())){
+                       throw new IllegalArgumentException("Payload is not present for " + action.toString());
+               }
+               return client.vnfCommand(action, msoRequestId, vnfId, payload, controllerType);
+       }
+       
+       private Status quiesceTrafficAction(String msoRequestId, String vnfId, Optional<String> payload, String vnfName, String controllerType) throws JsonProcessingException, IllegalArgumentException,ApplicationControllerOrchestratorException{
+               if(!(payload.isPresent())){
+                       throw new IllegalArgumentException("Payload is not present for " + Action.QuiesceTraffic.toString());
+               }
+               payload = PayloadClient.quiesceTrafficFormat(payload, vnfName);
+               return client.vnfCommand(Action.QuiesceTraffic, msoRequestId, vnfId, payload, controllerType);
+       }
+       
+       private Status upgradeAction(Action action, String msoRequestId, String vnfId, Optional<String> payload, String vnfName, String controllerType) throws JsonProcessingException, IllegalArgumentException,ApplicationControllerOrchestratorException{
+               if(!(payload.isPresent())){
+                       throw new IllegalArgumentException("Payload is not present for " + action.toString());
+               }
+               payload = PayloadClient.upgradeFormat(payload, vnfName);
+               return client.vnfCommand(action, msoRequestId, vnfId, payload, controllerType);
+       }
+       
+       private Status resumeTrafficAction(String msoRequestId, String vnfId, String vnfName, String controllerType)throws JsonProcessingException, ApplicationControllerOrchestratorException{
+               Optional<String> payload = PayloadClient.resumeTrafficFormat(vnfName);
+               return client.vnfCommand(Action.ResumeTraffic, msoRequestId, vnfId, payload, controllerType);
+       }
+       
+       private Status startStopAction(Action action, String msoRequestId, String vnfId, String aicIdentity, String controllerType)throws JsonProcessingException, ApplicationControllerOrchestratorException{
+               Optional<String> payload = PayloadClient.startStopFormat(aicIdentity);
+               return client.vnfCommand(action, msoRequestId, vnfId, payload, controllerType);
+       }
+       
+       private Status healthCheckAction(String msoRequestId, String vnfId, String vnfName, String vnfHostIpAddress, String controllerType)throws JsonProcessingException, ApplicationControllerOrchestratorException{
+               Optional<String> payload = PayloadClient.healthCheckFormat(vnfName, vnfHostIpAddress);
+               return client.vnfCommand(Action.HealthCheck, msoRequestId, vnfId, payload, controllerType);
+       }
+       
+       private Status snapshotAction(String msoRequestId, String vnfId, String vmId, String identityUrl, String controllerType) throws JsonProcessingException, ApplicationControllerOrchestratorException{
+               Optional<String> payload = PayloadClient.snapshotFormat(vmId, identityUrl);
+               return client.vnfCommand(Action.Snapshot, msoRequestId, vnfId, payload, controllerType);
+       }
+       
+       public String getErrorMessage(){
+               return errorMessage;
+       }
+       
+       public String getErrorCode(){
+               return errorCode;
+       }
+}