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.acs.requestprocessor.helper;
21 import static org.commscope.tr069adapter.acs.common.utils.AcsConstants.OPERATION_EXPIRATION_TIMEOUT;
23 import java.util.ArrayList;
25 import org.commscope.tr069adapter.acs.common.DeviceDetails;
26 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;
27 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
28 import org.commscope.tr069adapter.acs.common.OperationResponse;
29 import org.commscope.tr069adapter.acs.common.dto.CustomOperationCode;
30 import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;
31 import org.commscope.tr069adapter.acs.common.faults.AcsFaultCode;
32 import org.commscope.tr069adapter.acs.common.response.AddObjectResponse;
33 import org.commscope.tr069adapter.acs.common.response.DeleteObjectResponse;
34 import org.commscope.tr069adapter.acs.common.response.DownloadResponse;
35 import org.commscope.tr069adapter.acs.common.response.FactoryResetResponse;
36 import org.commscope.tr069adapter.acs.common.response.GetParameterAttributeResponse;
37 import org.commscope.tr069adapter.acs.common.response.GetParameterValueResponse;
38 import org.commscope.tr069adapter.acs.common.response.RebootResponse;
39 import org.commscope.tr069adapter.acs.common.response.SetParameterAttributeResponse;
40 import org.commscope.tr069adapter.acs.common.response.SetParameterValueResponse;
41 import org.slf4j.Logger;
42 import org.slf4j.LoggerFactory;
43 import org.springframework.stereotype.Component;
46 public class TR069RequestProcessEngineUtility {
48 private static final Logger logger =
49 LoggerFactory.getLogger(TR069RequestProcessEngineUtility.class);
52 * Builds a operation aborted operation request
54 * @param deviceDetails
55 * @param nbiDeviceOperationrequest
59 public DeviceRPCResponse buildAbortedOperationresult(DeviceDetails deviceDetails,
60 DeviceRPCRequest nbiDeviceOperationrequest, AcsFaultCode acsFaultCode) {
61 Long operationId = nbiDeviceOperationrequest.getOperationId();
63 TR069OperationCode operationCode = null;
64 if (nbiDeviceOperationrequest.getOpDetails().getOpCode() instanceof CustomOperationCode) {
65 operationCode = TR069OperationCode.GET_PARAMETER_VALUES;
67 operationCode = (TR069OperationCode) nbiDeviceOperationrequest.getOpDetails().getOpCode();
70 return buildOperationresult(deviceDetails, operationId, operationCode, acsFaultCode);
75 * @param deviceDetails
77 * @param operationCode
80 public DeviceRPCResponse buildTimedOutOperationResult(DeviceDetails deviceDetails,
81 DeviceRPCRequest deviceRPCRequest) {
82 Long operationId = deviceRPCRequest.getOperationId();
84 TR069OperationCode operationCode = null;
85 if (deviceRPCRequest.getOpDetails().getOpCode() instanceof CustomOperationCode) {
86 CustomOperationCode customOperationCode =
87 (CustomOperationCode) deviceRPCRequest.getOpDetails().getOpCode();
88 if (CustomOperationCode.CONFIGURE_MULTIPLE_OBJECTS.equals(customOperationCode)) {
89 operationCode = TR069OperationCode.GET_PARAMETER_VALUES;
90 } else if (CustomOperationCode.CONNECT.equals(customOperationCode)) {
91 operationCode = TR069OperationCode.INITIATE_CR;
94 operationCode = (TR069OperationCode) deviceRPCRequest.getOpDetails().getOpCode();
96 DeviceRPCResponse deviceRPCResponse = buildOperationresult(deviceDetails, operationId,
97 operationCode, AcsFaultCode.FAULT_CODE_8003);
98 OperationResponse operationResponse = deviceRPCResponse.getOperationResponse();
99 operationResponse.setStatus(OPERATION_EXPIRATION_TIMEOUT);
100 return deviceRPCResponse;
104 * Builds a operation aborted operation request
106 * @param deviceDetails
107 * @param nbiDeviceOperationrequest
108 * @param acsFaultCode
111 private DeviceRPCResponse buildOperationresult(DeviceDetails deviceDetails, Long operationId,
112 TR069OperationCode operationCode, AcsFaultCode acsFaultCode) {
113 DeviceRPCResponse deviceRPCResponse = new DeviceRPCResponse();
114 deviceRPCResponse.setDeviceDetails(deviceDetails);
115 deviceRPCResponse.setOperationId(operationId);
117 deviceRPCResponse.setFaultKey(acsFaultCode.getFaultKey());
118 deviceRPCResponse.setFaultString(acsFaultCode.getFaultString());
120 OperationResponse opResponse = null;
121 switch (operationCode) {
122 case GET_RPC_METHODS:
123 case GET_PARAMETER_NAMES:
125 case SET_PARAMETER_VALUES:
126 opResponse = new SetParameterValueResponse();
127 opResponse.setParameterDTOs(new ArrayList<>());
129 case GET_PARAMETER_VALUES:
131 opResponse = new GetParameterValueResponse();
132 opResponse.setParameterDTOs(new ArrayList<>());
134 case SET_PARAMETER_ATTRIBUTES:
135 opResponse = new SetParameterAttributeResponse();
136 opResponse.setParameterDTOs(new ArrayList<>());
138 case GET_PARAMETER_ATTRIBUTES:
139 opResponse = new GetParameterAttributeResponse();
140 opResponse.setParameterDTOs(new ArrayList<>());
143 opResponse = new AddObjectResponse();
144 opResponse.setParameterDTOs(new ArrayList<>());
147 opResponse = new DeleteObjectResponse();
148 opResponse.setParameterDTOs(new ArrayList<>());
151 opResponse = new RebootResponse();
154 opResponse = new DownloadResponse();
156 case SCHEDULE_DOWNLOAD:
159 opResponse = new FactoryResetResponse();
162 String operationCodeName = operationCode.name();
163 logger.debug("An unsupported operation: {}, hence returning without response object",
167 deviceRPCResponse.setOperationResponse(opResponse);
169 return deviceRPCResponse;