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
25 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;
\r
26 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
\r
27 import org.commscope.tr069adapter.acs.common.OperationOptions;
\r
28 import org.commscope.tr069adapter.acs.common.ParameterDTO;
\r
29 import org.commscope.tr069adapter.acs.common.dto.TR069DeviceDetails;
\r
30 import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;
\r
31 import org.commscope.tr069adapter.acs.common.dto.TR069OperationDetails;
\r
32 import org.commscope.tr069adapter.mapper.MOMetaData;
\r
33 import org.commscope.tr069adapter.mapper.dao.DeviceOperationsDAO;
\r
34 import org.commscope.tr069adapter.mapper.entity.DeviceOperationDetails;
\r
35 import org.commscope.tr069adapter.mapper.model.ErrorCodeDetails;
\r
36 import org.commscope.tr069adapter.mapper.model.NetConfRequest;
\r
37 import org.commscope.tr069adapter.mapper.model.NetConfResponse;
\r
38 import org.commscope.tr069adapter.mapper.model.NetConfServerDetails;
\r
39 import org.commscope.tr069adapter.mapper.netconf.NetConfRequestHandler;
\r
40 import org.commscope.tr069adapter.mapper.sync.SynchronizedRequestHandler;
\r
41 import org.commscope.tr069adapter.mapper.util.ErrorCodeUtil;
\r
42 import org.commscope.tr069adapter.mapper.util.FirwareUpgradeStatus;
\r
43 import org.commscope.tr069adapter.mapper.util.MOMetaDataUtil;
\r
44 import org.commscope.tr069adapter.mapper.util.MapperConstants;
\r
45 import org.commscope.tr069adapter.mapper.util.MapperValidator;
\r
46 import org.commscope.tr069adapter.mapper.util.NetconfToTr069MapperUtil;
\r
47 import org.commscope.tr069adapter.mapper.ves.VESNotificationSender;
\r
48 import org.slf4j.Logger;
\r
49 import org.slf4j.LoggerFactory;
\r
50 import org.springframework.beans.factory.annotation.Autowired;
\r
51 import org.springframework.stereotype.Component;
\r
52 import org.springframework.util.StringUtils;
\r
53 import org.w3c.dom.Document;
\r
54 import org.w3c.dom.Element;
\r
57 public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
\r
59 private static final Logger LOG = LoggerFactory.getLogger(NetConfRequestHandlerImpl.class);
\r
60 private static final String BOOLEAN_TRUE_VALUE = "1";
\r
61 private static final String BOOLEAN_FALSE_VALUE = "0";
\r
62 private static final String BOOLEAN_DATA_TYPE = "boolean";
\r
65 SynchronizedRequestHandler syncHandler;
\r
68 NetconfToTr069MapperUtil mapperUtil;
\r
71 MOMetaDataUtil metaDataUtil;
\r
74 private ErrorCodeUtil errorCodeUtil;
\r
77 VESNotificationSender vesnotiSender;
\r
80 DeviceOperationsDAO deviceOperDAO;
\r
83 public NetConfResponse handleSetConfigRequest(NetConfRequest netConfRequest) {
\r
84 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
85 NetConfResponse response = null;
\r
86 DeviceRPCRequest deviceRPCRequest = NetconfToTr069MapperUtil.prepareTR069Request(
\r
87 netConfRequest.getDeviceId(), el, "config", TR069OperationCode.SET_PARAMETER_VALUES);
\r
89 if (deviceRPCRequest == null) {
\r
90 LOG.debug("There are no supported device parameters found for edit-config.");
\r
91 return getEmptyResponse();
\r
93 List<ParameterDTO> requestParams = deviceRPCRequest.getOpDetails().getParmeters();
\r
94 List<ParameterDTO> filteredParams = new ArrayList<>();
\r
95 List<ParameterDTO> vesRequestParams = new ArrayList<>();
\r
97 if (null != requestParams) {
\r
98 for (ParameterDTO param : requestParams) {
\r
99 if (null == param.getParamValue() || StringUtils.isEmpty(param.getParamValue())) {
\r
102 if (isVesNotificationRequest(param)) {
\r
103 vesRequestParams.add(param);
\r
105 filteredParams.add(param);
\r
107 deviceRPCRequest.getOpDetails().setParmeters(filteredParams);
\r
110 if (deviceRPCRequest.getOpDetails() == null
\r
111 || deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {
\r
112 LOG.debug("There are no device parameters found for edit-config.");
\r
113 return getEmptyResponse();
\r
114 } else if (deviceRPCRequest.getOpDetails() != null) {
\r
115 deviceRPCRequest.getOpDetails()
\r
116 .setParmeters(filteredSetParameters(deviceRPCRequest.getOpDetails().getParmeters()));
\r
117 if (deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {
\r
118 LOG.debug("There are no supported device parameters found for edit-config.");
\r
119 return getEmptyResponse();
\r
123 handleBooleanParametersReverse(deviceRPCRequest.getOpDetails().getParmeters());
\r
124 LOG.debug("Prepared NBI request for edit-config {}", deviceRPCRequest);
\r
126 DeviceRPCResponse deviceRPCResponseVes = null;
\r
127 List<ParameterDTO> allParamList = deviceRPCRequest.getOpDetails().getParmeters();
\r
129 if (!vesRequestParams.isEmpty()) {
\r
130 if (!MapperValidator.isCountDownTimerValid(vesRequestParams)) {
\r
131 return getErrorResponse(MapperConstants.INVALID_PARAM_VAL_ERROR_CODE,
\r
132 MapperConstants.INVALID_COUNT_DOWN_TIMER_MSG);
\r
135 deviceRPCRequest.getOpDetails().setParmeters(vesRequestParams);
\r
136 deviceRPCResponseVes = vesnotiSender.sendEditConfigNotification(deviceRPCRequest);
\r
138 if (null == deviceRPCResponseVes) {
\r
139 return getTimeOutResponse();
\r
143 allParamList.removeAll(vesRequestParams);
\r
145 DeviceRPCResponse deviceRPCResponseDevice = null;
\r
146 if (null != allParamList && !allParamList.isEmpty()) {
\r
147 deviceRPCRequest.getOpDetails().setParmeters(allParamList);
\r
148 deviceRPCResponseDevice = syncHandler.performDeviceOperation(deviceRPCRequest);
\r
150 if (null == deviceRPCResponseDevice) {
\r
151 return getTimeOutResponse();
\r
155 DeviceRPCResponse deviceRPCResponse =
\r
156 mergeSetConfigDeviceRPCResponse(deviceRPCResponseVes, deviceRPCResponseDevice);
\r
157 if (null == deviceRPCResponse) {
\r
158 return getTimeOutResponse();
\r
160 response = mapperUtil.getNetconfResponse(deviceRPCResponse, false);
\r
165 public NetConfResponse handleDelConfigRequest(NetConfRequest netConfRequest) {
\r
166 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
167 NetConfResponse response = null;
\r
168 DeviceRPCRequest request = NetconfToTr069MapperUtil.prepareTR069Request(
\r
169 netConfRequest.getDeviceId(), el, "config", TR069OperationCode.DELETE_OBJECT);
\r
171 if (request == null) {
\r
172 LOG.debug("There are no supported device parameters found for delete-config.");
\r
173 return getEmptyResponse();
\r
176 List<ParameterDTO> requestParams = request.getOpDetails().getParmeters();
\r
177 List<ParameterDTO> filteredParams = new ArrayList<>();
\r
178 if (null != requestParams) {
\r
179 for (ParameterDTO param : requestParams) {
\r
180 filteredParams.add(param);
\r
182 request.getOpDetails().setParmeters(filteredParams);
\r
185 if (request.getOpDetails() == null || request.getOpDetails().getParmeters().isEmpty()) {
\r
186 LOG.debug("There are no device parameters found for delete-config.");
\r
187 return getEmptyResponse();
\r
188 } else if (request.getOpDetails() != null) {
\r
189 request.getOpDetails()
\r
190 .setParmeters(filteredSetParameters(request.getOpDetails().getParmeters()));
\r
191 if (request.getOpDetails().getParmeters().isEmpty()) {
\r
192 LOG.debug("There are no supported device parameters found for delete-config.");
\r
193 return getEmptyResponse();
\r
196 LOG.debug("Prepared NBI request for delete-config {}", request);
\r
198 DeviceRPCResponse opResult;
\r
199 opResult = syncHandler.performDeviceOperation(request);
\r
200 if (null == opResult) {
\r
201 return getTimeOutResponse();
\r
203 response = mapperUtil.getNetconfResponse(opResult, false);
\r
208 public NetConfResponse handleGetRequest(NetConfRequest netConfRequest) {
\r
209 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
210 NetConfResponse response = null;
\r
211 DeviceRPCRequest request = NetconfToTr069MapperUtil.prepareTR069Request(
\r
212 netConfRequest.getDeviceId(), el, "filter", TR069OperationCode.GET_PARAMETER_VALUES);
\r
214 if (request == null || request.getOpDetails() == null
\r
215 || request.getOpDetails().getParmeters().isEmpty()) {
\r
216 LOG.debug("There are no device parameters found for get.");
\r
217 return getEmptyResponse();
\r
218 } else if (request.getOpDetails() != null) {
\r
220 request.getOpDetails()
\r
221 .setParmeters(filteredGetParameters(request.getOpDetails().getParmeters()));
\r
223 if (request.getOpDetails().getParmeters().isEmpty()) {
\r
224 LOG.debug("There are no supported device parameters found for get.");
\r
225 return getEmptyResponse();
\r
228 LOG.debug("Prepared NBI request for get {}", request);
\r
230 DeviceRPCResponse opResult;
\r
231 opResult = syncHandler.performDeviceOperation(request);
\r
232 if (null == opResult) {
\r
233 return getTimeOutResponse();
\r
235 response = mapperUtil.getNetconfResponse(opResult, false);
\r
240 public NetConfResponse handleGetConfigRequest(NetConfRequest netConfRequest) {
\r
241 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
242 NetConfResponse response = null;
\r
243 List<ParameterDTO> vesRequestParams = new ArrayList<>();
\r
245 boolean isSoftwareInventory = false;
\r
246 if (netConfRequest.getRequestXml().contains("software-inventory")) {
\r
247 LOG.info("XML Contains software-inventory");
\r
248 isSoftwareInventory = true;
\r
251 DeviceRPCRequest request = NetconfToTr069MapperUtil.prepareTR069Request(
\r
252 netConfRequest.getDeviceId(), el, "filter", TR069OperationCode.GET_PARAMETER_VALUES);
\r
254 if (request == null || request.getOpDetails() == null
\r
255 || request.getOpDetails().getParmeters().isEmpty()) {
\r
256 LOG.debug("There are no device parameters found for get-config.");
\r
257 return getEmptyResponse();
\r
258 } else if (request.getOpDetails() != null) {
\r
259 request.getOpDetails()
\r
260 .setParmeters(filteredGetParameters(request.getOpDetails().getParmeters()));
\r
262 if (request.getOpDetails().getParmeters().isEmpty()) {
\r
263 LOG.debug("There are no supported device parameters found for get-config.");
\r
264 return getEmptyResponse();
\r
266 for (ParameterDTO param : request.getOpDetails().getParmeters()) {
\r
267 if (isVesNotificationRequest(param)) {
\r
268 vesRequestParams.add(param);
\r
272 LOG.debug("Prepared NBI request for get-config {}", request);
\r
274 DeviceRPCResponse opResultVes = null;
\r
275 List<ParameterDTO> allParamList = request.getOpDetails().getParmeters();
\r
277 if (!vesRequestParams.isEmpty()) {
\r
278 request.getOpDetails().setParmeters(vesRequestParams);
\r
279 opResultVes = vesnotiSender.sendGetConfigNotification(request);
\r
281 if (null == opResultVes) {
\r
282 return getTimeOutResponse();
\r
287 allParamList.removeAll(vesRequestParams);
\r
289 DeviceRPCResponse opResultDevice = null;
\r
290 if (!allParamList.isEmpty()) {
\r
291 request.getOpDetails().setParmeters(allParamList);
\r
292 opResultDevice = syncHandler.performDeviceOperation(request);
\r
294 if (null == opResultDevice) {
\r
295 return getTimeOutResponse();
\r
299 DeviceRPCResponse opResult = mergeGetConfigDeviceRPCResponse(opResultVes, opResultDevice);
\r
301 if (null == opResult) {
\r
302 return getTimeOutResponse();
\r
304 LOG.debug("Received GPV response : FaultKey = " + opResult.getFaultKey() + ", FaultString = "
\r
305 + opResult.getFaultString() + ", Parameters :"
\r
306 + opResult.getOperationResponse().getParameterDTOs());
\r
307 if (null != opResult.getOperationResponse().getParameterDTOs())
\r
308 handleBooleanParameters(opResult.getOperationResponse().getParameterDTOs());
\r
310 if (isSoftwareInventory) {
\r
311 response = mapperUtil.getNetconfResponseForSoftwareInventory(opResult);
\r
313 response = mapperUtil.getNetconfResponse(opResult, false);
\r
316 if (opResult.getFaultKey() != null && opResult.getFaultKey().equalsIgnoreCase("9005")) {
\r
317 // check for tabular
\r
318 LOG.debug("Tabualr Entry not exist in the device; we need to add it now");
\r
319 MOMetaData data = metaDataUtil
\r
320 .getMetaDataByTR69Name(request.getOpDetails().getParmeters().get(0).getParamName());
\r
321 if (data.isTabluarObj()) {
\r
322 return getEmptyResponse();
\r
330 public NetConfResponse handleSWDownloadRequest(NetConfRequest request) {
\r
331 LOG.debug("request received fro sw-download");
\r
332 Document d1 = NetconfToTr069MapperUtil.convertStringToDocumentXml(request.getRequestXml());
\r
333 NetConfResponse response = null;
\r
334 Map<String, String> map =
\r
335 NetconfToTr069MapperUtil.extractRequestParamters(d1, "rpc", "software-download");
\r
336 if (map == null || map.size() <= 0) {
\r
337 LOG.debug("There are no device parameters found for get.");
\r
338 return getEmptyResponse();
\r
341 TR069OperationDetails opDetails = new TR069OperationDetails();
\r
342 DeviceRPCRequest deviceRPCRequest = new DeviceRPCRequest();
\r
343 TR069DeviceDetails tr069DeviceDetails = new TR069DeviceDetails();
\r
344 tr069DeviceDetails.setDeviceId(request.getDeviceId());
\r
345 deviceRPCRequest.setOpDetails(opDetails);
\r
346 deviceRPCRequest.setDeviceDetails(tr069DeviceDetails);
\r
347 OperationOptions options = new OperationOptions();
\r
348 options.setExecutionTimeout(60l);
\r
349 deviceRPCRequest.setOptions(options);
\r
350 String fileName = map.get("rpc.software-download.remote-file-path");
\r
351 String password = map.get("rpc.software-download.password.password");
\r
353 if (fileName == null || password == null || getDownloadFileURI(fileName) == null
\r
354 || getDownloadUserName(fileName) == null) {
\r
356 "remote-file-path value is not as per yang model reference. Allowed pattern sftp://<username>@<host>[:<port>]/path");
\r
357 return getOperationAbortedResponse(
\r
358 "remote-file-path value is not as per yang model reference. Allowed pattern sftp://<username>@<host>[:<port>]/path");
\r
361 List<ParameterDTO> paramDTOList = new ArrayList<>();
\r
362 paramDTOList.add(new ParameterDTO("FileType", "1 Firmware Upgrade Image"));
\r
363 paramDTOList.add(new ParameterDTO("URL", getDownloadFileURI(fileName)));
\r
364 paramDTOList.add(new ParameterDTO("Username", getDownloadUserName(fileName)));
\r
365 paramDTOList.add(new ParameterDTO("Password", password));
\r
366 paramDTOList.add(new ParameterDTO("FileSize", "0"));
\r
367 paramDTOList.add(new ParameterDTO("TargetFileName", ""));
\r
368 paramDTOList.add(new ParameterDTO("DelaySeconds", "1"));
\r
369 paramDTOList.add(new ParameterDTO("SuccessURL", ""));
\r
370 paramDTOList.add(new ParameterDTO("FailureURL", ""));
\r
372 deviceRPCRequest.getOpDetails().setParmeters(paramDTOList);
\r
373 deviceRPCRequest.getOpDetails().setOpCode(TR069OperationCode.DOWNLOAD);
\r
375 LOG.debug("Prepared NBI request for download " + deviceRPCRequest);
\r
377 DeviceOperationDetails fwDetails = deviceOperDAO.findByDeviceId(request.getDeviceId());
\r
378 if (fwDetails == null) {
\r
379 String errorMsg = "TR069 device request has been aborted,due to device not identified";
\r
380 return getOperationAbortedResponse(errorMsg);
\r
383 if (fwDetails.getDownLoadStatus() != FirwareUpgradeStatus.DOWNLOAD_INTIATED.getStatus()
\r
384 && fwDetails.getDownLoadStatus() != FirwareUpgradeStatus.DOWNLOAD_COMPLETED.getStatus()) {
\r
386 LOG.debug("persisting the fw details " + fwDetails.toString());
\r
388 DeviceRPCResponse opResult;
\r
389 opResult = syncHandler.performDeviceOperation(deviceRPCRequest);
\r
390 if (null == opResult) {
\r
391 return getTimeOutResponse();
\r
393 fwDetails.setFileName(fileName);
\r
394 fwDetails.setDownLoadStatus(FirwareUpgradeStatus.DOWNLOAD_INTIATED.getStatus());
\r
395 deviceOperDAO.save(fwDetails);
\r
396 ArrayList<ParameterDTO> responseParamDTOList = new ArrayList<>();
\r
398 if (opResult.getOperationResponse().getStatus() == 1) {
\r
399 responseParamDTOList.add(new ParameterDTO("rpc-reply.ns1:status", "STARTED"));
\r
401 responseParamDTOList.add(new ParameterDTO("rpc-reply.ns1:status", "FAILED"));
\r
402 responseParamDTOList
\r
403 .add(new ParameterDTO("rpc-reply.ns1:error-message", opResult.getFaultString()));
\r
405 responseParamDTOList.add(new ParameterDTO("rpc-reply.ns1:notification-timeout", "1200"));
\r
407 opResult.getOperationResponse().setParameterDTOs(responseParamDTOList);
\r
408 response = mapperUtil.getNetconfResponse(opResult, true);
\r
410 LOG.debug("update the status for fw details " + fwDetails.toString());
\r
412 LOG.debug("FirmWare Upgrade is in progress");
\r
413 String errorMsg = "TR069 device request has been aborted as Firmware Upgrade is inProgress";
\r
414 return getOperationAbortedResponse(errorMsg);
\r
420 private DeviceRPCResponse mergeGetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,
\r
421 DeviceRPCResponse opResultDevice) {
\r
422 if (null == opResultVes) {
\r
423 return opResultDevice;
\r
426 if (null == opResultDevice) {
\r
427 return opResultVes;
\r
430 if (null != opResultVes.getFaultKey()
\r
431 && !opResultVes.getFaultKey().equals(MapperConstants.RPC_SUCCESS)) {
\r
432 return opResultVes;
\r
433 } else if (null != opResultDevice.getFaultKey()
\r
434 && !opResultDevice.getFaultKey().equals(MapperConstants.RPC_SUCCESS)) {
\r
435 return opResultDevice;
\r
438 opResultDevice.getOperationResponse().getParameterDTOs()
\r
439 .addAll(opResultVes.getOperationResponse().getParameterDTOs());
\r
440 return opResultDevice;
\r
443 private DeviceRPCResponse mergeSetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,
\r
444 DeviceRPCResponse opResultDevice) {
\r
445 if (null == opResultVes) {
\r
446 return opResultDevice;
\r
449 if (null == opResultDevice) {
\r
450 return opResultVes;
\r
453 return opResultDevice;
\r
456 private boolean isVesNotificationRequest(ParameterDTO param) {
\r
457 if (null == param.getParamName() || param.getParamName().isEmpty()) {
\r
461 if (param.getParamName().toLowerCase().contains(MapperConstants.HEART_BEAT_PERIOD.toLowerCase())
\r
462 || param.getParamName().toLowerCase()
\r
463 .contains(MapperConstants.COUNT_DOWN_TIMER.toLowerCase())
\r
464 || param.getParamName().toLowerCase().contains(MapperConstants.HEART_BEAT.toLowerCase())) {
\r
471 private void handleBooleanParameters(List<ParameterDTO> parameterDTOs) {
\r
473 for (ParameterDTO param : parameterDTOs) {
\r
474 MOMetaData metaData = metaDataUtil.getMetaDataByTR69Name(param.getParamName());
\r
475 if (null != metaData && BOOLEAN_DATA_TYPE.equalsIgnoreCase(metaData.getDataType())) {
\r
476 if (BOOLEAN_TRUE_VALUE.equalsIgnoreCase(param.getParamValue().trim())) {
\r
477 param.setParamValue(Boolean.TRUE.toString());
\r
478 } else if (BOOLEAN_FALSE_VALUE.equalsIgnoreCase(param.getParamValue().trim())) {
\r
479 param.setParamValue(Boolean.FALSE.toString());
\r
485 private void handleBooleanParametersReverse(List<ParameterDTO> parameterDTOs) {
\r
487 for (ParameterDTO param : parameterDTOs) {
\r
488 MOMetaData metaData = metaDataUtil.getMetaDataByTR69Name(param.getParamName());
\r
489 if (null != metaData && BOOLEAN_DATA_TYPE.equalsIgnoreCase(metaData.getDataType())) {
\r
490 if (Boolean.TRUE.toString().equalsIgnoreCase(param.getParamValue().trim())) {
\r
491 param.setParamValue(BOOLEAN_TRUE_VALUE);
\r
492 } else if (Boolean.FALSE.toString().equalsIgnoreCase(param.getParamValue().trim())) {
\r
493 param.setParamValue(BOOLEAN_FALSE_VALUE);
\r
499 private NetConfResponse getEmptyResponse() {
\r
500 NetConfResponse response = new NetConfResponse();
\r
501 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("0");
\r
502 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
503 errorCode.setFaultCode("0");
\r
504 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
505 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
506 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
507 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
508 response.setErrorCode(errorCode);
\r
512 private NetConfResponse getTimeOutResponse() {
\r
513 // prepare timeout error response
\r
514 NetConfResponse timeOutErrorResponse = new NetConfResponse();
\r
515 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
516 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");
\r
518 errorCode.setFaultCode("8006");
\r
519 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
520 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
521 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
522 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
523 timeOutErrorResponse.setErrorCode(errorCode);
\r
524 timeOutErrorResponse.setErrorMessage("TR069 device request has been timed out.");
\r
525 return timeOutErrorResponse;
\r
528 private NetConfResponse getErrorResponse(String errCode, String errorMsg) {
\r
529 NetConfResponse errorResponse = new NetConfResponse();
\r
530 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
531 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");
\r
532 if (errorCodeMetaData != null) {
\r
533 errorCode.setFaultCode(errCode);
\r
534 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
535 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
536 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
537 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
539 errorResponse.setErrorCode(errorCode);
\r
540 errorResponse.setErrorMessage(errorMsg);
\r
541 return errorResponse;
\r
544 private NetConfResponse getOperationAbortedResponse(String errorMessage) {
\r
545 // prepare timeout error response
\r
546 NetConfResponse timeOutErrorResponse = new NetConfResponse();
\r
547 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
548 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");
\r
549 if (errorCode != null) {
\r
550 errorCode.setFaultCode("8002");
\r
551 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
552 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
553 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
554 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
556 timeOutErrorResponse.setErrorCode(errorCode);
\r
557 timeOutErrorResponse.setErrorMessage(errorMessage);
\r
558 return timeOutErrorResponse;
\r
561 public List<ParameterDTO> filteredSetParameters(List<ParameterDTO> parameters) {
\r
562 List<ParameterDTO> result = new ArrayList<>();
\r
563 for (ParameterDTO param : parameters) {
\r
564 MOMetaData metaData = metaDataUtil.getMetaDataByNetConfName(param.getParamName());
\r
565 if (null != metaData && !metaData.isReadOnly()) {
\r
566 String tr069MoName =
\r
567 MOMetaDataUtil.getTR69MOByReplacingIndexes(param.getParamName(), metaData.getMoName());
\r
568 param.setDataType(metaData.getDataType());
\r
569 param.setParamName(tr069MoName);
\r
576 private List<ParameterDTO> filteredGetParameters(List<ParameterDTO> parameters) {
\r
578 return metaDataUtil.getSupportedChildParameters(parameters);
\r
582 public boolean handelRegisterEvent(NetConfServerDetails request) {
\r
583 LOG.debug("processing the handelRegisterEvent started");
\r
584 boolean result = false;
\r
586 vesnotiSender.sendNotification(null, request);
\r
587 } catch (Exception e) {
\r
588 LOG.error("processing the handelRegisterEvent exception occurred");
\r
591 LOG.debug("processing the handelRegisterEvent completed");
\r
595 private static String getDownloadFileURI(String filepath) {
\r
597 if (filepath.contains("@") && filepath.contains("//")) {
\r
598 String[] str = filepath.split("@");
\r
599 String[] strForUserName = str[0].split("//");
\r
600 if (str.length > 1) {
\r
601 String Url = strForUserName[0] + "//" + str[1];
\r
608 private static String getDownloadUserName(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 (strForUserName.length > 1)
\r
614 return strForUserName[1];
\r