Development of NETCONF RPCs for tr-069 adapter to
[oam/tr069-adapter.git] / acs / requestprocessor / src / main / java / org / commscope / tr069adapter / acs / requestprocessor / helper / TR069RequestProcessEngineUtility.java
index 9cc7b54..4471779 100644 (file)
-/*\r
- * ============LICENSE_START========================================================================\r
- * ONAP : tr-069-adapter\r
- * =================================================================================================\r
- * Copyright (C) 2020 CommScope Inc Intellectual Property.\r
- * =================================================================================================\r
- * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,\r
- * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You\r
- * may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\r
- * either express or implied. See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ===============LICENSE_END=======================================================================\r
- */\r
-\r
-package org.commscope.tr069adapter.acs.requestprocessor.helper;\r
-\r
-import static org.commscope.tr069adapter.acs.common.utils.AcsConstants.OPERATION_EXPIRATION_TIMEOUT;\r
-\r
-import java.util.ArrayList;\r
-\r
-import org.commscope.tr069adapter.acs.common.DeviceDetails;\r
-import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;\r
-import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;\r
-import org.commscope.tr069adapter.acs.common.OperationResponse;\r
-import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
-import org.commscope.tr069adapter.acs.common.dto.CustomOperationCode;\r
-import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;\r
-import org.commscope.tr069adapter.acs.common.faults.AcsFaultCode;\r
-import org.commscope.tr069adapter.acs.common.response.AddObjectResponse;\r
-import org.commscope.tr069adapter.acs.common.response.DeleteObjectResponse;\r
-import org.commscope.tr069adapter.acs.common.response.DownloadResponse;\r
-import org.commscope.tr069adapter.acs.common.response.FactoryResetResponse;\r
-import org.commscope.tr069adapter.acs.common.response.GetParameterAttributeResponse;\r
-import org.commscope.tr069adapter.acs.common.response.GetParameterValueResponse;\r
-import org.commscope.tr069adapter.acs.common.response.RebootResponse;\r
-import org.commscope.tr069adapter.acs.common.response.SetParameterAttributeResponse;\r
-import org.commscope.tr069adapter.acs.common.response.SetParameterValueResponse;\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
-import org.springframework.stereotype.Component;\r
-\r
-@Component\r
-public class TR069RequestProcessEngineUtility {\r
-\r
-  private static final Logger logger =\r
-      LoggerFactory.getLogger(TR069RequestProcessEngineUtility.class);\r
-\r
-  /**\r
-   * Builds a operation aborted operation request\r
-   * \r
-   * @param deviceDetails\r
-   * @param nbiDeviceOperationrequest\r
-   * @param acsFaultCode\r
-   * @return\r
-   */\r
-  public DeviceRPCResponse buildAbortedOperationresult(DeviceDetails deviceDetails,\r
-      DeviceRPCRequest nbiDeviceOperationrequest, AcsFaultCode acsFaultCode) {\r
-    Long operationId = nbiDeviceOperationrequest.getOperationId();\r
-\r
-    TR069OperationCode operationCode = null;\r
-    if (nbiDeviceOperationrequest.getOpDetails().getOpCode() instanceof CustomOperationCode) {\r
-      operationCode = TR069OperationCode.GET_PARAMETER_VALUES;\r
-    } else {\r
-      operationCode = (TR069OperationCode) nbiDeviceOperationrequest.getOpDetails().getOpCode();\r
-    }\r
-\r
-    return buildOperationresult(deviceDetails, operationId, operationCode, acsFaultCode);\r
-\r
-  }\r
-\r
-  /**\r
-   * @param deviceDetails\r
-   * @param operationId\r
-   * @param operationCode\r
-   * @return\r
-   */\r
-  public DeviceRPCResponse buildTimedOutOperationResult(DeviceDetails deviceDetails,\r
-      DeviceRPCRequest deviceRPCRequest) {\r
-    Long operationId = deviceRPCRequest.getOperationId();\r
-\r
-    TR069OperationCode operationCode = null;\r
-    if (deviceRPCRequest.getOpDetails().getOpCode() instanceof CustomOperationCode) {\r
-      CustomOperationCode customOperationCode =\r
-          (CustomOperationCode) deviceRPCRequest.getOpDetails().getOpCode();\r
-      if (CustomOperationCode.CONFIGURE_MULTIPLE_OBJECTS.equals(customOperationCode)) {\r
-        operationCode = TR069OperationCode.GET_PARAMETER_VALUES;\r
-      } else if (CustomOperationCode.CONNECT.equals(customOperationCode)) {\r
-        operationCode = TR069OperationCode.INITIATE_CR;\r
-      }\r
-    } else {\r
-      operationCode = (TR069OperationCode) deviceRPCRequest.getOpDetails().getOpCode();\r
-    }\r
-    DeviceRPCResponse deviceRPCResponse = buildOperationresult(deviceDetails, operationId,\r
-        operationCode, AcsFaultCode.FAULT_CODE_8003);\r
-    OperationResponse operationResponse = deviceRPCResponse.getOperationResponse();\r
-    operationResponse.setStatus(OPERATION_EXPIRATION_TIMEOUT);\r
-    return deviceRPCResponse;\r
-  }\r
-\r
-  /**\r
-   * Builds a operation aborted operation request\r
-   * \r
-   * @param deviceDetails\r
-   * @param nbiDeviceOperationrequest\r
-   * @param acsFaultCode\r
-   * @return\r
-   */\r
-  private DeviceRPCResponse buildOperationresult(DeviceDetails deviceDetails, Long operationId,\r
-      TR069OperationCode operationCode, AcsFaultCode acsFaultCode) {\r
-    DeviceRPCResponse deviceRPCResponse = new DeviceRPCResponse();\r
-    deviceRPCResponse.setDeviceDetails(deviceDetails);\r
-    deviceRPCResponse.setOperationId(operationId);\r
-\r
-    deviceRPCResponse.setFaultKey(acsFaultCode.getFaultKey());\r
-    deviceRPCResponse.setFaultString(acsFaultCode.getFaultString());\r
-\r
-    OperationResponse opResponse = null;\r
-    switch (operationCode) {\r
-      case GET_RPC_METHODS:\r
-      case GET_PARAMETER_NAMES:\r
-        break;\r
-      case SET_PARAMETER_VALUES:\r
-        opResponse = new SetParameterValueResponse();\r
-        opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());\r
-        break;\r
-      case GET_PARAMETER_VALUES:\r
-      case INITIATE_CR:\r
-        opResponse = new GetParameterValueResponse();\r
-        opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());\r
-        break;\r
-      case SET_PARAMETER_ATTRIBUTES:\r
-        opResponse = new SetParameterAttributeResponse();\r
-        opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());\r
-        break;\r
-      case GET_PARAMETER_ATTRIBUTES:\r
-        opResponse = new GetParameterAttributeResponse();\r
-        opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());\r
-        break;\r
-      case ADD_OBJECT:\r
-        opResponse = new AddObjectResponse();\r
-        opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());\r
-        break;\r
-      case DELETE_OBJECT:\r
-        opResponse = new DeleteObjectResponse();\r
-        opResponse.setParameterDTOs(new ArrayList<ParameterDTO>());\r
-        break;\r
-      case REBOOT:\r
-        opResponse = new RebootResponse();\r
-        break;\r
-      case DOWNLOAD:\r
-        opResponse = new DownloadResponse();\r
-        break;\r
-      case SCHEDULE_DOWNLOAD:\r
-      case UPLOAD:\r
-      case FACTORY_RESET:\r
-        opResponse = new FactoryResetResponse();\r
-        break;\r
-      default:\r
-        String operationCodeName = operationCode.name();\r
-        logger.debug("An unsupported operation: {}, hence returning without response object",\r
-            operationCodeName);\r
-        break;\r
-    }\r
-    deviceRPCResponse.setOperationResponse(opResponse);\r
-\r
-    return deviceRPCResponse;\r
-  }\r
-\r
-}\r
+/*
+ * ============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;
+  }
+
+}