SPV is failing if Admin state
[oam/tr069-adapter.git] / mapper / src / main / java / org / commscope / tr069adapter / mapper / netconf / impl / NetConfRequestHandlerImpl.java
index 4c06bf2..5d6f183 100644 (file)
@@ -21,14 +21,16 @@ package org.commscope.tr069adapter.mapper.netconf.impl;
 import java.util.ArrayList;\r
 import java.util.List;\r
 import java.util.Map;\r
-\r
 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;\r
 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;\r
 import org.commscope.tr069adapter.acs.common.OperationOptions;\r
+import org.commscope.tr069adapter.acs.common.OperationResponse;\r
 import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
+import org.commscope.tr069adapter.acs.common.dto.CustomOperationCode;\r
 import org.commscope.tr069adapter.acs.common.dto.TR069DeviceDetails;\r
 import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;\r
 import org.commscope.tr069adapter.acs.common.dto.TR069OperationDetails;\r
+import org.commscope.tr069adapter.acs.common.response.SetParameterValueResponse;\r
 import org.commscope.tr069adapter.mapper.MOMetaData;\r
 import org.commscope.tr069adapter.mapper.dao.DeviceOperationsDAO;\r
 import org.commscope.tr069adapter.mapper.entity.DeviceOperationDetails;\r
@@ -71,7 +73,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
   MOMetaDataUtil metaDataUtil;\r
 \r
   @Autowired\r
-  private ErrorCodeUtil errorCodeUtil;\r
+  ErrorCodeUtil errorCodeUtil;\r
 \r
   @Autowired\r
   VESNotificationSender vesnotiSender;\r
@@ -145,7 +147,18 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     DeviceRPCResponse deviceRPCResponseDevice = null;\r
     if (null != allParamList && !allParamList.isEmpty()) {\r
       deviceRPCRequest.getOpDetails().setParmeters(allParamList);\r
-      deviceRPCResponseDevice = syncHandler.performDeviceOperation(deviceRPCRequest);\r
+      if (isAdminStateOverriden(allParamList)) {\r
+        deviceRPCRequest.getOpDetails().setOpCode(CustomOperationCode.CONFIGURE_MULTIPLE_OBJECTS);\r
+        TR069OperationDetails tr069OperationDetails =\r
+            (TR069OperationDetails) deviceRPCRequest.getOpDetails();\r
+        tr069OperationDetails.setModifyParamList(allParamList);\r
+        tr069OperationDetails.setSetParamList(null);\r
+\r
+        deviceRPCResponseDevice = syncHandler.performDeviceOperation(deviceRPCRequest);\r
+        convertResposeToSPVResponse(deviceRPCResponseDevice);\r
+      } else {\r
+        deviceRPCResponseDevice = syncHandler.performDeviceOperation(deviceRPCRequest);\r
+      }\r
 \r
       if (null == deviceRPCResponseDevice) {\r
         return getTimeOutResponse();\r
@@ -417,7 +430,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return response;\r
   }\r
 \r
-  private DeviceRPCResponse mergeGetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,\r
+  protected DeviceRPCResponse mergeGetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,\r
       DeviceRPCResponse opResultDevice) {\r
     if (null == opResultVes) {\r
       return opResultDevice;\r
@@ -440,7 +453,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return opResultDevice;\r
   }\r
 \r
-  private DeviceRPCResponse mergeSetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,\r
+  protected DeviceRPCResponse mergeSetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,\r
       DeviceRPCResponse opResultDevice) {\r
     if (null == opResultVes) {\r
       return opResultDevice;\r
@@ -453,7 +466,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return opResultDevice;\r
   }\r
 \r
-  private boolean isVesNotificationRequest(ParameterDTO param) {\r
+  protected boolean isVesNotificationRequest(ParameterDTO param) {\r
     if (null == param.getParamName() || param.getParamName().isEmpty()) {\r
       return false;\r
     }\r
@@ -468,7 +481,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return false;\r
   }\r
 \r
-  private void handleBooleanParameters(List<ParameterDTO> parameterDTOs) {\r
+  protected void handleBooleanParameters(List<ParameterDTO> parameterDTOs) {\r
 \r
     for (ParameterDTO param : parameterDTOs) {\r
       MOMetaData metaData = metaDataUtil.getMetaDataByTR69Name(param.getParamName());\r
@@ -482,7 +495,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     }\r
   }\r
 \r
-  private void handleBooleanParametersReverse(List<ParameterDTO> parameterDTOs) {\r
+  protected void handleBooleanParametersReverse(List<ParameterDTO> parameterDTOs) {\r
 \r
     for (ParameterDTO param : parameterDTOs) {\r
       MOMetaData metaData = metaDataUtil.getMetaDataByTR69Name(param.getParamName());\r
@@ -496,7 +509,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     }\r
   }\r
 \r
-  private NetConfResponse getEmptyResponse() {\r
+  protected NetConfResponse getEmptyResponse() {\r
     NetConfResponse response = new NetConfResponse();\r
     ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("0");\r
     ErrorCodeDetails errorCode = new ErrorCodeDetails();\r
@@ -509,7 +522,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return response;\r
   }\r
 \r
-  private NetConfResponse getTimeOutResponse() {\r
+  protected NetConfResponse getTimeOutResponse() {\r
     // prepare timeout error response\r
     NetConfResponse timeOutErrorResponse = new NetConfResponse();\r
     ErrorCodeDetails errorCode = new ErrorCodeDetails();\r
@@ -525,7 +538,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return timeOutErrorResponse;\r
   }\r
 \r
-  private NetConfResponse getErrorResponse(String errCode, String errorMsg) {\r
+  protected NetConfResponse getErrorResponse(String errCode, String errorMsg) {\r
     NetConfResponse errorResponse = new NetConfResponse();\r
     ErrorCodeDetails errorCode = new ErrorCodeDetails();\r
     ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");\r
@@ -541,12 +554,12 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return errorResponse;\r
   }\r
 \r
-  private NetConfResponse getOperationAbortedResponse(String errorMessage) {\r
+  protected NetConfResponse getOperationAbortedResponse(String errorMessage) {\r
     // prepare timeout error response\r
     NetConfResponse timeOutErrorResponse = new NetConfResponse();\r
     ErrorCodeDetails errorCode = new ErrorCodeDetails();\r
     ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");\r
-    if (errorCode != null) {\r
+    if (errorCodeMetaData != null) {\r
       errorCode.setFaultCode("8002");\r
       errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());\r
       errorCode.setErrorType(errorCodeMetaData.getErrorType());\r
@@ -573,7 +586,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return result;\r
   }\r
 \r
-  private List<ParameterDTO> filteredGetParameters(List<ParameterDTO> parameters) {\r
+  protected List<ParameterDTO> filteredGetParameters(List<ParameterDTO> parameters) {\r
 \r
     return metaDataUtil.getSupportedChildParameters(parameters);\r
   }\r
@@ -592,7 +605,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return result;\r
   }\r
 \r
-  private static String getDownloadFileURI(String filepath) {\r
+  protected static String getDownloadFileURI(String filepath) {\r
 \r
     if (filepath.contains("@") && filepath.contains("//")) {\r
       String[] str = filepath.split("@");\r
@@ -605,7 +618,7 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     return null;\r
   }\r
 \r
-  private static String getDownloadUserName(String filepath) {\r
+  protected static String getDownloadUserName(String filepath) {\r
 \r
     if (filepath.contains("@") && filepath.contains("//")) {\r
       String[] str = filepath.split("@");\r
@@ -615,4 +628,31 @@ public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
     }\r
     return null;\r
   }\r
+\r
+  protected boolean isAdminStateOverriden(List<ParameterDTO> paramList) {\r
+    for (ParameterDTO paramDTO : paramList) {\r
+      if (paramDTO.getParamName().contains(MapperConstants.ADMIN_STATE)\r
+          || paramDTO.getParamName().contains(MapperConstants.ADMIN_STATUS)) {\r
+        return true;\r
+      }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  protected void convertResposeToSPVResponse(DeviceRPCResponse deviceRPCResponse) {\r
+    if (null == deviceRPCResponse) {\r
+      return;\r
+    }\r
+\r
+    OperationResponse operationResponse = new SetParameterValueResponse();\r
+    operationResponse.setParameterDTOs(new ArrayList<ParameterDTO>());\r
+\r
+    if (null == deviceRPCResponse.getFaultKey()) {\r
+      operationResponse.setStatus(MapperConstants.RPC_SUCCESS_CODE);\r
+    } else {\r
+      operationResponse.setStatus(MapperConstants.RPC_FAILED_CODE);\r
+    }\r
+\r
+    deviceRPCResponse.setOperationResponse(operationResponse);\r
+  }\r
 }\r