diff options
Diffstat (limited to 'SdncReports/SdncReportsApi/src/main/java/com/onap')
11 files changed, 680 insertions, 0 deletions
diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/Application.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/Application.java new file mode 100644 index 00000000..b7cd50f5 --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/Application.java @@ -0,0 +1,42 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SDNC-FEATURES +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* Licensed 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 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License 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 com.onap.sdnc.reports; + + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; + + +@SpringBootApplication(scanBasePackages = {"com.onap.sdnc.reports.*","com.onap.sdnc.testapi.*"}) +@EnableAutoConfiguration +public class Application { + private static final Logger logger = LogManager.getLogger(Application.class); + public static void main(String[] args) { + + SpringApplication.run(Application.class, args); + logger.info("SDNC REPORTS API Has Started.."); + } +} + + diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/ServletInitializer.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/ServletInitializer.java new file mode 100644 index 00000000..55678cb1 --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/ServletInitializer.java @@ -0,0 +1,32 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SDNC-FEATURES +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* Licensed 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 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License 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 com.onap.sdnc.reports; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +public class ServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(Application.class); + } + +} diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/config/EmbeddedMariaDbConfig.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/config/EmbeddedMariaDbConfig.java new file mode 100644 index 00000000..ca45838f --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/config/EmbeddedMariaDbConfig.java @@ -0,0 +1,5 @@ +package com.onap.sdnc.reports.config; + +public class EmbeddedMariaDbConfig { + +} diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/config/JpaApplicationConfig.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/config/JpaApplicationConfig.java new file mode 100644 index 00000000..97ff2820 --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/config/JpaApplicationConfig.java @@ -0,0 +1,30 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SDNC-FEATURES +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* Licensed 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 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License 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 com.onap.sdnc.reports.config; + + +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; + +@EnableJpaRepositories("com.onap.sdnc.reports.repository") +@EntityScan("com.onap.sdnc.reports.*") +public class JpaApplicationConfig { + +} diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/controller/CertificationController.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/controller/CertificationController.java new file mode 100644 index 00000000..7d69794a --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/controller/CertificationController.java @@ -0,0 +1,54 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SDNC-FEATURES +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* Licensed 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 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License 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 com.onap.sdnc.reports.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import com.onap.sdnc.reports.model.Request; +import com.onap.sdnc.reports.model.Response; +import com.onap.sdnc.reports.service.LayerTestService; + + +@RestController +public class CertificationController { + + @Autowired + LayerTestService ltService; + + @RequestMapping("/") + ModelAndView home(ModelAndView modelAndView) { + + modelAndView.setViewName("index"); + + return modelAndView; + } + + @RequestMapping(value="/runtest",method=RequestMethod.POST, consumes="application/json",produces=MediaType.APPLICATION_JSON_VALUE) + public Response findReportByTestName(@RequestBody Request req) { + + return ltService.networkCertification(req); + } +} diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/controller/ReportController.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/controller/ReportController.java new file mode 100644 index 00000000..55a63604 --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/controller/ReportController.java @@ -0,0 +1,59 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SDNC-FEATURES +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* Licensed 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 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License 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 com.onap.sdnc.reports.controller; + +import java.util.Date; +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import com.onap.sdnc.reports.rest.model.PreTestModel; +import com.onap.sdnc.reports.service.IReportService; + +@RestController +public class ReportController { + + private static final Logger logger = LogManager.getLogger(ReportController.class); + + @Autowired + IReportService reportService; + @RequestMapping(value="/findReportByDeviceIP/{startDate}/{endDate}/{deviceIP:.+}", produces = "application/json",method=RequestMethod.GET) + public List<PreTestModel> findReportByDeviceIP(@PathVariable("startDate") Date startDate,@PathVariable("endDate") Date endDate,@PathVariable("deviceIP") String deviceIP) { + + try{ + logger.info("findReportByDeviceIP Started Working.."); + if(logger.isDebugEnabled()) + logger.debug("Received StartDate : "+startDate+" ,EndDate : "+endDate+" ,DeviceIP : "+deviceIP); + + return reportService.findReportByDeviceIP(startDate,endDate,deviceIP); + } + catch(Exception ex) + { + logger.info("Exception Occured : "+ex.getLocalizedMessage()); + return java.util.Collections.emptyList(); + } + } +} diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/CertificationClientService.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/CertificationClientService.java new file mode 100644 index 00000000..589fecf0 --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/CertificationClientService.java @@ -0,0 +1,210 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed 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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License 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 com.onap.sdnc.reports.service; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.InetAddress; +import java.net.Socket; +import java.net.UnknownHostException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.List; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; +import com.onap.sdnc.reports.model.CertificationInputs; +import com.onap.sdnc.reports.model.DeviceConfig; +import com.onap.sdnc.reports.model.ODLClientResponse; +import com.onap.sdnc.reports.model.Output; +import com.onap.sdnc.reports.model.PreTestResponse; +import com.onap.sdnc.reports.repository.DeviceRepository; +import com.onap.sdnc.reports.repository.PreTestConfigRepository; + +@Service +public class CertificationClientService { + + private static final Logger logger = Logger.getLogger(CertificationClientService.class); + + + @Autowired + DeviceRepository deviceRepository; + + @Autowired + PreTestConfigRepository preTestRepo; + + ObjectMapper mapper = new ObjectMapper(); + + public void restClient(CertificationInputs vnfinfo, List<PreTestResponse> preTestNew, String testType) { + + PreTestResponse preTest = new PreTestResponse(); + + Output output = new Output(); + if ("network".equalsIgnoreCase(testType)) { + output = pingTest(vnfinfo); + } + if ("protocol".equalsIgnoreCase(testType)) { + output = protocolTest(vnfinfo); + } + preTest.setStatus(output.getStatus()); + preTest.setIpaddress(output.getIpaddress()); + preTest.setStatistics(output.getStatistics()); + preTest.setAvgTime(output.getAvgTime()); + preTest.setTesttype(testType); + preTest.setHostname(output.getHostname()); + preTestNew.add(preTest); + + ODLClientResponse odlClientResponse=new ODLClientResponse(); + odlClientResponse.setOutput(output); + + testSaveResults(preTest, odlClientResponse); + } + + public static Output pingTest(CertificationInputs vnfinfo) { + + Output output = new Output(); + String pingCmd = "ping " + vnfinfo.getInput().getIpaddress(); + String pingResult = ""; + String testResult = "fail"; + String status = "unreachable"; + String reason = null; + String timeRes = null; + String percentile = null; + boolean flag = false; + boolean flag1 = false; + try { + InetAddress byIpaddress = InetAddress.getByName(vnfinfo.getInput().getIpaddress()); + String byHostName=vnfinfo.getInput().getHostname(); + flag = byIpaddress.isReachable(5000); + + } catch (UnknownHostException e) { + logger.info("Network certification Exception : " + e); + } catch (IOException e) { + logger.info("Network certification Exception : " + e); + } + + if (flag ) { + try { + Runtime r = Runtime.getRuntime(); + Process p = r.exec(pingCmd); + BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); + String inputLine; + while ((inputLine = in.readLine()) != null) { + if (pingResult.equals("")) { + pingResult = inputLine; + } else { + pingResult += "~" + inputLine; + } + } + String[] results = pingResult.split("~"); + for (String res : results) { + if (res.trim().contains("Packets:")) { + testResult = "pass"; + status = "reachable"; + String packets = res.trim(); + String[] lossPercentile = packets.split("\\("); + percentile = lossPercentile[1].replace(")", "").replace(",", "").trim(); + } + if (res.trim().contains("Minimum")) { + String timeMs = res.trim(); + String[] time = timeMs.split(","); + timeRes = time[0]; + } + } + in.close(); + } catch (Exception e) { + logger.info("Network certification Exception : " + e); + testResult = "fail"; + status = "unreachable"; + reason = e.toString(); + } + } + output.setAvgTime(timeRes); + output.setStatistics(percentile); + output.setHostname(vnfinfo.getInput().getHostname()); + output.setIpaddress(vnfinfo.getInput().getIpaddress()); + output.setReason(reason); + output.setTestresult(testResult); + output.setStatus(status); + + return output; + } + + public static Output protocolTest(CertificationInputs vnfinfo) { + Output output = new Output(); + Socket s = null; + String status = "unreachable"; + String reason = null; + try { + s = new Socket(vnfinfo.getInput().getIpaddress(), Integer.parseInt("445")); + status = "reachable"; + } catch (Exception e) { + logger.info("Protocol certification Exception : " + e); + reason = e.toString(); + status = "unreachable"; + } finally { + if (s != null) + try { + s.close(); + } catch (Exception e) { + logger.info("Protocol certification Exception : " + e); + reason = e.toString(); + status = "unreachable"; + } + } + output.setStatus(status); + output.setIpaddress(vnfinfo.getInput().getIpaddress()); + output.setReason(reason); + + return output; + } + + public void testSaveResults(PreTestResponse preTest,ODLClientResponse output) { + boolean flag=false; + long devId = 1; + + String timeStamp = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); + try { + DeviceConfig devicename = deviceRepository.findDeviceIP(preTest.getIpaddress()); + devId = devicename.getId(); + } catch (Exception e) { + flag=true; + } + if(flag) { + deviceRepository.logDeviceName(preTest.getIpaddress(), timeStamp); + } + + DeviceConfig devicename = deviceRepository.findDeviceIP(preTest.getIpaddress()); + devId = devicename.getId(); + + Gson gson = new Gson(); + String testName= preTest.getTesttype(); + String result = preTest.getStatus(); + String execuationDetails = gson.toJson(output); + + preTestRepo.logPreTestReport(testName, result, execuationDetails, timeStamp, devId); + } + +}
\ No newline at end of file diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/IReportService.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/IReportService.java new file mode 100644 index 00000000..cdf7b167 --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/IReportService.java @@ -0,0 +1,35 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SDNC-FEATURES +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* Licensed 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 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License 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 com.onap.sdnc.reports.service; + +import java.util.Date; +import java.util.List; + +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestParam; + +import com.onap.sdnc.reports.rest.model.PreTestModel; + +public interface IReportService { + + public List<PreTestModel> findReportByDeviceIP(@PathVariable("startDate") Date startDate,@PathVariable("endDate") Date endDate,@RequestParam("deviceIP") String deviceIP) throws Exception; + + +} diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/LayerTestService.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/LayerTestService.java new file mode 100644 index 00000000..85afdc92 --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/LayerTestService.java @@ -0,0 +1,31 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed 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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License 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 com.onap.sdnc.reports.service; + +import com.onap.sdnc.reports.model.Request; +import com.onap.sdnc.reports.model.Response; + + +public interface LayerTestService { + + public Response networkCertification(Request restReq); + +} diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/LayerTestServiceImpl.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/LayerTestServiceImpl.java new file mode 100644 index 00000000..0565e51a --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/LayerTestServiceImpl.java @@ -0,0 +1,93 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed 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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License 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 com.onap.sdnc.reports.service; + +import java.util.ArrayList; +import java.util.List; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.stereotype.Service; +import com.onap.sdnc.reports.model.CertificationInputs; +import com.onap.sdnc.reports.model.Input; +import com.onap.sdnc.reports.model.PreTestResponse; +import com.onap.sdnc.reports.model.Request; +import com.onap.sdnc.reports.model.Response; +import com.onap.sdnc.reports.model.ValidationTestType; +import com.onap.sdnc.reports.model.VnfList; +import com.onap.sdnc.reports.repository.DeviceRepository; +import com.onap.sdnc.reports.repository.PreTestConfigRepository; + + +@EnableJpaRepositories("com.onap.sdnc.reports.repository") +@EntityScan("com.onap.sdnc.*") +@EnableAutoConfiguration +@Service +public class LayerTestServiceImpl implements LayerTestService { + + private static final Logger logger = Logger.getLogger(CertificationClientService.class); + + @Autowired + CertificationClientService certificationClientservice; + + @Autowired + DeviceRepository deviceRepository; + + @Autowired + PreTestConfigRepository preTestRepo; + + @Override + public Response networkCertification(Request restReq) { + + String testType = "network"; + + VnfList[] vnf = restReq.getVnfList(); + + ValidationTestType[] validationType = restReq.getValidationTestType(); + + CertificationInputs vnfRequestParams = new CertificationInputs(); + + Response resOutput = new Response(); + + Input input = new Input(); + + List<PreTestResponse> preTestNew = new ArrayList<PreTestResponse>(); + for (ValidationTestType validationTestType : validationType) { + if (validationTestType.getValidationType().equalsIgnoreCase("Network Layer")) { + testType = "network"; + } + if (validationTestType.getValidationType().equalsIgnoreCase("Protocol Layer")) { + testType = "protocol"; + } + for (VnfList vnfList : vnf) { + input.setIpaddress(vnfList.getIpAddress()); + input.setHostname(vnfList.getHostName()); + vnfRequestParams.setInput(input); + certificationClientservice.restClient(vnfRequestParams, preTestNew, testType); + } + } + resOutput.setPreTestResponse(preTestNew); + return resOutput; + } + +} diff --git a/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/ReportServiceImpl.java b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/ReportServiceImpl.java new file mode 100644 index 00000000..68e28987 --- /dev/null +++ b/SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/ReportServiceImpl.java @@ -0,0 +1,89 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SDNC-FEATURES +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* Licensed 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 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License 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 com.onap.sdnc.reports.service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.onap.sdnc.reports.model.PreTestConfig; +import com.onap.sdnc.reports.repository.DeviceRepository; +import com.onap.sdnc.reports.repository.PreTestConfigRepository; +import com.onap.sdnc.reports.rest.model.PreTestModel; + +@Service +public class ReportServiceImpl implements IReportService { + + private static final Logger logger = LogManager.getLogger(ReportServiceImpl.class); + + @Autowired + DeviceRepository deviceRepository; + + @Autowired + PreTestConfigRepository preTestConfigRepository; + + + @Override + public List<PreTestModel> findReportByDeviceIP(Date startDate, Date endDate, String deviceIP) throws Exception{ + + try{ + + List<PreTestConfig> resultSet= preTestConfigRepository.findReportByDeviceIP(startDate, endDate, deviceIP); + + if(logger.isDebugEnabled()) + logger.debug("Received Output From Repository Is: "+resultSet); + + List<PreTestModel> preTestList=new ArrayList<PreTestModel>(); + for(PreTestConfig config : resultSet) + { + try{ + long deviceid=config.getDevice().getId(); + long testid=config.getTestId(); + String testName=config.getTestName(); + String deviceIp=config.getDevice().getDeviceIP(); + String execuationDetails=config.getExecuationDetails(); + String result=config.getResult(); + Date timeStamp=config.getTimestamp(); + + PreTestModel model=new PreTestModel(testid, deviceid, testName, deviceIp, execuationDetails, result, timeStamp); + preTestList.add(model); + } + catch(Exception ex) + { + logger.info("Exception Occured : "+ex.getLocalizedMessage()); + logger.error(ex); + } + } + logger.info("Final PreTestConfig List Size : "+preTestList.size()); + logger.info("findReportByDeviceIP Finished Working.."); + return preTestList; + } + catch(Exception ex) + { + logger.info("Exception Occured : "+ex.getLocalizedMessage()); + logger.error(ex); + throw new Exception("Exception occurred while processing findReportByDeviceIP ",ex); + } + } +} |