X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=acs%2Frequestprocessor%2Fsrc%2Fmain%2Fjava%2Forg%2Fcommscope%2Ftr069adapter%2Facs%2Frequestprocessor%2Fhelper%2FTR069RequestProcessEngineUtility.java;fp=acs%2Frequestprocessor%2Fsrc%2Fmain%2Fjava%2Forg%2Fcommscope%2Ftr069adapter%2Facs%2Frequestprocessor%2Fhelper%2FTR069RequestProcessEngineUtility.java;h=4471779808fe74d95f9d0cd5eb32dcf282b8ecee;hb=76744e810f35c84ecbd1d9998e361052466e9483;hp=9cc7b54cbd9e4830aa9b21253a37814ef4b8da58;hpb=ce4e2d38e3d42725f61c39dd172325d2def4bc44;p=oam%2Ftr069-adapter.git diff --git a/acs/requestprocessor/src/main/java/org/commscope/tr069adapter/acs/requestprocessor/helper/TR069RequestProcessEngineUtility.java b/acs/requestprocessor/src/main/java/org/commscope/tr069adapter/acs/requestprocessor/helper/TR069RequestProcessEngineUtility.java index 9cc7b54..4471779 100644 --- a/acs/requestprocessor/src/main/java/org/commscope/tr069adapter/acs/requestprocessor/helper/TR069RequestProcessEngineUtility.java +++ b/acs/requestprocessor/src/main/java/org/commscope/tr069adapter/acs/requestprocessor/helper/TR069RequestProcessEngineUtility.java @@ -1,173 +1,172 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : tr-069-adapter - * ================================================================================================= - * Copyright (C) 2020 CommScope Inc Intellectual Property. - * ================================================================================================= - * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License, - * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language governing permissions and - * limitations under the License. - * ===============LICENSE_END======================================================================= - */ - -package org.commscope.tr069adapter.acs.requestprocessor.helper; - -import static org.commscope.tr069adapter.acs.common.utils.AcsConstants.OPERATION_EXPIRATION_TIMEOUT; - -import java.util.ArrayList; - -import org.commscope.tr069adapter.acs.common.DeviceDetails; -import org.commscope.tr069adapter.acs.common.DeviceRPCRequest; -import org.commscope.tr069adapter.acs.common.DeviceRPCResponse; -import org.commscope.tr069adapter.acs.common.OperationResponse; -import org.commscope.tr069adapter.acs.common.ParameterDTO; -import org.commscope.tr069adapter.acs.common.dto.CustomOperationCode; -import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode; -import org.commscope.tr069adapter.acs.common.faults.AcsFaultCode; -import org.commscope.tr069adapter.acs.common.response.AddObjectResponse; -import org.commscope.tr069adapter.acs.common.response.DeleteObjectResponse; -import org.commscope.tr069adapter.acs.common.response.DownloadResponse; -import org.commscope.tr069adapter.acs.common.response.FactoryResetResponse; -import org.commscope.tr069adapter.acs.common.response.GetParameterAttributeResponse; -import org.commscope.tr069adapter.acs.common.response.GetParameterValueResponse; -import org.commscope.tr069adapter.acs.common.response.RebootResponse; -import org.commscope.tr069adapter.acs.common.response.SetParameterAttributeResponse; -import org.commscope.tr069adapter.acs.common.response.SetParameterValueResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -@Component -public class TR069RequestProcessEngineUtility { - - private static final Logger logger = - LoggerFactory.getLogger(TR069RequestProcessEngineUtility.class); - - /** - * Builds a operation aborted operation request - * - * @param deviceDetails - * @param nbiDeviceOperationrequest - * @param acsFaultCode - * @return - */ - public DeviceRPCResponse buildAbortedOperationresult(DeviceDetails deviceDetails, - DeviceRPCRequest nbiDeviceOperationrequest, AcsFaultCode acsFaultCode) { - Long operationId = nbiDeviceOperationrequest.getOperationId(); - - TR069OperationCode operationCode = null; - if (nbiDeviceOperationrequest.getOpDetails().getOpCode() instanceof CustomOperationCode) { - operationCode = TR069OperationCode.GET_PARAMETER_VALUES; - } else { - operationCode = (TR069OperationCode) nbiDeviceOperationrequest.getOpDetails().getOpCode(); - } - - return buildOperationresult(deviceDetails, operationId, operationCode, acsFaultCode); - - } - - /** - * @param deviceDetails - * @param operationId - * @param operationCode - * @return - */ - public DeviceRPCResponse buildTimedOutOperationResult(DeviceDetails deviceDetails, - DeviceRPCRequest deviceRPCRequest) { - Long operationId = deviceRPCRequest.getOperationId(); - - TR069OperationCode operationCode = null; - if (deviceRPCRequest.getOpDetails().getOpCode() instanceof CustomOperationCode) { - CustomOperationCode customOperationCode = - (CustomOperationCode) deviceRPCRequest.getOpDetails().getOpCode(); - if (CustomOperationCode.CONFIGURE_MULTIPLE_OBJECTS.equals(customOperationCode)) { - operationCode = TR069OperationCode.GET_PARAMETER_VALUES; - } else if (CustomOperationCode.CONNECT.equals(customOperationCode)) { - operationCode = TR069OperationCode.INITIATE_CR; - } - } else { - operationCode = (TR069OperationCode) deviceRPCRequest.getOpDetails().getOpCode(); - } - DeviceRPCResponse deviceRPCResponse = buildOperationresult(deviceDetails, operationId, - operationCode, AcsFaultCode.FAULT_CODE_8003); - OperationResponse operationResponse = deviceRPCResponse.getOperationResponse(); - operationResponse.setStatus(OPERATION_EXPIRATION_TIMEOUT); - return deviceRPCResponse; - } - - /** - * Builds a operation aborted operation request - * - * @param deviceDetails - * @param nbiDeviceOperationrequest - * @param acsFaultCode - * @return - */ - private DeviceRPCResponse buildOperationresult(DeviceDetails deviceDetails, Long operationId, - TR069OperationCode operationCode, AcsFaultCode acsFaultCode) { - DeviceRPCResponse deviceRPCResponse = new DeviceRPCResponse(); - deviceRPCResponse.setDeviceDetails(deviceDetails); - deviceRPCResponse.setOperationId(operationId); - - deviceRPCResponse.setFaultKey(acsFaultCode.getFaultKey()); - deviceRPCResponse.setFaultString(acsFaultCode.getFaultString()); - - OperationResponse opResponse = null; - switch (operationCode) { - case GET_RPC_METHODS: - case GET_PARAMETER_NAMES: - break; - case SET_PARAMETER_VALUES: - opResponse = new SetParameterValueResponse(); - opResponse.setParameterDTOs(new ArrayList()); - break; - case GET_PARAMETER_VALUES: - case INITIATE_CR: - opResponse = new GetParameterValueResponse(); - opResponse.setParameterDTOs(new ArrayList()); - break; - case SET_PARAMETER_ATTRIBUTES: - opResponse = new SetParameterAttributeResponse(); - opResponse.setParameterDTOs(new ArrayList()); - break; - case GET_PARAMETER_ATTRIBUTES: - opResponse = new GetParameterAttributeResponse(); - opResponse.setParameterDTOs(new ArrayList()); - break; - case ADD_OBJECT: - opResponse = new AddObjectResponse(); - opResponse.setParameterDTOs(new ArrayList()); - break; - case DELETE_OBJECT: - opResponse = new DeleteObjectResponse(); - opResponse.setParameterDTOs(new ArrayList()); - break; - case REBOOT: - opResponse = new RebootResponse(); - break; - case DOWNLOAD: - opResponse = new DownloadResponse(); - break; - case SCHEDULE_DOWNLOAD: - case UPLOAD: - case FACTORY_RESET: - opResponse = new FactoryResetResponse(); - break; - default: - String operationCodeName = operationCode.name(); - logger.debug("An unsupported operation: {}, hence returning without response object", - operationCodeName); - break; - } - deviceRPCResponse.setOperationResponse(opResponse); - - return deviceRPCResponse; - } - -} +/* + * ============LICENSE_START======================================================================== + * ONAP : tr-069-adapter + * ================================================================================================= + * Copyright (C) 2020 CommScope Inc Intellectual Property. + * ================================================================================================= + * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License, + * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You + * may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions and + * limitations under the License. + * ===============LICENSE_END======================================================================= + */ + +package org.commscope.tr069adapter.acs.requestprocessor.helper; + +import static org.commscope.tr069adapter.acs.common.utils.AcsConstants.OPERATION_EXPIRATION_TIMEOUT; + +import java.util.ArrayList; + +import org.commscope.tr069adapter.acs.common.DeviceDetails; +import org.commscope.tr069adapter.acs.common.DeviceRPCRequest; +import org.commscope.tr069adapter.acs.common.DeviceRPCResponse; +import org.commscope.tr069adapter.acs.common.OperationResponse; +import org.commscope.tr069adapter.acs.common.dto.CustomOperationCode; +import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode; +import org.commscope.tr069adapter.acs.common.faults.AcsFaultCode; +import org.commscope.tr069adapter.acs.common.response.AddObjectResponse; +import org.commscope.tr069adapter.acs.common.response.DeleteObjectResponse; +import org.commscope.tr069adapter.acs.common.response.DownloadResponse; +import org.commscope.tr069adapter.acs.common.response.FactoryResetResponse; +import org.commscope.tr069adapter.acs.common.response.GetParameterAttributeResponse; +import org.commscope.tr069adapter.acs.common.response.GetParameterValueResponse; +import org.commscope.tr069adapter.acs.common.response.RebootResponse; +import org.commscope.tr069adapter.acs.common.response.SetParameterAttributeResponse; +import org.commscope.tr069adapter.acs.common.response.SetParameterValueResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +@Component +public class TR069RequestProcessEngineUtility { + + private static final Logger logger = + LoggerFactory.getLogger(TR069RequestProcessEngineUtility.class); + + /** + * Builds a operation aborted operation request + * + * @param deviceDetails + * @param nbiDeviceOperationrequest + * @param acsFaultCode + * @return + */ + public DeviceRPCResponse buildAbortedOperationresult(DeviceDetails deviceDetails, + DeviceRPCRequest nbiDeviceOperationrequest, AcsFaultCode acsFaultCode) { + Long operationId = nbiDeviceOperationrequest.getOperationId(); + + TR069OperationCode operationCode = null; + if (nbiDeviceOperationrequest.getOpDetails().getOpCode() instanceof CustomOperationCode) { + operationCode = TR069OperationCode.GET_PARAMETER_VALUES; + } else { + operationCode = (TR069OperationCode) nbiDeviceOperationrequest.getOpDetails().getOpCode(); + } + + return buildOperationresult(deviceDetails, operationId, operationCode, acsFaultCode); + + } + + /** + * @param deviceDetails + * @param operationId + * @param operationCode + * @return + */ + public DeviceRPCResponse buildTimedOutOperationResult(DeviceDetails deviceDetails, + DeviceRPCRequest deviceRPCRequest) { + Long operationId = deviceRPCRequest.getOperationId(); + + TR069OperationCode operationCode = null; + if (deviceRPCRequest.getOpDetails().getOpCode() instanceof CustomOperationCode) { + CustomOperationCode customOperationCode = + (CustomOperationCode) deviceRPCRequest.getOpDetails().getOpCode(); + if (CustomOperationCode.CONFIGURE_MULTIPLE_OBJECTS.equals(customOperationCode)) { + operationCode = TR069OperationCode.GET_PARAMETER_VALUES; + } else if (CustomOperationCode.CONNECT.equals(customOperationCode)) { + operationCode = TR069OperationCode.INITIATE_CR; + } + } else { + operationCode = (TR069OperationCode) deviceRPCRequest.getOpDetails().getOpCode(); + } + DeviceRPCResponse deviceRPCResponse = buildOperationresult(deviceDetails, operationId, + operationCode, AcsFaultCode.FAULT_CODE_8003); + OperationResponse operationResponse = deviceRPCResponse.getOperationResponse(); + operationResponse.setStatus(OPERATION_EXPIRATION_TIMEOUT); + return deviceRPCResponse; + } + + /** + * Builds a operation aborted operation request + * + * @param deviceDetails + * @param nbiDeviceOperationrequest + * @param acsFaultCode + * @return + */ + private DeviceRPCResponse buildOperationresult(DeviceDetails deviceDetails, Long operationId, + TR069OperationCode operationCode, AcsFaultCode acsFaultCode) { + DeviceRPCResponse deviceRPCResponse = new DeviceRPCResponse(); + deviceRPCResponse.setDeviceDetails(deviceDetails); + deviceRPCResponse.setOperationId(operationId); + + deviceRPCResponse.setFaultKey(acsFaultCode.getFaultKey()); + deviceRPCResponse.setFaultString(acsFaultCode.getFaultString()); + + OperationResponse opResponse = null; + switch (operationCode) { + case GET_RPC_METHODS: + case GET_PARAMETER_NAMES: + break; + case SET_PARAMETER_VALUES: + opResponse = new SetParameterValueResponse(); + opResponse.setParameterDTOs(new ArrayList<>()); + break; + case GET_PARAMETER_VALUES: + case INITIATE_CR: + opResponse = new GetParameterValueResponse(); + opResponse.setParameterDTOs(new ArrayList<>()); + break; + case SET_PARAMETER_ATTRIBUTES: + opResponse = new SetParameterAttributeResponse(); + opResponse.setParameterDTOs(new ArrayList<>()); + break; + case GET_PARAMETER_ATTRIBUTES: + opResponse = new GetParameterAttributeResponse(); + opResponse.setParameterDTOs(new ArrayList<>()); + break; + case ADD_OBJECT: + opResponse = new AddObjectResponse(); + opResponse.setParameterDTOs(new ArrayList<>()); + break; + case DELETE_OBJECT: + opResponse = new DeleteObjectResponse(); + opResponse.setParameterDTOs(new ArrayList<>()); + break; + case REBOOT: + opResponse = new RebootResponse(); + break; + case DOWNLOAD: + opResponse = new DownloadResponse(); + break; + case SCHEDULE_DOWNLOAD: + case UPLOAD: + case FACTORY_RESET: + opResponse = new FactoryResetResponse(); + break; + default: + String operationCodeName = operationCode.name(); + logger.debug("An unsupported operation: {}, hence returning without response object", + operationCodeName); + break; + } + deviceRPCResponse.setOperationResponse(opResponse); + + return deviceRPCResponse; + } + +}