SPV is failing if Admin state
[oam/tr069-adapter.git] / ves-agent / src / main / java / org / commscope / tr069adapter / vesagent / util / VesAgentUtils.java
index 4fb8482..ae43e1f 100644 (file)
  * ===============LICENSE_END=======================================================================
  */
 
-package org.commscope.tr069adapter.vesagent.util;\r
-\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;\r
-import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;\r
-import org.commscope.tr069adapter.acs.common.OperationCode;\r
-import org.commscope.tr069adapter.acs.common.OperationResponse;\r
-import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
-import org.commscope.tr069adapter.mapper.model.VESNotification;\r
-import org.commscope.tr069adapter.vesagent.exception.VesAgentException;\r
-\r
-\r
-public class VesAgentUtils {\r
-  private static final Log logger = LogFactory.getLog(VesAgentUtils.class);\r
-\r
-  private static String errorMsg = null;\r
-\r
-  public static boolean isNullOrEmpty(String object) {\r
-    return (null == object || object.isEmpty());\r
-  }\r
-\r
-  public static Boolean isNullOrEmpty(List list) {\r
-    return (null == list || list.isEmpty());\r
-  }\r
-\r
-  public static Boolean isNullOrEmpty(Map map) {\r
-    return (null == map || map.isEmpty());\r
-  }\r
-\r
-  public static void validateDeviceId(String deviceId) throws VesAgentException {\r
-    if (null == deviceId || deviceId.isEmpty()) {\r
-      errorMsg = "Error: deviceId in request is null or empty";\r
-      logger.error(errorMsg);\r
-      throw new VesAgentException(errorMsg);\r
-    }\r
-  }\r
-\r
-  public static void validateHeartBeatPeriod(Integer heartBeatPeriod) throws VesAgentException {\r
-    if (null == heartBeatPeriod) {\r
-      errorMsg = "Error: heartBeatPeriod in request is null or empty";\r
-      logger.error(errorMsg);\r
-      throw new VesAgentException(errorMsg);\r
-    }\r
-  }\r
-\r
-\r
-  public static void validateCountDownTimer(Integer countDownTimer) throws VesAgentException {\r
-    if (null == countDownTimer) {\r
-      errorMsg = "Error: countDownTimer in request is null or empty";\r
-      logger.error(errorMsg);\r
-      throw new VesAgentException(errorMsg);\r
-    }\r
-  }\r
-\r
-  public static void validateDeviceRPCRequest(DeviceRPCRequest deviceRPCRequest)\r
-      throws VesAgentException {\r
-    if (null == deviceRPCRequest || null == deviceRPCRequest.getOpDetails()\r
-        || null == deviceRPCRequest.getOpDetails().getParmeters()\r
-        || deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {\r
-      errorMsg = "Error: Input parameter list is null or empty";\r
-      logger.error(errorMsg);\r
-      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
-    }\r
-\r
-    if (null == deviceRPCRequest.getDeviceDetails()\r
-        || null == deviceRPCRequest.getDeviceDetails().getDeviceId()\r
-        || deviceRPCRequest.getDeviceDetails().getDeviceId().isEmpty()) {\r
-      errorMsg = "Error: Input deviceId is null or empty";\r
-      logger.error(errorMsg);\r
-      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
-    }\r
-  }\r
-\r
-  public static void validateVESNotification(VESNotification notification)\r
-      throws VesAgentException {\r
-    if (null == notification || null == notification.getDevnotification()\r
-        || null == notification.getDevnotification().getDeviceDetails()\r
-        || null == notification.getDevnotification().getDeviceDetails().getDeviceId()\r
-        || notification.getDevnotification().getDeviceDetails().getDeviceId().isEmpty()) {\r
-\r
-      errorMsg = "Error: Input device details is null or empty";\r
-      logger.error(errorMsg);\r
-      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
-    }\r
-  }\r
-\r
-  public static void validateDelVESNotification(VESNotification notification)\r
-      throws VesAgentException {\r
-    if (null == notification || null == notification.getOperationDetails()\r
-        || null == notification.getOperationDetails().getParmeters()\r
-        || notification.getOperationDetails().getParmeters().isEmpty()) {\r
-      errorMsg = "Error: Input parameter list is null or empty";\r
-      logger.error(errorMsg);\r
-      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
-    }\r
-\r
-    if (null == notification.geteNodeBName() || notification.geteNodeBName().isEmpty()) {\r
-      errorMsg = "Error: Input deviceId/enodeBName is null or empty";\r
-      logger.error(errorMsg);\r
-      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);\r
-    }\r
-  }\r
-\r
-\r
-  public static DeviceRPCResponse getErrorResponse(DeviceRPCRequest deviceRPCRequest,\r
-      String faultCode, String faultMessage) {\r
-    DeviceRPCResponse errorResponse = new DeviceRPCResponse();\r
-\r
-    errorResponse.setDeviceDetails(deviceRPCRequest.getDeviceDetails());\r
-\r
-    OperationResponse operationResponse = new OperationResponse();\r
-    operationResponse.setStatus(VesAgentConstants.RPC_FAILED);// device reachable...change value 1\r
-                                                              // to some constant or enum\r
-    operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());\r
-\r
-    errorResponse.setOperationResponse(operationResponse);\r
-    errorResponse.setFaultKey(faultCode);\r
-    errorResponse.setFaultString(faultMessage);\r
-\r
-    return errorResponse;\r
-  }\r
-\r
-  public static DeviceRPCResponse getSuccessResponse(DeviceRPCRequest deviceRPCRequest) {\r
-    DeviceRPCResponse response = new DeviceRPCResponse();\r
-\r
-    response.setDeviceDetails(deviceRPCRequest.getDeviceDetails());\r
-\r
-    OperationResponse operationResponse = new OperationResponse();\r
-    operationResponse.setStatus(VesAgentConstants.RPC_SUCCESS);\r
-    operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());\r
-    operationResponse.setParameterDTOs(deviceRPCRequest.getOpDetails().getParmeters());\r
-\r
-    response.setOperationResponse(operationResponse);\r
-    return response;\r
-  }\r
-\r
-  public static boolean isDeviceReachable(DeviceRPCResponse deviceRPCResponse) {\r
-    if (null == deviceRPCResponse || null == deviceRPCResponse.getOperationResponse()) {\r
-      return false;\r
-    }\r
-\r
-    if (deviceRPCResponse.getOperationResponse()\r
-        .getStatus() == VesAgentConstants.DEVICE_IS_REACHABLE) {\r
-      return true;\r
-    }\r
-\r
-    return (null != deviceRPCResponse.getFaultKey() && deviceRPCResponse.getFaultKey()\r
-        .equalsIgnoreCase(VesAgentConstants.ABORTED_BY_BOOT_BOOTSTRAP));\r
-  }\r
-\r
-  public static Boolean isVesNotificationRequest(ParameterDTO param) {\r
-    if (null == param.getParamName() || param.getParamName().isEmpty()) {\r
-      return false;\r
-    }\r
-\r
-    return param.getParamName().toLowerCase().contains(VesAgentConstants.HEART_BEAT.toLowerCase());\r
-  }\r
-\r
-\r
-  public static String getDeviceOperationKey(String deviceId, OperationCode opCode) {\r
-    return deviceId + "-" + opCode;\r
-  }\r
-\r
-}\r
+package org.commscope.tr069adapter.vesagent.util;
+
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;
+import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
+import org.commscope.tr069adapter.acs.common.OperationCode;
+import org.commscope.tr069adapter.acs.common.OperationResponse;
+import org.commscope.tr069adapter.acs.common.ParameterDTO;
+import org.commscope.tr069adapter.mapper.model.VESNotification;
+import org.commscope.tr069adapter.vesagent.exception.VesAgentException;
+
+
+public class VesAgentUtils {
+  private static final Log logger = LogFactory.getLog(VesAgentUtils.class);
+
+  private static String errorMsg = null;
+
+  public static boolean isNullOrEmpty(String object) {
+    return (null == object || object.isEmpty());
+  }
+
+  public static Boolean isNullOrEmpty(List list) {
+    return (null == list || list.isEmpty());
+  }
+
+  public static Boolean isNullOrEmpty(Map map) {
+    return (null == map || map.isEmpty());
+  }
+
+  public static void validateDeviceId(String deviceId) throws VesAgentException {
+    if (null == deviceId || deviceId.isEmpty()) {
+      errorMsg = "Error: deviceId in request is null or empty";
+      logger.error(errorMsg);
+      throw new VesAgentException(errorMsg);
+    }
+  }
+
+  public static void validateHeartBeatPeriod(Integer heartBeatPeriod) throws VesAgentException {
+    if (null == heartBeatPeriod) {
+      errorMsg = "Error: heartBeatPeriod in request is null or empty";
+      logger.error(errorMsg);
+      throw new VesAgentException(errorMsg);
+    }
+  }
+
+
+  public static void validateCountDownTimer(Integer countDownTimer) throws VesAgentException {
+    if (null == countDownTimer) {
+      errorMsg = "Error: countDownTimer in request is null or empty";
+      logger.error(errorMsg);
+      throw new VesAgentException(errorMsg);
+    }
+  }
+
+  public static void validateDeviceRPCRequest(DeviceRPCRequest deviceRPCRequest)
+      throws VesAgentException {
+    if (null == deviceRPCRequest || null == deviceRPCRequest.getOpDetails()
+        || null == deviceRPCRequest.getOpDetails().getParmeters()
+        || deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {
+      errorMsg = "Error: Input parameter list is null or empty";
+      logger.error(errorMsg);
+      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
+    }
+
+    if (null == deviceRPCRequest.getDeviceDetails()
+        || null == deviceRPCRequest.getDeviceDetails().getDeviceId()
+        || deviceRPCRequest.getDeviceDetails().getDeviceId().isEmpty()) {
+      errorMsg = "Error: Input deviceId is null or empty";
+      logger.error(errorMsg);
+      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
+    }
+  }
+
+  public static void validateVESNotification(VESNotification notification)
+      throws VesAgentException {
+    if (null == notification || null == notification.getDevnotification()
+        || null == notification.getDevnotification().getDeviceDetails()
+        || null == notification.getDevnotification().getDeviceDetails().getDeviceId()
+        || notification.getDevnotification().getDeviceDetails().getDeviceId().isEmpty()) {
+
+      errorMsg = "Error: Input device details is null or empty";
+      logger.error(errorMsg);
+      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
+    }
+  }
+
+  public static void validateDelVESNotification(VESNotification notification)
+      throws VesAgentException {
+    if (null == notification || null == notification.getOperationDetails()
+        || null == notification.getOperationDetails().getParmeters()
+        || notification.getOperationDetails().getParmeters().isEmpty()) {
+      errorMsg = "Error: Input parameter list is null or empty";
+      logger.error(errorMsg);
+      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
+    }
+
+    if (null == notification.geteNodeBName() || notification.geteNodeBName().isEmpty()) {
+      errorMsg = "Error: Input deviceId/enodeBName is null or empty";
+      logger.error(errorMsg);
+      throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
+    }
+  }
+
+
+  public static DeviceRPCResponse getErrorResponse(DeviceRPCRequest deviceRPCRequest,
+      String faultCode, String faultMessage) {
+    DeviceRPCResponse errorResponse = new DeviceRPCResponse();
+
+    errorResponse.setDeviceDetails(deviceRPCRequest.getDeviceDetails());
+
+    OperationResponse operationResponse = new OperationResponse();
+    operationResponse.setStatus(VesAgentConstants.RPC_FAILED);// device reachable...change value 1
+                                                              // to some constant or enum
+    operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());
+
+    errorResponse.setOperationResponse(operationResponse);
+    errorResponse.setFaultKey(faultCode);
+    errorResponse.setFaultString(faultMessage);
+
+    return errorResponse;
+  }
+
+  public static DeviceRPCResponse getSuccessResponse(DeviceRPCRequest deviceRPCRequest) {
+    DeviceRPCResponse response = new DeviceRPCResponse();
+
+    response.setDeviceDetails(deviceRPCRequest.getDeviceDetails());
+
+    OperationResponse operationResponse = new OperationResponse();
+    operationResponse.setStatus(VesAgentConstants.RPC_SUCCESS);
+    operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());
+    operationResponse.setParameterDTOs(deviceRPCRequest.getOpDetails().getParmeters());
+
+    response.setOperationResponse(operationResponse);
+    return response;
+  }
+
+  public static boolean isDeviceReachable(DeviceRPCResponse deviceRPCResponse) {
+    if (null == deviceRPCResponse || null == deviceRPCResponse.getOperationResponse()) {
+      return false;
+    }
+
+    if (deviceRPCResponse.getOperationResponse()
+        .getStatus() == VesAgentConstants.DEVICE_IS_REACHABLE) {
+      return true;
+    }
+
+    return (null != deviceRPCResponse.getFaultKey() && deviceRPCResponse.getFaultKey()
+        .equalsIgnoreCase(VesAgentConstants.ABORTED_BY_BOOT_BOOTSTRAP));
+  }
+
+  public static Boolean isVesNotificationRequest(ParameterDTO param) {
+    if (null == param.getParamName() || param.getParamName().isEmpty()) {
+      return false;
+    }
+
+    return param.getParamName().toLowerCase().contains(VesAgentConstants.HEART_BEAT.toLowerCase());
+  }
+
+
+  public static String getDeviceOperationKey(String deviceId, OperationCode opCode) {
+    return deviceId + "-" + opCode;
+  }
+
+  public static long getStartEpochTime() {
+    Calendar calendar = Calendar.getInstance();
+
+    long minuteEquivalentWithoutSec = calendar.getTimeInMillis();
+    minuteEquivalentWithoutSec = (minuteEquivalentWithoutSec / 60000);
+    minuteEquivalentWithoutSec = minuteEquivalentWithoutSec * 60 * 1000;
+
+    return minuteEquivalentWithoutSec;
+  }
+
+}