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.model.VESNotificationResponse;
\r
42 import org.commscope.tr069adapter.mapper.netconf.NetConfRequestHandler;
\r
43 import org.commscope.tr069adapter.mapper.sync.SynchronizedRequestHandler;
\r
44 import org.commscope.tr069adapter.mapper.util.ErrorCodeUtil;
\r
45 import org.commscope.tr069adapter.mapper.util.FirwareUpgradeStatus;
\r
46 import org.commscope.tr069adapter.mapper.util.MOMetaDataUtil;
\r
47 import org.commscope.tr069adapter.mapper.util.MapperConstants;
\r
48 import org.commscope.tr069adapter.mapper.util.MapperValidator;
\r
49 import org.commscope.tr069adapter.mapper.util.NetconfToTr069MapperUtil;
\r
50 import org.commscope.tr069adapter.mapper.ves.VESNotificationSender;
\r
51 import org.slf4j.Logger;
\r
52 import org.slf4j.LoggerFactory;
\r
53 import org.springframework.beans.factory.annotation.Autowired;
\r
54 import org.springframework.http.HttpStatus;
\r
55 import org.springframework.stereotype.Component;
\r
56 import org.springframework.util.StringUtils;
\r
57 import org.w3c.dom.Document;
\r
58 import org.w3c.dom.Element;
\r
61 public class NetConfRequestHandlerImpl implements NetConfRequestHandler {
\r
63 private static final Logger LOG = LoggerFactory.getLogger(NetConfRequestHandlerImpl.class);
\r
64 private static final String BOOLEAN_TRUE_VALUE = "1";
\r
65 private static final String BOOLEAN_FALSE_VALUE = "0";
\r
66 private static final String BOOLEAN_DATA_TYPE = "boolean";
\r
69 SynchronizedRequestHandler syncHandler;
\r
72 NetconfToTr069MapperUtil mapperUtil;
\r
75 MOMetaDataUtil metaDataUtil;
\r
78 ErrorCodeUtil errorCodeUtil;
\r
81 VESNotificationSender vesnotiSender;
\r
84 DeviceOperationsDAO deviceOperDAO;
\r
87 public NetConfResponse handleSetConfigRequest(NetConfRequest netConfRequest) {
\r
88 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
89 NetConfResponse response = null;
\r
90 DeviceRPCRequest deviceRPCRequest = NetconfToTr069MapperUtil.prepareTR069Request(
\r
91 netConfRequest.getDeviceId(), el, "config", TR069OperationCode.SET_PARAMETER_VALUES);
\r
93 if (deviceRPCRequest == null) {
\r
94 LOG.debug("There are no supported device parameters found for edit-config.");
\r
95 return getEmptyResponse();
\r
97 List<ParameterDTO> requestParams = deviceRPCRequest.getOpDetails().getParmeters();
\r
98 List<ParameterDTO> filteredParams = new ArrayList<>();
\r
99 List<ParameterDTO> vesRequestParams = new ArrayList<>();
\r
101 if (null != requestParams) {
\r
102 for (ParameterDTO param : requestParams) {
\r
103 if (null == param.getParamValue() || StringUtils.isEmpty(param.getParamValue())) {
\r
106 if (isVesNotificationRequest(param)) {
\r
107 vesRequestParams.add(param);
\r
109 filteredParams.add(param);
\r
111 deviceRPCRequest.getOpDetails().setParmeters(filteredParams);
\r
114 if (deviceRPCRequest.getOpDetails() == null
\r
115 || deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {
\r
116 LOG.debug("There are no device parameters found for edit-config.");
\r
117 return getEmptyResponse();
\r
118 } else if (deviceRPCRequest.getOpDetails() != null) {
\r
119 deviceRPCRequest.getOpDetails()
\r
120 .setParmeters(filteredSetParameters(deviceRPCRequest.getOpDetails().getParmeters(),
\r
121 netConfRequest.getSwVersion(), netConfRequest.getHwVersion()));
\r
122 if (deviceRPCRequest.getOpDetails().getParmeters().isEmpty()) {
\r
123 LOG.debug("There are no supported device parameters found for edit-config.");
\r
124 return getEmptyResponse();
\r
128 handleBooleanParametersReverse(deviceRPCRequest.getOpDetails().getParmeters(),
\r
129 netConfRequest.getSwVersion(), netConfRequest.getHwVersion());
\r
130 LOG.debug("Prepared NBI request for edit-config {}", deviceRPCRequest);
\r
132 DeviceRPCResponse deviceRPCResponseVes = null;
\r
133 List<ParameterDTO> allParamList = deviceRPCRequest.getOpDetails().getParmeters();
\r
135 if (!vesRequestParams.isEmpty()) {
\r
136 if (!MapperValidator.isCountDownTimerValid(vesRequestParams)) {
\r
137 return getErrorResponse(MapperConstants.INVALID_PARAM_VAL_ERROR_CODE,
\r
138 MapperConstants.INVALID_COUNT_DOWN_TIMER_MSG);
\r
141 deviceRPCRequest.getOpDetails().setParmeters(vesRequestParams);
\r
142 deviceRPCResponseVes = vesnotiSender.sendEditConfigNotification(deviceRPCRequest);
\r
144 if (null == deviceRPCResponseVes) {
\r
145 return getTimeOutResponse();
\r
149 allParamList.removeAll(vesRequestParams);
\r
151 DeviceRPCResponse deviceRPCResponseDevice = null;
\r
152 if (null != allParamList && !allParamList.isEmpty()) {
\r
153 deviceRPCRequest.getOpDetails().setParmeters(allParamList);
\r
154 if (isAdminStateOverriden(allParamList)) {
\r
155 deviceRPCRequest.getOpDetails().setOpCode(CustomOperationCode.CONFIGURE_MULTIPLE_OBJECTS);
\r
156 TR069OperationDetails tr069OperationDetails =
\r
157 (TR069OperationDetails) deviceRPCRequest.getOpDetails();
\r
158 tr069OperationDetails.setModifyParamList(allParamList);
\r
159 tr069OperationDetails.setSetParamList(null);
\r
161 deviceRPCResponseDevice = syncHandler.performDeviceOperation(deviceRPCRequest);
\r
162 convertResposeToSPVResponse(deviceRPCResponseDevice);
\r
164 deviceRPCResponseDevice = syncHandler.performDeviceOperation(deviceRPCRequest);
\r
167 if (null == deviceRPCResponseDevice) {
\r
168 return getTimeOutResponse();
\r
172 DeviceRPCResponse deviceRPCResponse =
\r
173 mergeSetConfigDeviceRPCResponse(deviceRPCResponseVes, deviceRPCResponseDevice);
\r
174 if (null == deviceRPCResponse) {
\r
175 return getTimeOutResponse();
\r
177 response = mapperUtil.getNetconfResponse(deviceRPCResponse, netConfRequest.getSwVersion(),
\r
178 netConfRequest.getHwVersion(), false);
\r
183 public NetConfResponse handleDelConfigRequest(NetConfRequest netConfRequest) {
\r
184 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
185 NetConfResponse response = null;
\r
186 DeviceRPCRequest request = NetconfToTr069MapperUtil.prepareTR069Request(
\r
187 netConfRequest.getDeviceId(), el, "config", TR069OperationCode.DELETE_OBJECT);
\r
189 if (request == null) {
\r
190 LOG.debug("There are no supported device parameters found for delete-config.");
\r
191 return getEmptyResponse();
\r
194 List<ParameterDTO> requestParams = request.getOpDetails().getParmeters();
\r
195 List<ParameterDTO> filteredParams = new ArrayList<>();
\r
196 if (null != requestParams) {
\r
197 for (ParameterDTO param : requestParams) {
\r
198 filteredParams.add(param);
\r
200 request.getOpDetails().setParmeters(filteredParams);
\r
203 if (request.getOpDetails() == null || request.getOpDetails().getParmeters().isEmpty()) {
\r
204 LOG.debug("There are no device parameters found for delete-config.");
\r
205 return getEmptyResponse();
\r
206 } else if (request.getOpDetails() != null) {
\r
207 request.getOpDetails()
\r
208 .setParmeters(filteredSetParameters(request.getOpDetails().getParmeters(),
\r
209 netConfRequest.getSwVersion(), netConfRequest.getHwVersion()));
\r
210 if (request.getOpDetails().getParmeters().isEmpty()) {
\r
211 LOG.debug("There are no supported device parameters found for delete-config.");
\r
212 return getEmptyResponse();
\r
215 LOG.debug("Prepared NBI request for delete-config {}", request);
\r
217 DeviceRPCResponse opResult;
\r
218 opResult = syncHandler.performDeviceOperation(request);
\r
219 if (null == opResult) {
\r
220 return getTimeOutResponse();
\r
222 response = mapperUtil.getNetconfResponse(opResult, netConfRequest.getSwVersion(),
\r
223 netConfRequest.getHwVersion(), false);
\r
228 public NetConfResponse handleGetRequest(NetConfRequest netConfRequest) {
\r
229 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
230 NetConfResponse response = null;
\r
231 DeviceRPCRequest request = NetconfToTr069MapperUtil.prepareTR069Request(
\r
232 netConfRequest.getDeviceId(), el, "filter", TR069OperationCode.GET_PARAMETER_VALUES);
\r
234 if (request == null || request.getOpDetails() == null
\r
235 || request.getOpDetails().getParmeters().isEmpty()) {
\r
236 LOG.debug("There are no device parameters found for get.");
\r
237 return getEmptyResponse();
\r
238 } else if (request.getOpDetails() != null) {
\r
240 request.getOpDetails()
\r
241 .setParmeters(filteredGetParameters(request.getOpDetails().getParmeters(),
\r
242 netConfRequest.getSwVersion(), netConfRequest.getHwVersion()));
\r
244 if (request.getOpDetails().getParmeters().isEmpty()) {
\r
245 LOG.debug("There are no supported device parameters found for get.");
\r
246 return getEmptyResponse();
\r
249 LOG.debug("Prepared NBI request for get {}", request);
\r
251 DeviceRPCResponse opResult;
\r
252 opResult = syncHandler.performDeviceOperation(request);
\r
253 if (null == opResult) {
\r
254 return getTimeOutResponse();
\r
256 response = mapperUtil.getNetconfResponse(opResult, netConfRequest.getSwVersion(),
\r
257 netConfRequest.getHwVersion(), false);
\r
262 public NetConfResponse handleGetConfigRequest(NetConfRequest netConfRequest) {
\r
263 Element el = NetconfToTr069MapperUtil.convertStringToDocument(netConfRequest.getRequestXml());
\r
264 NetConfResponse response = null;
\r
265 List<ParameterDTO> vesRequestParams = new ArrayList<>();
\r
267 boolean isSoftwareInventory = false;
\r
268 if (netConfRequest.getRequestXml().contains("software-inventory")) {
\r
269 LOG.info("XML Contains software-inventory");
\r
270 isSoftwareInventory = true;
\r
273 DeviceRPCRequest request = NetconfToTr069MapperUtil.prepareTR069Request(
\r
274 netConfRequest.getDeviceId(), el, "filter", TR069OperationCode.GET_PARAMETER_VALUES);
\r
276 if (request == null || request.getOpDetails() == null
\r
277 || request.getOpDetails().getParmeters().isEmpty()) {
\r
278 LOG.debug("There are no device parameters found for get-config.");
\r
279 return getEmptyResponse();
\r
280 } else if (request.getOpDetails() != null) {
\r
281 request.getOpDetails()
\r
282 .setParmeters(filteredGetParameters(request.getOpDetails().getParmeters(),
\r
283 netConfRequest.getSwVersion(), netConfRequest.getHwVersion()));
\r
285 if (request.getOpDetails().getParmeters().isEmpty()) {
\r
286 LOG.debug("There are no supported device parameters found for get-config.");
\r
287 return getEmptyResponse();
\r
289 for (ParameterDTO param : request.getOpDetails().getParmeters()) {
\r
290 if (isVesNotificationRequest(param)) {
\r
291 vesRequestParams.add(param);
\r
295 LOG.debug("Prepared NBI request for get-config {}", request);
\r
297 DeviceRPCResponse opResultVes = null;
\r
298 List<ParameterDTO> allParamList = request.getOpDetails().getParmeters();
\r
300 if (!vesRequestParams.isEmpty()) {
\r
301 request.getOpDetails().setParmeters(vesRequestParams);
\r
302 opResultVes = vesnotiSender.sendGetConfigNotification(request);
\r
304 if (null == opResultVes) {
\r
305 return getTimeOutResponse();
\r
310 allParamList.removeAll(vesRequestParams);
\r
312 DeviceRPCResponse opResultDevice = null;
\r
313 if (!allParamList.isEmpty()) {
\r
314 request.getOpDetails().setParmeters(allParamList);
\r
315 opResultDevice = syncHandler.performDeviceOperation(request);
\r
317 if (null == opResultDevice) {
\r
318 return getTimeOutResponse();
\r
322 DeviceRPCResponse opResult = mergeGetConfigDeviceRPCResponse(opResultVes, opResultDevice);
\r
324 if (null == opResult) {
\r
325 return getTimeOutResponse();
\r
327 LOG.debug("Received GPV response : FaultKey = " + opResult.getFaultKey() + ", FaultString = "
\r
328 + opResult.getFaultString() + ", Parameters :"
\r
329 + opResult.getOperationResponse().getParameterDTOs());
\r
330 if (null != opResult.getOperationResponse().getParameterDTOs())
\r
331 handleBooleanParameters(opResult.getOperationResponse().getParameterDTOs(),
\r
332 netConfRequest.getSwVersion(), netConfRequest.getHwVersion());
\r
334 if (isSoftwareInventory) {
\r
335 response = mapperUtil.getNetconfResponseForSoftwareInventory(opResult,
\r
336 netConfRequest.getSwVersion(), netConfRequest.getHwVersion());
\r
338 response = mapperUtil.getNetconfResponse(opResult, netConfRequest.getSwVersion(),
\r
339 netConfRequest.getHwVersion(), false);
\r
342 if (opResult.getFaultKey() != null && opResult.getFaultKey().equalsIgnoreCase("9005")) {
\r
343 // check for tabular
\r
344 LOG.debug("Tabualr Entry not exist in the device; we need to add it now");
\r
345 MOMetaData data = metaDataUtil.getMetaDataByTR69Name(
\r
346 request.getOpDetails().getParmeters().get(0).getParamName(),
\r
347 netConfRequest.getSwVersion(), netConfRequest.getHwVersion());
\r
348 if (data.isTabluarObj()) {
\r
349 return getEmptyResponse();
\r
357 public NetConfResponse handleSWDownloadRequest(NetConfRequest request) {
\r
358 LOG.debug("request received fro sw-download");
\r
359 Document d1 = NetconfToTr069MapperUtil.convertStringToDocumentXml(request.getRequestXml());
\r
360 NetConfResponse response = null;
\r
361 Map<String, String> map =
\r
362 NetconfToTr069MapperUtil.extractRequestParamters(d1, "rpc", "software-download");
\r
363 if (map == null || map.size() <= 0) {
\r
364 LOG.debug("There are no device parameters found for get.");
\r
365 return getEmptyResponse();
\r
368 TR069OperationDetails opDetails = new TR069OperationDetails();
\r
369 DeviceRPCRequest deviceRPCRequest = new DeviceRPCRequest();
\r
370 TR069DeviceDetails tr069DeviceDetails = new TR069DeviceDetails();
\r
371 tr069DeviceDetails.setDeviceId(request.getDeviceId());
\r
372 deviceRPCRequest.setOpDetails(opDetails);
\r
373 deviceRPCRequest.setDeviceDetails(tr069DeviceDetails);
\r
374 OperationOptions options = new OperationOptions();
\r
375 options.setExecutionTimeout(60l);
\r
376 deviceRPCRequest.setOptions(options);
\r
377 String fileName = map.get("rpc.software-download.remote-file-path");
\r
378 String password = map.get("rpc.software-download.password.password");
\r
380 if (fileName == null || password == null || getDownloadFileURI(fileName) == null
\r
381 || getDownloadUserName(fileName) == null) {
\r
383 "remote-file-path value is not as per yang model reference. Allowed pattern sftp://<username>@<host>[:<port>]/path");
\r
384 return getOperationAbortedResponse(
\r
385 "remote-file-path value is not as per yang model reference. Allowed pattern sftp://<username>@<host>[:<port>]/path");
\r
388 List<ParameterDTO> paramDTOList = new ArrayList<>();
\r
389 paramDTOList.add(new ParameterDTO("FileType", "1 Firmware Upgrade Image"));
\r
390 paramDTOList.add(new ParameterDTO("URL", getDownloadFileURI(fileName)));
\r
391 paramDTOList.add(new ParameterDTO("Username", getDownloadUserName(fileName)));
\r
392 paramDTOList.add(new ParameterDTO("Password", password));
\r
393 paramDTOList.add(new ParameterDTO("FileSize", "0"));
\r
394 paramDTOList.add(new ParameterDTO("TargetFileName", ""));
\r
395 paramDTOList.add(new ParameterDTO("DelaySeconds", "1"));
\r
396 paramDTOList.add(new ParameterDTO("SuccessURL", ""));
\r
397 paramDTOList.add(new ParameterDTO("FailureURL", ""));
\r
399 deviceRPCRequest.getOpDetails().setParmeters(paramDTOList);
\r
400 deviceRPCRequest.getOpDetails().setOpCode(TR069OperationCode.DOWNLOAD);
\r
402 LOG.debug("Prepared NBI request for download " + deviceRPCRequest);
\r
404 DeviceOperationDetails fwDetails = deviceOperDAO.findByDeviceId(request.getDeviceId());
\r
405 if (fwDetails == null) {
\r
406 String errorMsg = "TR069 device request has been aborted,due to device not identified";
\r
407 return getOperationAbortedResponse(errorMsg);
\r
410 if (fwDetails.getDownLoadStatus() != FirwareUpgradeStatus.DOWNLOAD_INTIATED.getStatus()
\r
411 && fwDetails.getDownLoadStatus() != FirwareUpgradeStatus.DOWNLOAD_COMPLETED.getStatus()) {
\r
413 LOG.debug("persisting the fw details " + fwDetails.toString());
\r
415 DeviceRPCResponse opResult;
\r
416 opResult = syncHandler.performDeviceOperation(deviceRPCRequest);
\r
417 if (null == opResult) {
\r
418 return getTimeOutResponse();
\r
420 fwDetails.setFileName(fileName);
\r
421 fwDetails.setDownLoadStatus(FirwareUpgradeStatus.DOWNLOAD_INTIATED.getStatus());
\r
422 deviceOperDAO.save(fwDetails);
\r
423 ArrayList<ParameterDTO> responseParamDTOList = new ArrayList<>();
\r
425 if (opResult.getOperationResponse().getStatus() == 1) {
\r
426 responseParamDTOList.add(new ParameterDTO("rpc-reply.ns1:status", "STARTED"));
\r
428 responseParamDTOList.add(new ParameterDTO("rpc-reply.ns1:status", "FAILED"));
\r
429 responseParamDTOList
\r
430 .add(new ParameterDTO("rpc-reply.ns1:error-message", opResult.getFaultString()));
\r
432 responseParamDTOList.add(new ParameterDTO("rpc-reply.ns1:notification-timeout", "1200"));
\r
434 opResult.getOperationResponse().setParameterDTOs(responseParamDTOList);
\r
435 response = mapperUtil.getNetconfResponse(opResult, request.getSwVersion(),
\r
436 request.getHwVersion(), true);
\r
438 LOG.debug("update the status for fw details " + fwDetails.toString());
\r
440 LOG.debug("FirmWare Upgrade is in progress");
\r
441 String errorMsg = "TR069 device request has been aborted as Firmware Upgrade is inProgress";
\r
442 return getOperationAbortedResponse(errorMsg);
\r
448 protected DeviceRPCResponse mergeGetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,
\r
449 DeviceRPCResponse opResultDevice) {
\r
450 if (null == opResultVes) {
\r
451 return opResultDevice;
\r
454 if (null == opResultDevice) {
\r
455 return opResultVes;
\r
458 if (null != opResultVes.getFaultKey()
\r
459 && !opResultVes.getFaultKey().equals(MapperConstants.RPC_SUCCESS)) {
\r
460 return opResultVes;
\r
461 } else if (null != opResultDevice.getFaultKey()
\r
462 && !opResultDevice.getFaultKey().equals(MapperConstants.RPC_SUCCESS)) {
\r
463 return opResultDevice;
\r
466 opResultDevice.getOperationResponse().getParameterDTOs()
\r
467 .addAll(opResultVes.getOperationResponse().getParameterDTOs());
\r
468 return opResultDevice;
\r
471 protected DeviceRPCResponse mergeSetConfigDeviceRPCResponse(DeviceRPCResponse opResultVes,
\r
472 DeviceRPCResponse opResultDevice) {
\r
473 if (null == opResultVes) {
\r
474 return opResultDevice;
\r
477 if (null == opResultDevice) {
\r
478 return opResultVes;
\r
481 return opResultDevice;
\r
484 protected boolean isVesNotificationRequest(ParameterDTO param) {
\r
485 if (null == param.getParamName() || param.getParamName().isEmpty()) {
\r
489 if (param.getParamName().toLowerCase().contains(MapperConstants.HEART_BEAT_PERIOD.toLowerCase())
\r
490 || param.getParamName().toLowerCase()
\r
491 .contains(MapperConstants.COUNT_DOWN_TIMER.toLowerCase())
\r
492 || param.getParamName().toLowerCase().contains(MapperConstants.HEART_BEAT.toLowerCase())) {
\r
499 protected void handleBooleanParameters(List<ParameterDTO> parameterDTOs, String swVersion,
\r
500 String hwVersion) {
\r
502 for (ParameterDTO param : parameterDTOs) {
\r
503 MOMetaData metaData =
\r
504 metaDataUtil.getMetaDataByTR69Name(param.getParamName(), swVersion, hwVersion);
\r
505 if (null != metaData && BOOLEAN_DATA_TYPE.equalsIgnoreCase(metaData.getDataType())) {
\r
506 if (BOOLEAN_TRUE_VALUE.equalsIgnoreCase(param.getParamValue().trim())) {
\r
507 param.setParamValue(Boolean.TRUE.toString());
\r
508 } else if (BOOLEAN_FALSE_VALUE.equalsIgnoreCase(param.getParamValue().trim())) {
\r
509 param.setParamValue(Boolean.FALSE.toString());
\r
515 protected void handleBooleanParametersReverse(List<ParameterDTO> parameterDTOs, String swVersion,
\r
516 String hwVersion) {
\r
518 for (ParameterDTO param : parameterDTOs) {
\r
519 MOMetaData metaData =
\r
520 metaDataUtil.getMetaDataByTR69Name(param.getParamName(), swVersion, hwVersion);
\r
521 if (null != metaData && BOOLEAN_DATA_TYPE.equalsIgnoreCase(metaData.getDataType())) {
\r
522 if (Boolean.TRUE.toString().equalsIgnoreCase(param.getParamValue().trim())) {
\r
523 param.setParamValue(BOOLEAN_TRUE_VALUE);
\r
524 } else if (Boolean.FALSE.toString().equalsIgnoreCase(param.getParamValue().trim())) {
\r
525 param.setParamValue(BOOLEAN_FALSE_VALUE);
\r
531 protected NetConfResponse getEmptyResponse() {
\r
532 NetConfResponse response = new NetConfResponse();
\r
533 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("0");
\r
534 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
535 errorCode.setFaultCode("0");
\r
536 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
537 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
538 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
539 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
540 response.setErrorCode(errorCode);
\r
544 protected NetConfResponse getTimeOutResponse() {
\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
550 errorCode.setFaultCode("8006");
\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
555 timeOutErrorResponse.setErrorCode(errorCode);
\r
556 timeOutErrorResponse.setErrorMessage("TR069 device request has been timed out.");
\r
557 return timeOutErrorResponse;
\r
560 protected NetConfResponse getErrorResponse(String errCode, String errorMsg) {
\r
561 NetConfResponse errorResponse = new NetConfResponse();
\r
562 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
563 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");
\r
564 if (errorCodeMetaData != null) {
\r
565 errorCode.setFaultCode(errCode);
\r
566 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
567 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
568 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
569 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
571 errorResponse.setErrorCode(errorCode);
\r
572 errorResponse.setErrorMessage(errorMsg);
\r
573 return errorResponse;
\r
576 protected NetConfResponse getOperationAbortedResponse(String errorMessage) {
\r
577 // prepare timeout error response
\r
578 NetConfResponse timeOutErrorResponse = new NetConfResponse();
\r
579 ErrorCodeDetails errorCode = new ErrorCodeDetails();
\r
580 ErrorCodeDetails errorCodeMetaData = errorCodeUtil.getErrorCodeMetaData("8006");
\r
581 if (errorCodeMetaData != null) {
\r
582 errorCode.setFaultCode("8002");
\r
583 errorCode.setErrorMessage(errorCodeMetaData.getErrorMessage());
\r
584 errorCode.setErrorType(errorCodeMetaData.getErrorType());
\r
585 errorCode.setErrorTag(errorCodeMetaData.getErrorTag());
\r
586 errorCode.setErrorSeverity(errorCodeMetaData.getErrorSeverity());
\r
588 timeOutErrorResponse.setErrorCode(errorCode);
\r
589 timeOutErrorResponse.setErrorMessage(errorMessage);
\r
590 return timeOutErrorResponse;
\r
593 public List<ParameterDTO> filteredSetParameters(List<ParameterDTO> parameters, String swVersion,
\r
594 String hwVersion) {
\r
595 List<ParameterDTO> result = new ArrayList<>();
\r
596 for (ParameterDTO param : parameters) {
\r
597 MOMetaData metaData =
\r
598 metaDataUtil.getMetaDataByNetConfName(param.getParamName(), swVersion, hwVersion);
\r
599 if (null != metaData && !metaData.isReadOnly()) {
\r
600 String tr069MoName =
\r
601 MOMetaDataUtil.getTR69MOByReplacingIndexes(param.getParamName(), metaData.getMoName());
\r
602 param.setDataType(metaData.getDataType());
\r
603 param.setParamName(tr069MoName);
\r
610 protected List<ParameterDTO> filteredGetParameters(List<ParameterDTO> parameters,
\r
611 String swVersion, String hwVersion) {
\r
612 return metaDataUtil.getSupportedChildParameters(parameters, swVersion, hwVersion);
\r
616 public boolean handelRegisterEvent(NetConfServerDetails request) {
\r
617 LOG.debug("processing the handelRegisterEvent started");
\r
619 VESNotificationResponse vesRsponse = vesnotiSender.sendNotification(null, request);
\r
620 if (HttpStatus.valueOf(vesRsponse.getStatusCode()).is2xxSuccessful()) {
\r
621 LOG.debug("processing the handelRegisterEvent completed");
\r
624 LOG.error("processing the handelRegisterEvent error code recevived: {}",
\r
625 vesRsponse.getStatusCode());
\r
628 } catch (Exception e) {
\r
629 LOG.error("processing the handelRegisterEvent exception occurred");
\r
634 protected static String getDownloadFileURI(String filepath) {
\r
636 if (filepath.contains("@") && filepath.contains("//")) {
\r
637 String[] str = filepath.split("@");
\r
638 String[] strForUserName = str[0].split("//");
\r
639 if (str.length > 1) {
\r
640 String Url = strForUserName[0] + "//" + str[1];
\r
647 protected static String getDownloadUserName(String filepath) {
\r
649 if (filepath.contains("@") && filepath.contains("//")) {
\r
650 String[] str = filepath.split("@");
\r
651 String[] strForUserName = str[0].split("//");
\r
652 if (strForUserName.length > 1)
\r
653 return strForUserName[1];
\r
658 protected boolean isAdminStateOverriden(List<ParameterDTO> paramList) {
\r
659 for (ParameterDTO paramDTO : paramList) {
\r
660 if (paramDTO.getParamName().contains(MapperConstants.ADMIN_STATE)
\r
661 || paramDTO.getParamName().contains(MapperConstants.ADMIN_STATUS)) {
\r
668 protected void convertResposeToSPVResponse(DeviceRPCResponse deviceRPCResponse) {
\r
669 if (null == deviceRPCResponse) {
\r
673 OperationResponse operationResponse = new SetParameterValueResponse();
\r
674 operationResponse.setParameterDTOs(new ArrayList<ParameterDTO>());
\r
676 if (null == deviceRPCResponse.getFaultKey()) {
\r
677 operationResponse.setStatus(MapperConstants.RPC_SUCCESS_CODE);
\r
679 operationResponse.setStatus(MapperConstants.RPC_FAILED_CODE);
\r
682 deviceRPCResponse.setOperationResponse(operationResponse);
\r