2 * ============LICENSE_START========================================================================
3 * ONAP : tr-069-adapter
4 * =================================================================================================
5 * Copyright (C) 2020 CommScope Inc Intellectual Property.
6 * =================================================================================================
7 * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,
8 * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You
9 * may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
14 * either express or implied. See the License for the specific language governing permissions and
15 * limitations under the License.
16 * ===============LICENSE_END=======================================================================
19 package org.commscope.tr069adapter.vesagent.util;
\r
21 import java.util.List;
\r
22 import java.util.Map;
\r
24 import org.apache.commons.logging.Log;
\r
25 import org.apache.commons.logging.LogFactory;
\r
26 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;
\r
27 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
\r
28 import org.commscope.tr069adapter.acs.common.OperationCode;
\r
29 import org.commscope.tr069adapter.acs.common.OperationResponse;
\r
30 import org.commscope.tr069adapter.acs.common.ParameterDTO;
\r
31 import org.commscope.tr069adapter.mapper.model.VESNotification;
\r
32 import org.commscope.tr069adapter.vesagent.exception.VesAgentException;
\r
35 public class VesAgentUtils {
\r
36 private static final Log logger = LogFactory.getLog(VesAgentUtils.class);
\r
38 private static String errorMsg = null;
\r
40 public static boolean isNullOrEmpty(String object) {
\r
41 return (null == object || object.isEmpty());
\r
44 public static Boolean isNullOrEmpty(List list) {
\r
45 return (null == list || list.isEmpty());
\r
48 public static Boolean isNullOrEmpty(Map map) {
\r
49 return (null == map || map.isEmpty());
\r
52 public static void validateDeviceId(String deviceId) throws VesAgentException {
\r
53 if (null == deviceId || deviceId.isEmpty()) {
\r
54 errorMsg = "Error: deviceId in request is null or empty";
\r
55 logger.error(errorMsg);
\r
56 throw new VesAgentException(errorMsg);
\r
60 public static void validateHeartBeatPeriod(Integer heartBeatPeriod) throws VesAgentException {
\r
61 if (null == heartBeatPeriod) {
\r
62 errorMsg = "Error: heartBeatPeriod in request is null or empty";
\r
63 logger.error(errorMsg);
\r
64 throw new VesAgentException(errorMsg);
\r
69 public static void validateCountDownTimer(Integer countDownTimer) throws VesAgentException {
\r
70 if (null == countDownTimer) {
\r
71 errorMsg = "Error: countDownTimer in request is null or empty";
\r
72 logger.error(errorMsg);
\r
73 throw new VesAgentException(errorMsg);
\r
77 public static void validateDeviceRPCRequest(DeviceRPCRequest deviceRPCRequest)
\r
78 throws VesAgentException {
\r
79 if (null == deviceRPCRequest || null == deviceRPCRequest.getOpDetails()
\r
80 || null == deviceRPCRequest.getOpDetails().getParmeters()
\r
81 || deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {
\r
82 errorMsg = "Error: Input parameter list is null or empty";
\r
83 logger.error(errorMsg);
\r
84 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
87 if (null == deviceRPCRequest.getDeviceDetails()
\r
88 || null == deviceRPCRequest.getDeviceDetails().getDeviceId()
\r
89 || deviceRPCRequest.getDeviceDetails().getDeviceId().isEmpty()) {
\r
90 errorMsg = "Error: Input deviceId is null or empty";
\r
91 logger.error(errorMsg);
\r
92 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
96 public static void validateVESNotification(VESNotification notification)
\r
97 throws VesAgentException {
\r
98 if (null == notification || null == notification.getDevnotification()
\r
99 || null == notification.getDevnotification().getDeviceDetails()
\r
100 || null == notification.getDevnotification().getDeviceDetails().getDeviceId()
\r
101 || notification.getDevnotification().getDeviceDetails().getDeviceId().isEmpty()) {
\r
103 errorMsg = "Error: Input device details is null or empty";
\r
104 logger.error(errorMsg);
\r
105 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
109 public static void validateDelVESNotification(VESNotification notification)
\r
110 throws VesAgentException {
\r
111 if (null == notification || null == notification.getOperationDetails()
\r
112 || null == notification.getOperationDetails().getParmeters()
\r
113 || notification.getOperationDetails().getParmeters().isEmpty()) {
\r
114 errorMsg = "Error: Input parameter list is null or empty";
\r
115 logger.error(errorMsg);
\r
116 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
119 if (null == notification.geteNodeBName() || notification.geteNodeBName().isEmpty()) {
\r
120 errorMsg = "Error: Input deviceId/enodeBName is null or empty";
\r
121 logger.error(errorMsg);
\r
122 throw new VesAgentException(VesAgentConstants.INVALID_ARGUMENTS, errorMsg);
\r
127 public static DeviceRPCResponse getErrorResponse(DeviceRPCRequest deviceRPCRequest,
\r
128 String faultCode, String faultMessage) {
\r
129 DeviceRPCResponse errorResponse = new DeviceRPCResponse();
\r
131 errorResponse.setDeviceDetails(deviceRPCRequest.getDeviceDetails());
\r
133 OperationResponse operationResponse = new OperationResponse();
\r
134 operationResponse.setStatus(VesAgentConstants.RPC_FAILED);// device reachable...change value 1
\r
135 // to some constant or enum
\r
136 operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());
\r
138 errorResponse.setOperationResponse(operationResponse);
\r
139 errorResponse.setFaultKey(faultCode);
\r
140 errorResponse.setFaultString(faultMessage);
\r
142 return errorResponse;
\r
145 public static DeviceRPCResponse getSuccessResponse(DeviceRPCRequest deviceRPCRequest) {
\r
146 DeviceRPCResponse response = new DeviceRPCResponse();
\r
148 response.setDeviceDetails(deviceRPCRequest.getDeviceDetails());
\r
150 OperationResponse operationResponse = new OperationResponse();
\r
151 operationResponse.setStatus(VesAgentConstants.RPC_SUCCESS);
\r
152 operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());
\r
153 operationResponse.setParameterDTOs(deviceRPCRequest.getOpDetails().getParmeters());
\r
155 response.setOperationResponse(operationResponse);
\r
159 public static boolean isDeviceReachable(DeviceRPCResponse deviceRPCResponse) {
\r
160 if (null == deviceRPCResponse || null == deviceRPCResponse.getOperationResponse()) {
\r
164 if (deviceRPCResponse.getOperationResponse()
\r
165 .getStatus() == VesAgentConstants.DEVICE_IS_REACHABLE) {
\r
169 return (null != deviceRPCResponse.getFaultKey() && deviceRPCResponse.getFaultKey()
\r
170 .equalsIgnoreCase(VesAgentConstants.ABORTED_BY_BOOT_BOOTSTRAP));
\r
173 public static Boolean isVesNotificationRequest(ParameterDTO param) {
\r
174 if (null == param.getParamName() || param.getParamName().isEmpty()) {
\r
178 return param.getParamName().toLowerCase().contains(VesAgentConstants.HEART_BEAT.toLowerCase());
\r
182 public static String getDeviceOperationKey(String deviceId, OperationCode opCode) {
\r
183 return deviceId + "-" + opCode;
\r