aboutsummaryrefslogtreecommitdiffstats
path: root/SdncReports/SdncReportsApi/src/main/java/com
diff options
context:
space:
mode:
authorSoumendu Sekhar Acharya <sa00498080@techmahindra.com>2018-08-01 17:21:15 +0530
committerSoumendu Sekhar Acharya <SA00498080@techmahindra.com>2018-08-24 12:55:16 +0000
commit929c1f13697f338245571694beb73adbd39a5b78 (patch)
tree4ece0941e34c012407565aa01b34235be93688ad /SdncReports/SdncReportsApi/src/main/java/com
parentcc49cb7753ff820dada996ab1d56263243630395 (diff)
SDN-C support&provide network layer tests Using IP
SDNC-252,SDNC-253,SDNC-264,SDNC-266 are added as part of this story Change-Id: Ic65ca32c4786fac1be9269dbc6a2162b433f0630 Issue-ID: SDNC-264 Signed-off-by: Soumendu Sekhar Acharya <sa00498080@techmahindra.com> Former-commit-id: d90280efcad173fd2250b8e2e98cb8f480007657
Diffstat (limited to 'SdncReports/SdncReportsApi/src/main/java/com')
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/Application.java42
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/ServletInitializer.java32
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/config/EmbeddedMariaDbConfig.java5
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/config/JpaApplicationConfig.java30
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/controller/CertificationController.java54
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/controller/ReportController.java59
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/CertificationClientService.java210
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/IReportService.java35
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/LayerTestService.java31
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/LayerTestServiceImpl.java93
-rw-r--r--SdncReports/SdncReportsApi/src/main/java/com/onap/sdnc/reports/service/ReportServiceImpl.java89
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);
+ }
+ }
+}