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.mapper.netconf.impl;
\r
21 import java.util.ArrayList;
\r
22 import java.util.List;
\r
23 import java.util.Map;
\r
24 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;
\r
25 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
\r
26 import org.commscope.tr069adapter.acs.common.OperationOptions;
\r
27 import org.commscope.tr069adapter.acs.common.OperationResponse;
\r
28 import org.commscope.tr069adapter.acs.common.ParameterDTO;
\r
29 import org.commscope.tr069adapter.acs.common.dto.CustomOperationCode;
\r
30 import org.commscope.tr069adapter.acs.common.dto.TR069DeviceDetails;
\r
31 import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;
\r
32 import org.commscope.tr069adapter.acs.common.dto.TR069OperationDetails;
\r
33 import org.commscope.tr069adapter.acs.common.response.SetParameterValueResponse;
\r
34 import org.commscope.tr069adapter.mapper.MOMetaData;
\r
35 import org.commscope.tr069adapter.mapper.dao.DeviceOperationsDAO;
\r
36 import org.commscope.tr069adapter.mapper.entity.DeviceOperationDetails;
\r
37 import org.commscope.tr069adapter.mapper.model.ErrorCodeDetails;
\r
38 import org.commscope.tr069adapter.mapper.model.NetConfRequest;
\r
39 import org.commscope.tr069adapter.mapper.model.NetConfResponse;
\r
40 import org.commscope.tr069adapter.mapper.model.NetConfServerDetails;
\r
41 import org.commscope.tr069adapter.mapper.netconf.NetConfRequestHandler;
\r
42 import org.commscope.tr069adapter.mapper.sync.SynchronizedRequestHandler;
\r
43 import org.commscope.tr069adapter.mapper.util.ErrorCodeUtil;
\r
44 import org.commscope.tr069adapter.mapper.util.FirwareUpgradeStatus;
\r
45 import org.commscope.tr069adapter.mapper.util.MOMetaDataUtil;
\r
46 import org.commscope.tr069adapter.mapper.util.MapperConstants;
\r
47 import org.commscope.tr069adapter.mapper.util.MapperValidator;
\r
48 import org.commscope.tr069adapter.mapper.util.NetconfToTr069MapperUtil;
\r
49 import org.commscope.tr069adapter.mapper.ves.VESNotificationSender;
\r
50 import org.slf4j.Logger;
\r
51 import org.slf4j.LoggerFactory;
\r
52 import org.springframework.beans.factory.annotation.Autowired;
\r
53 import org.springframework.stereotype.Component;
\r
54 import org.springframework.util.StringUtils;
\r
55 import org.w3c.dom.Document;
\r
56 import org.w3c.dom.Element;
\r
59 public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
\r
61 private static final Logger LOG = LoggerFactory.getLogger(NetConfRequestHandlerImpl.class);
\r
62 private static final String BOOLEAN_TRUE_VALUE = "1";
\r
63 private static final String BOOLEAN_FALSE_VALUE = "0";
\r
64 private static final String BOOLEAN_DATA_TYPE = "boolean";
\r
67 SynchronizedRequestHandler syncHandler;
\r
70 NetconfToTr069MapperUtil mapperUtil;
\r
73 MOMetaDataUtil metaDataUtil;
\r
76 ErrorCodeUtil errorCodeUtil;
\r
79 VESNotificationSender vesnotiSender;
\r
82 DeviceOperationsDAO deviceOperDAO;
\r
85 public NetConfResponse handleSetConfigRequest(NetConfRequest netConfRequest) {
\r
86 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
87 NetConfResponse response = null;
\r
88 DeviceRPCRequest deviceRPCRequest = NetconfToTr069MapperUtil.prepareTR069Request(
\r
89 netConfRequest.getDeviceId(), el, "config", TR069OperationCode.SET_PARAMETER_VALUES);
\r
91 if (deviceRPCRequest == null) {
\r
92 LOG.debug("There are no supported device parameters found for edit-config.");
\r
93 return getEmptyResponse();
\r
95 List<ParameterDTO> requestParams = deviceRPCRequest.getOpDetails().getParmeters();
\r
96 List<ParameterDTO> filteredParams = new ArrayList<>();
\r
97 List<ParameterDTO> vesRequestParams = new ArrayList<>();
\r
99 if (null != requestParams) {
\r
100 for (ParameterDTO param : requestParams) {
\r
101 if (null == param.getParamValue() || StringUtils.isEmpty(param.getParamValue())) {
\r
104 if (isVesNotificationRequest(param)) {
\r
105 vesRequestParams.add(param);
\r
107 filteredParams.add(param);
\r
109 deviceRPCRequest.getOpDetails().setParmeters(filteredParams);
\r
112 if (deviceRPCRequest.getOpDetails() == null
\r
113 || deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {
\r
114 LOG.debug("There are no device parameters found for edit-config.");
\r
115 return getEmptyResponse();
\r
116 } else if (deviceRPCRequest.getOpDetails() != null) {
\r
117 deviceRPCRequest.getOpDetails()
\r
118 .setParmeters(filteredSetParameters(deviceRPCRequest.getOpDetails().getParmeters()));
\r
119 if (deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {
\r
120 LOG.debug("There are no supported device parameters found for edit-config.");
\r
121 return getEmptyResponse();
\r
125 handleBooleanParametersReverse(deviceRPCRequest.getOpDetails().getParmeters());
\r
126 LOG.debug("Prepared NBI request for edit-config {}", deviceRPCRequest);
\r
128 DeviceRPCResponse deviceRPCResponseVes = null;
\r
129 List<ParameterDTO> allParamList = deviceRPCRequest.getOpDetails().getParmeters();
\r
131 if (!vesRequestParams.isEmpty()) {
\r
132 if (!MapperValidator.isCountDownTimerValid(vesRequestParams)) {
\r
133 return getErrorResponse(MapperConstants.INVALID_PARAM_VAL_ERROR_CODE,
\r
134 MapperConstants.INVALID_COUNT_DOWN_TIMER_MSG);
\r
137 deviceRPCRequest.getOpDetails().setParmeters(vesRequestParams);
\r
138 deviceRPCResponseVes = vesnotiSender.sendEditConfigNotification(deviceRPCRequest);
\r
140 if (null == deviceRPCResponseVes) {
\r
141 return getTimeOutResponse();
\r
145 allParamList.removeAll(vesRequestParams);
\r
147 DeviceRPCResponse deviceRPCResponseDevice = null;
\r
148 if (null != allParamList && !allParamList.isEmpty()) {
\r
149 deviceRPCRequest.getOpDetails().setParmeters(allParamList);
\r
150 if (isAdminStateOverriden(allParamList)) {
\r
151 deviceRPCRequest.getOpDetails().setOpCode(CustomOperationCode.CONFIGURE_MULTIPLE_OBJECTS);
\r
152 TR069OperationDetails tr069OperationDetails =
\r
153 (TR069OperationDetails) deviceRPCRequest.getOpDetails();
\r
154 tr069OperationDetails.setModifyParamList(allParamList);
\r
155 tr069OperationDetails.setSetParamList(null);
\r
157 deviceRPCResponseDevice = syncHandler.performDeviceOperation(deviceRPCRequest);
\r
158 convertResposeToSPVResponse(deviceRPCResponseDevice);
\r
160 deviceRPCResponseDevice = syncHandler.performDeviceOperation(deviceRPCRequest);
\r
163 if (null == deviceRPCResponseDevice) {
\r
164 return getTimeOutResponse();
\r
168 DeviceRPCResponse deviceRPCResponse =
\r
169 mergeSetConfigDeviceRPCResponse(deviceRPCResponseVes, deviceRPCResponseDevice);
\r
170 if (null == deviceRPCResponse) {
\r
171 return getTimeOutResponse();
\r
173 response = mapperUtil.getNetconfResponse(deviceRPCResponse, false);
\r
178 public NetConfResponse handleDelConfigRequest(NetConfRequest netConfRequest) {
\r
179 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
180 NetConfResponse response = null;
\r
181 DeviceRPCRequest request = NetconfToTr069MapperUtil.prepareTR069Request(
\r
182 netConfRequest.getDeviceId(), el, "config", TR069OperationCode.DELETE_OBJECT);
\r
184 if (request == null) {
\r
185 LOG.debug("There are no supported device parameters found for delete-config.");
\r
186 return getEmptyResponse();
\r
189 List<ParameterDTO> requestParams = request.getOpDetails().getParmeters();
\r
190 List<ParameterDTO> filteredParams = new ArrayList<>();
\r
191 if (null != requestParams) {
\r
192 for (ParameterDTO param : requestParams) {
\r
193 filteredParams.add(param);
\r
195 request.getOpDetails().setParmeters(filteredParams);
\r
198 if (request.getOpDetails() == null || request.getOpDetails().getParmeters().isEmpty()) {
\r
199 LOG.debug("There are no device parameters found for delete-config.");
\r
200 return getEmptyResponse();
\r
201 } else if (request.getOpDetails() != null) {
\r
202 request.getOpDetails()
\r
203 .setParmeters(filteredSetParameters(request.getOpDetails().getParmeters()));
\r
204 if (request.getOpDetails().getParmeters().isEmpty()) {
\r
205 LOG.debug("There are no supported device parameters found for delete-config.");
\r
206 return getEmptyResponse();
\r
209 LOG.debug("Prepared NBI request for delete-config {}", request);
\r
211 DeviceRPCResponse opResult;
\r
212 opResult = syncHandler.performDeviceOperation(request);
\r
213 if (null == opResult) {
\r
214 return getTimeOutResponse();
\r
216 response = mapperUtil.getNetconfResponse(opResult, false);
\r
221 public NetConfResponse handleGetRequest(NetConfRequest netConfRequest) {
\r
222 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
223 NetConfResponse response = null;
\r
224 DeviceRPCRequest request = NetconfToTr069MapperUtil.prepareTR069Request(
\r
225 netConfRequest.getDeviceId(), el, "filter", TR069OperationCode.GET_PARAMETER_VALUES);
\r
227 if (request == null || request.getOpDetails() == null
\r
228 || request.getOpDetails().getParmeters().isEmpty()) {
\r
229 LOG.debug("There are no device parameters found for get.");
\r
230 return getEmptyResponse();
\r
231 } else if (request.getOpDetails() != null) {
\r
233 request.getOpDetails()
\r
234 .setParmeters(filteredGetParameters(request.getOpDetails().getParmeters()));
\r
236 if (request.getOpDetails().getParmeters().isEmpty()) {
\r
237 LOG.debug("There are no supported device parameters found for get.");
\r
238 return getEmptyResponse();
\r
241 LOG.debug("Prepared NBI request for get {}", request);
\r
243 DeviceRPCResponse opResult;
\r
244 opResult = syncHandler.performDeviceOperation(request);
\r
245 if (null == opResult) {
\r
246 return getTimeOutResponse();
\r
248 response = mapperUtil.getNetconfResponse(opResult, false);
\r
253 public NetConfResponse handleGetConfigRequest(NetConfRequest netConfRequest) {
\r
254 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
255 NetConfResponse response = null;
\r
256 List<ParameterDTO> vesRequestParams = new ArrayList<>();
\r
258 boolean isSoftwareInventory = false;
\r
259 if (netConfRequest.getRequestXml().contains("software-inventory")) {
\r
260 LOG.info("XML Contains software-inventory");
\r
261 isSoftwareInventory = true;
\r
264 DeviceRPCRequest request = NetconfToTr069MapperUtil.prepareTR069Request(
\r
265 netConfRequest.getDeviceId(), el, "filter", TR069OperationCode.GET_PARAMETER_VALUES);
\r
267 if (request == null || request.getOpDetails() == null
\r
268 || request.getOpDetails().getParmeters().isEmpty()) {
\r
269 LOG.debug("There are no device parameters found for get-config.");
\r
270 return getEmptyResponse();
\r
271 } else if (request.getOpDetails() != null) {
\r
272 request.getOpDetails()
\r
273 .setParmeters(filteredGetParameters(request.getOpDetails().getParmeters()));
\r
275 if (request.getOpDetails().getParmeters().isEmpty()) {
\r
276 LOG.debug("There are no supported device parameters found for get-config.");
\r
277 return getEmptyResponse();
\r
279 for (ParameterDTO param : request.getOpDetails().getParmeters()) {
\r
280 if (isVesNotificationRequest(param)) {
\r
281 vesRequestParams.add(param);
\r
285 LOG.debug("Prepared NBI request for get-config {}", request);
\r
287 DeviceRPCResponse opResultVes = null;
\r
288 List<ParameterDTO> allParamList = request.getOpDetails().getParmeters();
\r
290 if (!vesRequestParams.isEmpty()) {
\r
291 request.getOpDetails().setParmeters(vesRequestParams);
\r
292 opResultVes = vesnotiSender.sendGetConfigNotification(request);
\r
294 if (null == opResultVes) {
\r
295 return getTimeOutResponse();
\r
300 allParamList.removeAll(vesRequestParams);
\r
302 DeviceRPCResponse opResultDevice = null;
\r
303 if (!allParamList.isEmpty()) {
\r
304 request.getOpDetails().setParmeters(allParamList);
\r
305 opResultDevice = syncHandler.performDeviceOperation(request);
\r
307 if (null == opResultDevice) {
\r
308 return getTimeOutResponse();
\r
312 DeviceRPCResponse opResult = mergeGetConfigDeviceRPCResponse(opResultVes, opResultDevice);
\r
314 if (null == opResult) {
\r
315 return getTimeOutResponse();
\r
317 LOG.debug("Received GPV response : FaultKey = " + opResult.getFaultKey() + ", FaultString = "
\r
318 + opResult.getFaultString() + ", Parameters :"
\r
319 + opResult.getOperationResponse().getParameterDTOs());
\r
320 if (null != opResult.getOperationResponse().getParameterDTOs())
\r
321 handleBooleanParameters(opResult.getOperationResponse().getParameterDTOs());
\r
323 if (isSoftwareInventory) {
\r
324 response = mapperUtil.getNetconfResponseForSoftwareInventory(opResult);
\r
326 response = mapperUtil.getNetconfResponse(opResult, false);
\r
329 if (opResult.getFaultKey() != null && opResult.getFaultKey().equalsIgnoreCase("9005")) {
\r
330 // check for tabular
\r
331 LOG.debug("Tabualr Entry not exist in the device; we need to add it now");
\r
332 MOMetaData data = metaDataUtil
\r
333 .getMetaDataByTR69Name(request.getOpDetails().getParmeters().get(0).getParamName());
\r
334 if (data.isTabluarObj()) {
\r
335 return getEmptyResponse();
\r
343 public NetConfResponse handleSWDownloadRequest(NetConfRequest request) {
\r
344 LOG.debug("request received fro sw-download");
\r
345 Document d1 = NetconfToTr069MapperUtil.convertStringToDocumentXml(request.getRequestXml());
\r
346 NetConfResponse response = null;
\r
347 Map<String, String> map =
\r
348 NetconfToTr069MapperUtil.extractRequestParamters(d1, "rpc", "software-download");
\r
349 if (map == null || map.size() <= 0) {
\r
350 LOG.debug("There are no device parameters found for get.");
\r
351 return getEmptyResponse();
\r
354 TR069OperationDetails opDetails = new TR069OperationDetails();
\r
355 DeviceRPCRequest deviceRPCRequest = new DeviceRPCRequest();
\r
356 TR069DeviceDetails tr069DeviceDetails = new TR069DeviceDetails();
\r
357 tr069DeviceDetails.setDeviceId(request.getDeviceId());
\r
358 deviceRPCRequest.setOpDetails(opDetails);
\r
359 deviceRPCRequest.setDeviceDetails(tr069DeviceDetails);
\r
360 OperationOptions options = new OperationOptions();
\r
361 options.setExecutionTimeout(60l);
\r
362 deviceRPCRequest.setOptions(options);
\r
363 String fileName = map.get("rpc.software-download.remote-file-path");
\r
364 String password = map.get("rpc.software-download.password.password");
\r
366 if (fileName == null || password == null || getDownloadFileURI(fileName) == null
\r
367 || getDownloadUserName(fileName) == null) {
\r
369 "remote-file-path value is not as per yang model reference. Allowed pattern sftp://<username>@<host>[:<port>]/path");
\r
370 return getOperationAbortedResponse(
\r
371 "remote-file-path value is not as per yang model reference. Allowed pattern sftp://<username>@<host>[:<port>]/path");
\r
374 List<ParameterDTO> paramDTOList = new ArrayList<>();
\r
375 paramDTOList.add(new ParameterDTO("FileType", "1 Firmware Upgrade Image"));
\r
376 paramDTOList.add(new ParameterDTO("URL", getDownloadFileURI(fileName)));
\r
377 paramDTOList.add(new ParameterDTO("Username", getDownloadUserName(fileName)));
\r
378 paramDTOList.add(new ParameterDTO("Password", password));
\r
379 paramDTOList.add(new ParameterDTO("FileSize", "0"));
\r
380 paramDTOList.add(new ParameterDTO("TargetFileName", ""));
\r
381 paramDTOList.add(new ParameterDTO("DelaySeconds", "1"));
\r
382 paramDTOList.add(new ParameterDTO("SuccessURL", ""));
\r
383 paramDTOList.add(new ParameterDTO("FailureURL", ""));
\r
385 deviceRPCRequest.getOpDetails().setParmeters(paramDTOList);
\r
386 deviceRPCRequest.getOpDetails().setOpCode(TR069OperationCode.DOWNLOAD);
\r
388 LOG.debug("Prepared NBI request for download " + deviceRPCRequest);
\r
390 DeviceOperationDetails fwDetails = deviceOperDAO.findByDeviceId(request.getDeviceId());
\r
391 if (fwDetails == null) {
\r
392 String errorMsg = "TR069 device request has been aborted,due to device not identified";
\r
393 return getOperationAbortedResponse(errorMsg);
\r
396 if (fwDetails.getDownLoadStatus() != FirwareUpgradeStatus.DOWNLOAD_INTIATED.getStatus()
\r
397 && fwDetails.getDownLoadStatus() != FirwareUpgradeStatus.DOWNLOAD_COMPLETED.getStatus()) {
\r
399 LOG.debug("persisting the fw details " + fwDetails.toString());
\r
401 DeviceRPCResponse opResult;
\r
402 opResult = syncHandler.performDeviceOperation(deviceRPCRequest);
\r
403 if (null == opResult) {
\r
404 return getTimeOutResponse();
\r
406 fwDetails.setFileName(fileName);
\r
407 fwDetails.setDownLoadStatus(FirwareUpgradeStatus.DOWNLOAD_INTIATED.getStatus());
\r
408 deviceOperDAO.save(fwDetails);
\r
409 ArrayList<ParameterDTO> responseParamDTOList = new ArrayList<>();
\r
411 if (opResult.getOperationResponse().getStatus() == 1) {
\r
412 responseParamDTOList.add(new ParameterDTO("rpc-reply.ns1:status", "STARTED"));
\r
414 responseParamDTOList.add(new ParameterDTO("rpc-reply.ns1:status", "FAILED"));
\r
415 responseParamDTOList
\r
416 .add(new ParameterDTO("rpc-reply.ns1:error-message", opResult.getFaultString()));
\r
418 responseParamDTOList.add(new ParameterDTO("rpc-reply.ns1:notification-timeout", "1200"));
\r
420 opResult.getOperationResponse().setParameterDTOs(responseParamDTOList);
\r
421 response = mapperUtil.getNetconfResponse(opResult, true);
\r
423 LOG.debug("update the status for fw details " + fwDetails.toString());
\r
425 LOG.debug("FirmWare Upgrade is in progress");
\r
426 String errorMsg = "TR069 device request has been aborted as Firmware Upgrade is inProgress";
\r
427 return getOperationAbortedResponse(errorMsg);
\r
433 protected DeviceRPCResponse mergeGetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,
\r
434 DeviceRPCResponse opResultDevice) {
\r
435 if (null == opResultVes) {
\r
436 return opResultDevice;
\r
439 if (null == opResultDevice) {
\r
440 return opResultVes;
\r
443 if (null != opResultVes.getFaultKey()
\r
444 && !opResultVes.getFaultKey().equals(MapperConstants.RPC_SUCCESS)) {
\r
445 return opResultVes;
\r
446 } else if (null != opResultDevice.getFaultKey()
\r
447 && !opResultDevice.getFaultKey().equals(MapperConstants.RPC_SUCCESS)) {
\r
448 return opResultDevice;
\r
451 opResultDevice.getOperationResponse().getParameterDTOs()
\r
452 .addAll(opResultVes.getOperationResponse().getParameterDTOs());
\r
453 return opResultDevice;
\r
456 protected DeviceRPCResponse mergeSetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,
\r
457 DeviceRPCResponse opResultDevice) {
\r
458 if (null == opResultVes) {
\r
459 return opResultDevice;
\r
462 if (null == opResultDevice) {
\r
463 return opResultVes;
\r
466 return opResultDevice;
\r
469 protected boolean isVesNotificationRequest(ParameterDTO param) {
\r
470 if (null == param.getParamName() || param.getParamName().isEmpty()) {
\r
474 if (param.getParamName().toLowerCase().contains(MapperConstants.HEART_BEAT_PERIOD.toLowerCase())
\r
475 || param.getParamName().toLowerCase()
\r
476 .contains(MapperConstants.COUNT_DOWN_TIMER.toLowerCase())
\r
477 || param.getParamName().toLowerCase().contains(MapperConstants.HEART_BEAT.toLowerCase())) {
\r
484 protected void handleBooleanParameters(List<ParameterDTO> parameterDTOs) {
\r
486 for (ParameterDTO param : parameterDTOs) {
\r
487 MOMetaData metaData = metaDataUtil.getMetaDataByTR69Name(param.getParamName());
\r
488 if (null != metaData && BOOLEAN_DATA_TYPE.equalsIgnoreCase(metaData.getDataType())) {
\r
489 if (BOOLEAN_TRUE_VALUE.equalsIgnoreCase(param.getParamValue().trim())) {
\r
490 param.setParamValue(Boolean.TRUE.toString());
\r
491 } else if (BOOLEAN_FALSE_VALUE.equalsIgnoreCase(param.getParamValue().trim())) {
\r
492 param.setParamValue(Boolean.FALSE.toString());
\r
498 protected void handleBooleanParametersReverse(List<ParameterDTO> parameterDTOs) {
\r
500 for (ParameterDTO param : parameterDTOs) {
\r
501 MOMetaData metaData = metaDataUtil.getMetaDataByTR69Name(param.getParamName());
\r
502 if (null != metaData && BOOLEAN_DATA_TYPE.equalsIgnoreCase(metaData.getDataType())) {
\r
503 if (Boolean.TRUE.toString().equalsIgnoreCase(param.getParamValue().trim())) {
\r
504 param.setParamValue(BOOLEAN_TRUE_VALUE);
\r
505 } else if (Boolean.FALSE.toString().equalsIgnoreCase(param.getParamValue().trim())) {
\r
506 param.setParamValue(BOOLEAN_FALSE_VALUE);
\r
512 protected NetConfResponse getEmptyResponse() {
\r
513 NetConfResponse response = new NetConfResponse();
\r
514 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("0");
\r
515 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
516 errorCode.setFaultCode("0");
\r
517 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
518 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
519 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
520 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
521 response.setErrorCode(errorCode);
\r
525 protected NetConfResponse getTimeOutResponse() {
\r
526 // prepare timeout error response
\r
527 NetConfResponse timeOutErrorResponse = new NetConfResponse();
\r
528 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
529 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");
\r
531 errorCode.setFaultCode("8006");
\r
532 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
533 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
534 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
535 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
536 timeOutErrorResponse.setErrorCode(errorCode);
\r
537 timeOutErrorResponse.setErrorMessage("TR069 device request has been timed out.");
\r
538 return timeOutErrorResponse;
\r
541 protected NetConfResponse getErrorResponse(String errCode, String errorMsg) {
\r
542 NetConfResponse errorResponse = new NetConfResponse();
\r
543 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
544 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");
\r
545 if (errorCodeMetaData != null) {
\r
546 errorCode.setFaultCode(errCode);
\r
547 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
548 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
549 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
550 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
552 errorResponse.setErrorCode(errorCode);
\r
553 errorResponse.setErrorMessage(errorMsg);
\r
554 return errorResponse;
\r
557 protected NetConfResponse getOperationAbortedResponse(String errorMessage) {
\r
558 // prepare timeout error response
\r
559 NetConfResponse timeOutErrorResponse = new NetConfResponse();
\r
560 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
561 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");
\r
562 if (errorCodeMetaData != null) {
\r
563 errorCode.setFaultCode("8002");
\r
564 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
565 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
566 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
567 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
569 timeOutErrorResponse.setErrorCode(errorCode);
\r
570 timeOutErrorResponse.setErrorMessage(errorMessage);
\r
571 return timeOutErrorResponse;
\r
574 public List<ParameterDTO> filteredSetParameters(List<ParameterDTO> parameters) {
\r
575 List<ParameterDTO> result = new ArrayList<>();
\r
576 for (ParameterDTO param : parameters) {
\r
577 MOMetaData metaData = metaDataUtil.getMetaDataByNetConfName(param.getParamName());
\r
578 if (null != metaData && !metaData.isReadOnly()) {
\r
579 String tr069MoName =
\r
580 MOMetaDataUtil.getTR69MOByReplacingIndexes(param.getParamName(), metaData.getMoName());
\r
581 param.setDataType(metaData.getDataType());
\r
582 param.setParamName(tr069MoName);
\r
589 protected List<ParameterDTO> filteredGetParameters(List<ParameterDTO> parameters) {
\r
591 return metaDataUtil.getSupportedChildParameters(parameters);
\r
595 public boolean handelRegisterEvent(NetConfServerDetails request) {
\r
596 LOG.debug("processing the handelRegisterEvent started");
\r
597 boolean result = false;
\r
599 vesnotiSender.sendNotification(null, request);
\r
600 } catch (Exception e) {
\r
601 LOG.error("processing the handelRegisterEvent exception occurred");
\r
604 LOG.debug("processing the handelRegisterEvent completed");
\r
608 protected static String getDownloadFileURI(String filepath) {
\r
610 if (filepath.contains("@") && filepath.contains("//")) {
\r
611 String[] str = filepath.split("@");
\r
612 String[] strForUserName = str[0].split("//");
\r
613 if (str.length > 1) {
\r
614 String Url = strForUserName[0] + "//" + str[1];
\r
621 protected static String getDownloadUserName(String filepath) {
\r
623 if (filepath.contains("@") && filepath.contains("//")) {
\r
624 String[] str = filepath.split("@");
\r
625 String[] strForUserName = str[0].split("//");
\r
626 if (strForUserName.length > 1)
\r
627 return strForUserName[1];
\r
632 protected boolean isAdminStateOverriden(List<ParameterDTO> paramList) {
\r
633 for (ParameterDTO paramDTO : paramList) {
\r
634 if (paramDTO.getParamName().contains(MapperConstants.ADMIN_STATE)
\r
635 || paramDTO.getParamName().contains(MapperConstants.ADMIN_STATUS)) {
\r
642 protected void convertResposeToSPVResponse(DeviceRPCResponse deviceRPCResponse) {
\r
643 if (null == deviceRPCResponse) {
\r
647 OperationResponse operationResponse = new SetParameterValueResponse();
\r
648 operationResponse.setParameterDTOs(new ArrayList<ParameterDTO>());
\r
650 if (null == deviceRPCResponse.getFaultKey()) {
\r
651 operationResponse.setStatus(MapperConstants.RPC_SUCCESS_CODE);
\r
653 operationResponse.setStatus(MapperConstants.RPC_FAILED_CODE);
\r
656 deviceRPCResponse.setOperationResponse(operationResponse);
\r