Epic-231 cbr for compare
authorSoumendu Sekhar Acharya <SA00498080@techmahindra.com>
Tue, 7 Aug 2018 07:06:28 +0000 (12:36 +0530)
committerDushyantSinghThakur <dt00503496@techmahindra.com>
Tue, 21 Aug 2018 07:10:17 +0000 (12:40 +0530)
SDN-C to support the config comparison feature

Change-Id: I7e9219a40c54e1d0266e0fd55a5871b572539e6b
Issue-ID: SDNC-258
Signed-off-by: Soumendu Sekhar Acharya <SA00498080@techmahindra.com>
14 files changed:
configbackuprestore/getBackupVnfDetailService/pom.xml [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/read.md [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfcomparsion/controller/VnfComparisonController.java [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfcomparsion/dao/VnfComparisonRepository.java [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfcomparsion/dao/VnfIds.java [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/model/VnfCompareResponse.java [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/model/VnfConfigDetailsDB.java [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/model/VnfDetails.java [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/service/VnfComparisonService.java [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/service/VnfDetailsForVnfIDAndVnfVersionService.java [new file with mode: 0644]
configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/service/VnfDetailsForVnfIDService.java [new file with mode: 0644]
configbackuprestore/pom.xml [new file with mode: 0644]
configbackuprestore/read.md [new file with mode: 0644]
pom.xml

diff --git a/configbackuprestore/getBackupVnfDetailService/pom.xml b/configbackuprestore/getBackupVnfDetailService/pom.xml
new file mode 100644 (file)
index 0000000..a5259f0
--- /dev/null
@@ -0,0 +1,154 @@
+<?xml version="1.0"?>
+<project
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+       xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.onap.ccsdk.parent</groupId>
+               <artifactId>configbackuprestore</artifactId>
+               <version>1.0-SNAPSHOT</version>
+       </parent>
+       <groupId>com.onap.sdnc.vnfbackup</groupId>
+       <artifactId>getBackupVnfDetailService</artifactId>
+       <version>1.0-SNAPSHOT</version>
+       <name>getBackupVnfDetailService</name>
+       <url>http://maven.apache.org</url>
+       <properties>
+               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+       </properties>
+       <dependencies>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>4.4</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.mariadb.jdbc</groupId>
+                       <artifactId>mariadb-java-client</artifactId>
+                       <version>1.1.9</version>
+               </dependency>
+               <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
+               <dependency>
+                       <groupId>commons-codec</groupId>
+                       <artifactId>commons-codec</artifactId>
+                       <version>1.9</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-web</artifactId>
+                       <version>1.5.4.RELEASE</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.springframework</groupId>
+                       <artifactId>spring-context</artifactId>
+                       <version>4.3.9.RELEASE</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-tomcat</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.tomcat.embed</groupId>
+                       <artifactId>tomcat-embed-jasper</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-devtools</artifactId>
+                       <optional>true</optional>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-test</artifactId>
+                       <scope>test</scope>
+                       <version>1.5.3.RELEASE</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-data-jpa</artifactId>
+               </dependency>
+
+               <!-- Add Log4j2 Dependency -->
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-log4j2</artifactId>
+               </dependency>
+               <!-- https://mvnrepository.com/artifact/org.javers/javers-core -->
+               <dependency>
+                       <groupId>org.javers</groupId>
+                       <artifactId>javers-core</artifactId>
+                       <version>3.9.3</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.json</groupId>
+                       <artifactId>json</artifactId>
+                       <version>20180130</version>
+               </dependency>
+
+               <!-- https://mvnrepository.com/artifact/com.flipkart.zjsonpatch/zjsonpatch -->
+               <dependency>
+                       <groupId>com.flipkart.zjsonpatch</groupId>
+                       <artifactId>zjsonpatch</artifactId>
+                       <version>0.2.1</version>
+               </dependency>
+
+       </dependencies>
+       <build>
+       <plugins>
+       <plugin>
+    <groupId>org.jacoco</groupId>
+    <artifactId>jacoco-maven-plugin</artifactId>
+    <version>0.7.5.201505241946</version>
+    <executions>
+        <!--
+            Prepares the property pointing to the JaCoCo runtime agent which
+            is passed as VM argument when Maven the Surefire plugin is executed.
+        -->
+        <execution>
+            <id>pre-unit-test</id>
+            <goals>
+                <goal>prepare-agent</goal>
+            </goals>
+            <configuration>
+                <!-- Sets the path to the file which contains the execution data. -->
+                <destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
+                <!--
+                    Sets the name of the property containing the settings
+                    for JaCoCo runtime agent.
+                -->
+                <propertyName>surefireArgLine</propertyName>
+            </configuration>
+        </execution>
+        <!--
+            Ensures that the code coverage report for unit tests is created after
+            unit tests have been run.
+        -->
+        <execution>
+            <id>post-unit-test</id>
+            <phase>test</phase>
+            <goals>
+                <goal>report</goal>
+            </goals>
+            <configuration>
+                <!-- Sets the path to the file which contains the execution data. -->
+                <dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
+                <!-- Sets the output directory for the code coverage report. -->
+                <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
+            </configuration>
+        </execution>
+    </executions>
+</plugin>
+</plugins>
+       </build>
+</project>
\ No newline at end of file
diff --git a/configbackuprestore/getBackupVnfDetailService/read.md b/configbackuprestore/getBackupVnfDetailService/read.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfcomparsion/controller/VnfComparisonController.java b/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfcomparsion/controller/VnfComparisonController.java
new file mode 100644 (file)
index 0000000..2f83368
--- /dev/null
@@ -0,0 +1,68 @@
+package com.onap.sdnc.vnfcomparsion.controller;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+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 com.onap.sdnc.vnfconfigcomparsion.model.VnfCompareResponse;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfConfigDetailsDB;
+import com.onap.sdnc.vnfconfigcomparsion.service.VnfComparisonService;
+
+
+@RestController
+public class VnfComparisonController {
+       
+       private static final Logger logger = Logger.getLogger(VnfComparisonController.class);
+
+       @Autowired
+       VnfComparisonService vnfComparisonService;
+       
+       
+       @RequestMapping(value="/getAllBackupVnfIds", method=RequestMethod.GET,produces="application/json")
+       public List<VnfConfigDetailsDB>  getAllBackupVnfIds() {
+               return vnfComparisonService.getAllBackupVnfIds();
+       }
+       
+       
+       @RequestMapping(value="/configcomparison/{vnfid}", method = RequestMethod.POST,produces="application/json")
+       public VnfCompareResponse configComparison(@RequestBody String versionNames,@PathVariable("vnfid") String vnfId) {
+               VnfCompareResponse vnfCompareResponse = null;
+               try {
+                       JSONObject versionId = new JSONObject(versionNames);
+                       vnfCompareResponse = vnfComparisonService.getConfigurationDeatils(versionId,vnfId);
+               
+       } catch (JSONException e1) {
+               logger.error("exception occered"+e1);
+       }
+       
+       return vnfCompareResponse;
+}
+       
+       @RequestMapping(value="/configDetailsByIdVersion/{vnfid}", method = RequestMethod.POST,produces="application/json")
+       public VnfCompareResponse getVnfDetailsOfVersionsAndVnfID(@RequestBody String versionNames,@PathVariable("vnfid") String vnfId) {
+               VnfCompareResponse vnfCompareResponse = null;
+               try {
+                       JSONObject versionId = new JSONObject(versionNames);
+                       vnfCompareResponse = vnfComparisonService.getConfigDeatilsByVnfIdVnfVersion(versionId,vnfId);
+               
+       } catch (JSONException e1) {
+               logger.error("exception occered"+e1);
+       }
+       
+       return vnfCompareResponse;
+}
+       
+       @RequestMapping(value="/configDetailsById/{vnfid}", method = RequestMethod.GET,produces="application/json")
+       public List<VnfConfigDetailsDB> getVnfDetailsOfVnfID(@PathVariable("vnfid") String vnfId) {
+               List<VnfConfigDetailsDB> vnfConfigDetails = null;
+               vnfConfigDetails = vnfComparisonService.getConfigurationDeatils(vnfId);
+       return vnfConfigDetails;
+}
+}
diff --git a/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfcomparsion/dao/VnfComparisonRepository.java b/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfcomparsion/dao/VnfComparisonRepository.java
new file mode 100644 (file)
index 0000000..265206d
--- /dev/null
@@ -0,0 +1,30 @@
+package com.onap.sdnc.vnfcomparsion.dao;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfConfigDetailsDB;
+
+
+@Repository
+public interface VnfComparisonRepository extends JpaRepository<VnfConfigDetailsDB, Serializable>{
+       
+       
+       @Query(value = "Select * from vnfconfigdetails where vnfid = :vnfid", nativeQuery = true)
+       List<VnfConfigDetailsDB> getVnfDetailsByVnfID(@Param("vnfid") String vnfid);
+
+       @Query(value = "Select * from vnfconfigdetails where vnfversion = :vnfversion and vnfid = :vnfid", nativeQuery = true)
+       VnfConfigDetailsDB getVnfDetails(@Param("vnfversion") String vnfversion, @Param("vnfid") String vnfid);
+
+       public static final String FIND_VNFID = "SELECT * FROM vnfconfigdetails group by vnfid";
+
+       @Query(value= FIND_VNFID,nativeQuery = true) 
+       List<VnfConfigDetailsDB> findvnfidvnfname();
+
+}
diff --git a/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfcomparsion/dao/VnfIds.java b/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfcomparsion/dao/VnfIds.java
new file mode 100644 (file)
index 0000000..51210b1
--- /dev/null
@@ -0,0 +1,7 @@
+package com.onap.sdnc.vnfcomparsion.dao;
+
+public interface VnfIds {
+       
+       String getVnfID();
+
+}
diff --git a/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/model/VnfCompareResponse.java b/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/model/VnfCompareResponse.java
new file mode 100644 (file)
index 0000000..b684541
--- /dev/null
@@ -0,0 +1,16 @@
+package com.onap.sdnc.vnfconfigcomparsion.model;
+
+import java.util.List;
+
+public class VnfCompareResponse {
+
+       private List<VnfDetails> vnfDetails;
+
+       public List<VnfDetails> getVnfDetails() {
+               return vnfDetails;
+       }
+
+       public void setVnfDetails(List<VnfDetails> vnfDetails) {
+               this.vnfDetails = vnfDetails;
+       }
+}
diff --git a/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/model/VnfConfigDetailsDB.java b/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/model/VnfConfigDetailsDB.java
new file mode 100644 (file)
index 0000000..7a62dc2
--- /dev/null
@@ -0,0 +1,108 @@
+package com.onap.sdnc.vnfconfigcomparsion.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 String 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 getLastupdated() {
+               return lastupdated;
+       }
+
+       public void setLastupdated(String lastupdated) {
+               this.lastupdated = lastupdated;
+       }
+
+       public String getStatus() {
+               return status;
+       }
+
+       public void setStatus(String status) {
+               this.status = status;
+       }
+
+}
diff --git a/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/model/VnfDetails.java b/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/model/VnfDetails.java
new file mode 100644 (file)
index 0000000..56b5ee2
--- /dev/null
@@ -0,0 +1,27 @@
+package com.onap.sdnc.vnfconfigcomparsion.model;
+
+public class VnfDetails {
+
+       private String vnfId;
+       private String vnfDeatils;
+       private String vnfversion;
+       
+       public String getVnfversion() {
+               return vnfversion;
+       }
+       public void setVnfversion(String vnfversion) {
+               this.vnfversion = vnfversion;
+       }
+       public String getVnfDeatils() {
+               return vnfDeatils;
+       }
+       public void setVnfDeatils(String vnfDeatils) {
+               this.vnfDeatils = vnfDeatils;
+       }
+       public String getVnfId() {
+               return vnfId;
+       }
+       public void setVnfId(String vnfId) {
+               this.vnfId = vnfId;
+       }
+}
diff --git a/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/service/VnfComparisonService.java b/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/service/VnfComparisonService.java
new file mode 100644 (file)
index 0000000..73111e6
--- /dev/null
@@ -0,0 +1,96 @@
+package com.onap.sdnc.vnfconfigcomparsion.service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.onap.sdnc.vnfcomparsion.dao.VnfComparisonRepository;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfCompareResponse;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfConfigDetailsDB;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfDetails;
+
+@Service
+public class VnfComparisonService {
+
+       private static final Logger logger = LogManager.getLogger(VnfComparisonService.class);
+
+       @Autowired
+       VnfComparisonRepository vnfComparisonRepository;
+
+       //Returns vnfconfig details if at list 2 and at most 4 versions selected.
+       public VnfCompareResponse getConfigurationDeatils(JSONObject vnfVersionNames, String vnfId) {
+               VnfCompareResponse vnfCompareResponse = new VnfCompareResponse();
+               List<VnfDetails> vnfDetailsList = new ArrayList<VnfDetails>();
+               VnfDetails vnfDetails = null;
+               try {
+                       JSONArray vnfIdArray = vnfVersionNames.getJSONArray("versionNames");
+                       if (vnfIdArray.length() >= 2 && vnfIdArray.length() <= 4) {
+                               for (int i = 0; i < vnfIdArray.length(); i++) {
+                                       
+                                               VnfConfigDetailsDB vnfconfigdetails = vnfComparisonRepository
+                                                               .getVnfDetails(vnfIdArray.get(i).toString(), vnfId);
+                                               vnfDetails = new VnfDetails();
+                                               vnfDetails.setVnfDeatils(vnfconfigdetails.getConfiginfo());
+                                               vnfDetails.setVnfId(vnfconfigdetails.getVnfid());
+                                               vnfDetails.setVnfversion(vnfconfigdetails.getVnfversion());
+                                               vnfDetailsList.add(vnfDetails);
+                                               logger.debug("Versions : " + vnfIdArray.get(i));
+                               }
+                       }/*else {
+                               throw new RuntimeException("At list 2 and at most 4 versions need to be selected");
+                       }*/
+               } catch (JSONException jSONException1) {
+                       
+                       logger.debug("JSONException occered " + jSONException1);
+                       
+               }
+               vnfCompareResponse.setVnfDetails(vnfDetailsList);
+               return vnfCompareResponse;
+       }
+
+       //Returns vnfconfig details for any version.
+       public VnfCompareResponse getConfigDeatilsByVnfIdVnfVersion(JSONObject vnfVersionNames, String vnfId) {
+               VnfCompareResponse vnfCompareResponse = new VnfCompareResponse();
+               List<VnfDetails> vnfDetailsList = new ArrayList<VnfDetails>();
+               VnfDetails vnfDetails = null;
+               try {
+                       JSONArray vnfIdArray = vnfVersionNames.getJSONArray("versionNames");
+                       for (int i = 0; i < vnfIdArray.length(); i++) {
+                               VnfConfigDetailsDB vnfconfigdetails = vnfComparisonRepository
+                                               .getVnfDetails(vnfIdArray.get(i).toString(), vnfId);
+                               vnfDetails = new VnfDetails();
+                               vnfDetails.setVnfDeatils(vnfconfigdetails.getConfiginfo());
+                               vnfDetails.setVnfId(vnfconfigdetails.getVnfid());
+                               vnfDetails.setVnfversion(vnfconfigdetails.getVnfversion());
+                               vnfDetailsList.add(vnfDetails);
+                               logger.debug("Versions : " + vnfIdArray.get(i));
+                       }
+               } catch (JSONException jSONException2) {
+
+                       logger.debug("JSONException occered " + jSONException2);
+               }
+               vnfCompareResponse.setVnfDetails(vnfDetailsList);
+               return vnfCompareResponse;
+       }
+       
+       //Returns backup vnf details according to vnf id.
+       public List<VnfConfigDetailsDB> getConfigurationDeatils(String vnfId) {
+               List<VnfConfigDetailsDB> vnfconfigdetails = vnfComparisonRepository.getVnfDetailsByVnfID(vnfId);
+               return vnfconfigdetails;
+       }
+
+       //Returns all backup vnf details.
+       public List<VnfConfigDetailsDB> getAllBackupVnfIds() {
+               List<VnfConfigDetailsDB> vnfconfigdetails = vnfComparisonRepository.findvnfidvnfname();
+               
+               return vnfconfigdetails;
+       }
+
+}
diff --git a/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/service/VnfDetailsForVnfIDAndVnfVersionService.java b/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/service/VnfDetailsForVnfIDAndVnfVersionService.java
new file mode 100644 (file)
index 0000000..27db0ac
--- /dev/null
@@ -0,0 +1,56 @@
+/*package com.onap.sdnc.vnfconfigcomparsion.service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.onap.sdnc.vnfcomparsion.dao.VnfComparisonRepository;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfCompareResponse;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfConfigDetailsDB;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfDetails;
+
+public class VnfDetailsForVnfIDAndVnfVersionService {
+       
+       private static final Logger logger = LogManager.getLogger(VnfComparisonService.class);
+       
+       @Autowired
+       VnfComparisonRepository vnfComparisonRepository;
+
+       public VnfCompareResponse getConfigurationDeatils(JSONObject vnfVersionNames, String vnfId) {
+               
+               VnfCompareResponse vnfCompareResponse = new VnfCompareResponse();
+               List<VnfDetails> vnfDetailsList = new ArrayList<VnfDetails>();
+               VnfDetails vnfDetails = new VnfDetails();
+               try {
+                       JSONArray vnfIdArray = vnfVersionNames.getJSONArray("versionNames");
+                               for (int i = 0; i < vnfIdArray.length(); i++) {
+                                       try {
+                                               VnfConfigDetailsDB vnfconfigdetails = vnfComparisonRepository
+                                                               .getVnfDetails(vnfIdArray.get(i).toString(), vnfId);
+                                               vnfDetails.setVnfDeatils(vnfconfigdetails.getConfiginfo());
+                                               vnfDetails.setVnfId(vnfconfigdetails.getVnfid());
+                                               vnfDetailsList.add(vnfDetails);
+                                               logger.debug("Versions : " + vnfIdArray.get(i));
+                                       } catch (Exception e) {
+                                               // TODO Auto-generated catch block
+                                               // e.printStackTrace();
+                                       }
+                               }
+               } catch (JSONException jSONException) {
+
+                       throw new RuntimeException("Enter atlist 2 versions and maximum 4 versions");
+               }
+               vnfCompareResponse.setVnfDetails(vnfDetailsList);
+               return vnfCompareResponse;
+               
+       }
+
+}
+*/
\ No newline at end of file
diff --git a/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/service/VnfDetailsForVnfIDService.java b/configbackuprestore/getBackupVnfDetailService/src/main/java/com/onap/sdnc/vnfconfigcomparsion/service/VnfDetailsForVnfIDService.java
new file mode 100644 (file)
index 0000000..2aff5bd
--- /dev/null
@@ -0,0 +1,36 @@
+/*package com.onap.sdnc.vnfconfigcomparsion.service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.onap.sdnc.vnfcomparsion.dao.VnfComparisonRepository;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfCompareResponse;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfConfigDetailsDB;
+import com.onap.sdnc.vnfconfigcomparsion.model.VnfDetails;
+
+public class VnfDetailsForVnfIDService {
+       
+       @Autowired
+       VnfComparisonRepository vnfComparisonRepository;
+
+       public VnfCompareResponse getConfigurationDeatils(String vnfId) {
+               VnfCompareResponse vnfCompareResponse = new VnfCompareResponse();
+               List<VnfDetails> vnfDetailsList = new ArrayList<VnfDetails>();
+               VnfDetails vnfDetails = new VnfDetails();
+                       try {
+                               VnfConfigDetailsDB vnfconfigdetails = vnfComparisonRepository.getVnfDetailsByVnfID(vnfId);
+                               vnfDetails.setVnfDeatils(vnfconfigdetails.getConfiginfo());
+                               vnfDetails.setVnfId(vnfconfigdetails.getVnfid());
+                               vnfDetailsList.add(vnfDetails);
+                               } catch (Exception e) {
+                               // TODO Auto-generated catch block
+                               // e.printStackTrace();
+                               }
+               vnfCompareResponse.setVnfDetails(vnfDetailsList);
+               return vnfCompareResponse;
+       }
+
+}
+*/
\ No newline at end of file
diff --git a/configbackuprestore/pom.xml b/configbackuprestore/pom.xml
new file mode 100644 (file)
index 0000000..5b01a9c
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <groupId>org.onap.ccsdk.parent</groupId>
+       <artifactId>configbackuprestore</artifactId>
+       <version>1.0-SNAPSHOT</version>
+       <name>Archetype - configbackuprestore</name>
+       <packaging>pom</packaging>
+
+       <parent>
+               <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-parent</artifactId>
+                       <version>1.5.4.RELEASE</version>
+    </parent>
+
+       <properties>
+               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+       </properties>
+
+       <dependencies>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>3.8.1</version>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+
+
+
+       <modules>               
+               <module>getBackupVnfDetailService</module>
+  </modules>
+
+
+</project>
diff --git a/configbackuprestore/read.md b/configbackuprestore/read.md
new file mode 100644 (file)
index 0000000..3667cd3
--- /dev/null
@@ -0,0 +1,7 @@
+Pconfigbackuprestore
+---------------------
+It is the parent of bellow services
+
+vnfconfigbackupservice
+getBackupVnfDetailService
+vnfconfigreportsservice
diff --git a/pom.xml b/pom.xml
index 91434be..24ff99f 100755 (executable)
--- a/pom.xml
+++ b/pom.xml
@@ -24,6 +24,7 @@
                <module>admportal</module>
                <module>dgbuilder</module>
                <module>platform-logic</module>
+               <module>configbackuprestore</module>
        </modules>
 
        <scm>