From cc49cb7753ff820dada996ab1d56263243630395 Mon Sep 17 00:00:00 2001 From: Soumendu Sekhar Acharya Date: Tue, 7 Aug 2018 15:23:28 +0530 Subject: [PATCH] Epic-231 cbr reports SDN-C to support reporting feature for automated operations e.g. backup, versioning, restoration and added jacoco plugin in parent configbackuprestore Change-Id: I355fdf0ed30a5446eb0447e3f90755dff54811cc Issue-ID: SDNC-263 Signed-off-by: Soumendu Sekhar Acharya Former-commit-id: 3fc03f8bde09d63f0c91c25bc95bb3419c3a6c0d --- configbackuprestore/pom.xml | 49 ++++++++- .../vnfconfigreportsservice/README.md | 3 + .../vnfconfigreportsservice/pom.xml | 112 +++++++++++++++++++++ .../controller/VnfReportsServiceController.java | 44 ++++++++ .../dao/VnfReportsServiceRepo.java | 20 ++++ .../model/VnfConfigDetailsDB.java | 110 ++++++++++++++++++++ .../service/VnfReportsServiceImpl.java | 48 +++++++++ .../service/Vnfreportsservice.java | 11 ++ 8 files changed, 396 insertions(+), 1 deletion(-) create mode 100644 configbackuprestore/vnfconfigreportsservice/README.md create mode 100644 configbackuprestore/vnfconfigreportsservice/pom.xml create mode 100644 configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/controller/VnfReportsServiceController.java create mode 100644 configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/dao/VnfReportsServiceRepo.java create mode 100644 configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/model/VnfConfigDetailsDB.java create mode 100644 configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/service/VnfReportsServiceImpl.java create mode 100644 configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/service/Vnfreportsservice.java diff --git a/configbackuprestore/pom.xml b/configbackuprestore/pom.xml index 5b01a9cb..c925197c 100644 --- a/configbackuprestore/pom.xml +++ b/configbackuprestore/pom.xml @@ -30,7 +30,54 @@ getBackupVnfDetailService + vnfconfigreportsservice - + + + + org.jacoco + jacoco-maven-plugin + 0.7.5.201505241946 + + + + pre-unit-test + + prepare-agent + + + + ${project.build.directory}/coverage-reports/jacoco-ut.exec + + surefireArgLine + + + + + post-unit-test + test + + report + + + + ${project.build.directory}/coverage-reports/jacoco-ut.exec + + ${project.reporting.outputDirectory}/jacoco-ut + + + + + + diff --git a/configbackuprestore/vnfconfigreportsservice/README.md b/configbackuprestore/vnfconfigreportsservice/README.md new file mode 100644 index 00000000..4462cbe8 --- /dev/null +++ b/configbackuprestore/vnfconfigreportsservice/README.md @@ -0,0 +1,3 @@ +vnfconfigreportsservice +------------------------ +It will show all the information about backup vnf configuration details. diff --git a/configbackuprestore/vnfconfigreportsservice/pom.xml b/configbackuprestore/vnfconfigreportsservice/pom.xml new file mode 100644 index 00000000..1d83bd02 --- /dev/null +++ b/configbackuprestore/vnfconfigreportsservice/pom.xml @@ -0,0 +1,112 @@ + + + 4.0.0 + + org.onap.ccsdk.parent + configbackuprestore + 1.0-SNAPSHOT + + com.onap.sdnc.vnfbackup + vnfconfigreportsservice + 1.0-SNAPSHOT + vnfconfigreportsservice + http://maven.apache.org + + UTF-8 + + + + junit + junit + 4.11 + test + + + + javax.servlet + jstl + provided + + + + org.mariadb.jdbc + mariadb-java-client + 1.1.9 + + + + commons-codec + commons-codec + 1.9 + + + + org.springframework.boot + spring-boot-starter-web + 1.5.4.RELEASE + + + + org.springframework + spring-context + 4.3.9.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + provided + + + + org.apache.tomcat.embed + tomcat-embed-jasper + provided + + + + + org.springframework.boot + spring-boot-devtools + true + + + + org.springframework.boot + spring-boot-starter-test + test + 1.5.3.RELEASE + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + org.springframework.boot + spring-boot-starter-log4j2 + + + + org.json + json + 20180130 + + + + com.fasterxml + jackson-xml-databind + 0.6.2 + + + org.mockito + mockito-all + 1.9.5 + test + + + + diff --git a/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/controller/VnfReportsServiceController.java b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/controller/VnfReportsServiceController.java new file mode 100644 index 00000000..4ef15366 --- /dev/null +++ b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/controller/VnfReportsServiceController.java @@ -0,0 +1,44 @@ +package com.onap.sdnc.vnfreportsservice.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.format.annotation.DateTimeFormat; +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.vnfreportsservice.model.VnfConfigDetailsDB; +import com.onap.sdnc.vnfreportsservice.service.VnfReportsServiceImpl; + +@RestController +public class VnfReportsServiceController { + + private static final Logger logger = LogManager.getLogger(VnfReportsServiceController.class); + + @Autowired + VnfReportsServiceImpl Vnfreportsservice; + + @RequestMapping(value = "/getVnfDetBetDates/{startDate}/{endDate}", method = RequestMethod.GET, produces = "application/json") + + public List getVnfConfigDetailsBetweenDates( + @PathVariable("startDate") @DateTimeFormat(pattern = "dd-MM-yyyy") Date startDate, + @PathVariable("endDate") @DateTimeFormat(pattern = "dd-MM-yyyy") Date endDate) { + logger.info("Get VNF Configuration Details Inbetween 2 Dates "); + return Vnfreportsservice.getVnfConfigDetailsBetweenDates(startDate, endDate); + } + + @RequestMapping(value = "/getVnfDetByVnfidBetDates/{vnfid}/{startDate}/{endDate}", method = RequestMethod.GET, produces = "application/json") + + public List getVnfConfigDetailsByVnfIdBetweenDates(@PathVariable("vnfid") String vnfId, + @PathVariable("startDate") @DateTimeFormat(pattern = "dd-MM-yyyy") Date startDate, + @PathVariable("endDate") @DateTimeFormat(pattern = "dd-MM-yyyy") Date endDate) { + logger.info("Get VNF Configuration Details Of a VnfID Inbetween 2 Dates "); + return Vnfreportsservice.getVnfIdDetailsBetweenDates(vnfId, startDate, endDate); + } + +} diff --git a/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/dao/VnfReportsServiceRepo.java b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/dao/VnfReportsServiceRepo.java new file mode 100644 index 00000000..1834ebe0 --- /dev/null +++ b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/dao/VnfReportsServiceRepo.java @@ -0,0 +1,20 @@ +package com.onap.sdnc.vnfreportsservice.dao; +import java.util.Date; +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.data.jpa.repository.JpaRepository; + +import com.onap.sdnc.vnfreportsservice.controller.VnfReportsServiceController; +import com.onap.sdnc.vnfreportsservice.model.VnfConfigDetailsDB; + + +public interface VnfReportsServiceRepo extends JpaRepository { + + List findByLastupdatedBetween(Date startDate, Date endDate); + List findByVnfidAndLastupdatedBetween(String vnfid,Date startDate,Date endDate); + +} + + diff --git a/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/model/VnfConfigDetailsDB.java b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/model/VnfConfigDetailsDB.java new file mode 100644 index 00000000..a2c08ef7 --- /dev/null +++ b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/model/VnfConfigDetailsDB.java @@ -0,0 +1,110 @@ +package com.onap.sdnc.vnfreportsservice.model; + +import java.sql.Date; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Lob; +import javax.persistence.Table; + +@Entity +@Table(name = "vnfconfigdetails", schema = "testreports") +public class VnfConfigDetailsDB { + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue + private int id; + + @Column(name = "vnfid") + private String vnfid; + + @Column(name = "vnfversion") + private String vnfversion; + + @Column(name = "vnfname") + private String vnfname; + + @Column(name = "configinfo") + @Lob + private String configinfo; + + @Column(name = "creationdate") + private Date creationdate; + + @Column(name = "lastupdated") + private Date lastupdated; + + @Column(name = "status") + private String status; + + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getVnfid() { + return vnfid; + } + + public void setVnfid(String vnfid) { + this.vnfid = vnfid; + } + + public String getVnfversion() { + return vnfversion; + } + + public void setVnfversion(String vnfversion) { + this.vnfversion = vnfversion; + } + + public String getVnfname() { + return vnfname; + } + + public void setVnfname(String vnfname) { + this.vnfname = vnfname; + } + + public String getConfiginfo() { + return configinfo; + } + + public void setConfiginfo(String configinfo) { + this.configinfo = configinfo; + } + + public Date getCreationdate() { + return creationdate; + } + + public void setCreationdate(Date creationdate) { + this.creationdate = creationdate; + } + + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Date getLastupdated() { + return lastupdated; + } + + public void setLastupdated(Date lastupdated) { + this.lastupdated = lastupdated; + } + +} + diff --git a/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/service/VnfReportsServiceImpl.java b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/service/VnfReportsServiceImpl.java new file mode 100644 index 00000000..3b4a7f86 --- /dev/null +++ b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/service/VnfReportsServiceImpl.java @@ -0,0 +1,48 @@ +package com.onap.sdnc.vnfreportsservice.service; + +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.vnfreportsservice.dao.VnfReportsServiceRepo; +import com.onap.sdnc.vnfreportsservice.model.VnfConfigDetailsDB; +@Service +public class VnfReportsServiceImpl implements Vnfreportsservice { + + private static final Logger logger = LogManager.getLogger(VnfReportsServiceImpl.class); + + @Autowired + VnfReportsServiceRepo vnfRepo; + + List config = null; + + @Override + public List getVnfConfigDetailsBetweenDates(Date startDate, Date endDate) { + + logger.info("Start Date" + startDate + "End Date" + endDate); + try { + config = vnfRepo.findByLastupdatedBetween(startDate, endDate); + } catch (Exception e) { + logger.error("Exception Occered Not able to get details from DB : " + e); + } + + return config; + } + + @Override + public List getVnfIdDetailsBetweenDates(String vnfid, Date startDate, Date endDate) { + + logger.info("Vnf ID: " + vnfid + "Start Date: " + startDate + "End Date: " + endDate); + try { + config = vnfRepo.findByVnfidAndLastupdatedBetween(vnfid, startDate, endDate); + } catch (Exception e) { + logger.error("Exception Occered Not able to get details from DB : " + e); + } + return config; + } + +} diff --git a/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/service/Vnfreportsservice.java b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/service/Vnfreportsservice.java new file mode 100644 index 00000000..3cbd2053 --- /dev/null +++ b/configbackuprestore/vnfconfigreportsservice/src/main/java/com/onap/sdnc/vnfreportsservice/service/Vnfreportsservice.java @@ -0,0 +1,11 @@ +package com.onap.sdnc.vnfreportsservice.service; + +import java.util.Date; +import java.util.List; +import com.onap.sdnc.vnfreportsservice.model.VnfConfigDetailsDB; + +public interface Vnfreportsservice { + public List getVnfConfigDetailsBetweenDates(Date startDate, Date endDate); + public List getVnfIdDetailsBetweenDates(String vnfId, Date startDate, Date endDate); + +} -- 2.16.6