X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=ves-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Fcommscope%2Ftr069adapter%2Fvesagent%2Futil%2FVesAgentUtils.java;fp=ves-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Fcommscope%2Ftr069adapter%2Fvesagent%2Futil%2FVesAgentUtils.java;h=fc1128d9207c986c158bd23f5897b95c710ca310;hb=641a6c47b4ee74412e9386b3c95693adda3cafc9;hp=0000000000000000000000000000000000000000;hpb=8c7432b8380a355e89df05f070e7d88e599912fd;p=oam%2Ftr069-adapter.git diff --git a/ves-agent/src/main/java/org/commscope/tr069adapter/vesagent/util/VesAgentUtils.java b/ves-agent/src/main/java/org/commscope/tr069adapter/vesagent/util/VesAgentUtils.java new file mode 100644 index 0000000..fc1128d --- /dev/null +++ b/ves-agent/src/main/java/org/commscope/tr069adapter/vesagent/util/VesAgentUtils.java @@ -0,0 +1,168 @@ +package org.commscope.tr069adapter.vesagent.util; + +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; + } + +}