2 * ============LICENSE_START========================================================================
\r
3 * ONAP : tr-069-adapter
\r
4 * =================================================================================================
\r
5 * Copyright (C) 2020 CommScope Inc Intellectual Property.
\r
6 * =================================================================================================
\r
7 * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,
\r
8 * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You
\r
9 * may obtain a copy of the License at
\r
11 * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
\r
14 * either express or implied. See the License for the specific language governing permissions and
\r
15 * limitations under the License.
\r
16 * ===============LICENSE_END=======================================================================
\r
19 package org.commscope.tr069adapter.acs.requestprocessor.helper;
\r
21 import static org.commscope.tr069adapter.acs.common.utils.AcsConstants.OPERATION_EXPIRATION_TIMEOUT;
\r
23 import java.util.ArrayList;
\r
25 import org.commscope.tr069adapter.acs.common.DeviceDetails;
\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.OperationResponse;
\r
29 import org.commscope.tr069adapter.acs.common.ParameterDTO;
\r
30 import org.commscope.tr069adapter.acs.common.dto.CustomOperationCode;
\r
31 import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;
\r
32 import org.commscope.tr069adapter.acs.common.faults.AcsFaultCode;
\r
33 import org.commscope.tr069adapter.acs.common.response.AddObjectResponse;
\r
34 import org.commscope.tr069adapter.acs.common.response.DeleteObjectResponse;
\r
35 import org.commscope.tr069adapter.acs.common.response.DownloadResponse;
\r
36 import org.commscope.tr069adapter.acs.common.response.FactoryResetResponse;
\r
37 import org.commscope.tr069adapter.acs.common.response.GetParameterAttributeResponse;
\r
38 import org.commscope.tr069adapter.acs.common.response.GetParameterValueResponse;
\r
39 import org.commscope.tr069adapter.acs.common.response.RebootResponse;
\r
40 import org.commscope.tr069adapter.acs.common.response.SetParameterAttributeResponse;
\r
41 import org.commscope.tr069adapter.acs.common.response.SetParameterValueResponse;
\r
42 import org.slf4j.Logger;
\r
43 import org.slf4j.LoggerFactory;
\r
44 import org.springframework.stereotype.Component;
\r
47 public class TR069RequestProcessEngineUtility {
\r
49 private static final Logger logger =
\r
50 LoggerFactory.getLogger(TR069RequestProcessEngineUtility.class);
\r
53 * Builds a operation aborted operation request
\r
55 * @param deviceDetails
\r
56 * @param nbiDeviceOperationrequest
\r
57 * @param acsFaultCode
\r
60 public DeviceRPCResponse buildAbortedOperationresult(DeviceDetails deviceDetails,
\r
61 DeviceRPCRequest nbiDeviceOperationrequest, AcsFaultCode acsFaultCode) {
\r
62 Long operationId = nbiDeviceOperationrequest.getOperationId();
\r
64 TR069OperationCode operationCode = null;
\r
65 if (nbiDeviceOperationrequest.getOpDetails().getOpCode() instanceof CustomOperationCode) {
\r
66 operationCode = TR069OperationCode.GET_PARAMETER_VALUES;
\r
68 operationCode = (TR069OperationCode) nbiDeviceOperationrequest.getOpDetails().getOpCode();
\r
71 return buildOperationresult(deviceDetails, operationId, operationCode, acsFaultCode);
\r
76 * @param deviceDetails
\r
77 * @param operationId
\r
78 * @param operationCode
\r
81 public DeviceRPCResponse buildTimedOutOperationResult(DeviceDetails deviceDetails,
\r
82 DeviceRPCRequest deviceRPCRequest) {
\r
83 Long operationId = deviceRPCRequest.getOperationId();
\r
85 TR069OperationCode operationCode = null;
\r
86 if (deviceRPCRequest.getOpDetails().getOpCode() instanceof CustomOperationCode) {
\r
87 CustomOperationCode customOperationCode =
\r
88 (CustomOperationCode) deviceRPCRequest.getOpDetails().getOpCode();
\r
89 if (CustomOperationCode.CONFIGURE_MULTIPLE_OBJECTS.equals(customOperationCode)) {
\r
90 operationCode = TR069OperationCode.GET_PARAMETER_VALUES;
\r
91 } else if (CustomOperationCode.CONNECT.equals(customOperationCode)) {
\r
92 operationCode = TR069OperationCode.INITIATE_CR;
\r
95 operationCode = (TR069OperationCode) deviceRPCRequest.getOpDetails().getOpCode();
\r
97 DeviceRPCResponse deviceRPCResponse = buildOperationresult(deviceDetails, operationId,
\r
98 operationCode, AcsFaultCode.FAULT_CODE_8003);
\r
99 OperationResponse operationResponse = deviceRPCResponse.getOperationResponse();
\r
100 operationResponse.setStatus(OPERATION_EXPIRATION_TIMEOUT);
\r
101 return deviceRPCResponse;
\r
105 * Builds a operation aborted operation request
\r
107 * @param deviceDetails
\r
108 * @param nbiDeviceOperationrequest
\r
109 * @param acsFaultCode
\r
112 private DeviceRPCResponse buildOperationresult(DeviceDetails deviceDetails, Long operationId,
\r
113 TR069OperationCode operationCode, AcsFaultCode acsFaultCode) {
\r
114 DeviceRPCResponse deviceRPCResponse = new DeviceRPCResponse();
\r
115 deviceRPCResponse.setDeviceDetails(deviceDetails);
\r
116 deviceRPCResponse.setOperationId(operationId);
\r
118 deviceRPCResponse.setFaultKey(acsFaultCode.getFaultKey());
\r
119 deviceRPCResponse.setFaultString(acsFaultCode.getFaultString());
\r
121 OperationResponse opResponse = null;
\r
122 switch (operationCode) {
\r
123 case GET_RPC_METHODS:
\r
124 case GET_PARAMETER_NAMES:
\r
126 case SET_PARAMETER_VALUES:
\r
127 opResponse = new SetParameterValueResponse();
\r
128 opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());
\r
130 case GET_PARAMETER_VALUES:
\r
132 opResponse = new GetParameterValueResponse();
\r
133 opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());
\r
135 case SET_PARAMETER_ATTRIBUTES:
\r
136 opResponse = new SetParameterAttributeResponse();
\r
137 opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());
\r
139 case GET_PARAMETER_ATTRIBUTES:
\r
140 opResponse = new GetParameterAttributeResponse();
\r
141 opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());
\r
144 opResponse = new AddObjectResponse();
\r
145 opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());
\r
147 case DELETE_OBJECT:
\r
148 opResponse = new DeleteObjectResponse();
\r
149 opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());
\r
152 opResponse = new RebootResponse();
\r
155 opResponse = new DownloadResponse();
\r
157 case SCHEDULE_DOWNLOAD:
\r
159 case FACTORY_RESET:
\r
160 opResponse = new FactoryResetResponse();
\r
163 String operationCodeName = operationCode.name();
\r
164 logger.debug("An unsupported operation: {}, hence returning without response object",
\r
165 operationCodeName);
\r
168 deviceRPCResponse.setOperationResponse(opResponse);
\r
170 return deviceRPCResponse;
\r