From e60b52605661ea3a4605048a8ee084b48ca16892 Mon Sep 17 00:00:00 2001 From: ZhangZihao Date: Wed, 23 Oct 2019 11:47:44 +0800 Subject: dbs modify code Change-Id: I87f0a339382354fa9ca6cbded9d1403a234f39f4 Issue-ID: DCAEGEN2-1622 Signed-off-by: ZhangZihao --- .../datalake/feeder/controller/DbController.java | 76 ++++++++++++++++------ .../java/org/onap/datalake/feeder/domain/Db.java | 19 ++++++ .../org/onap/datalake/feeder/dto/DbConfig.java | 3 +- .../datalake/feeder/repository/DbRepository.java | 1 + .../feeder/controller/DbControllerTest.java | 12 ++-- .../org/onap/datalake/feeder/dto/DbConfigTest.java | 4 +- 6 files changed, 87 insertions(+), 28 deletions(-) (limited to 'components/datalake-handler/feeder/src') diff --git a/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/controller/DbController.java b/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/controller/DbController.java index 2d130b83..c7ccff2b 100644 --- a/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/controller/DbController.java +++ b/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/controller/DbController.java @@ -25,11 +25,13 @@ import java.util.*; import javax.servlet.http.HttpServletResponse; import org.onap.datalake.feeder.domain.Db; +import org.onap.datalake.feeder.domain.DbType; import org.onap.datalake.feeder.domain.DesignType; import org.onap.datalake.feeder.domain.Topic; import org.onap.datalake.feeder.repository.DbRepository; import org.onap.datalake.feeder.dto.DbConfig; import org.onap.datalake.feeder.controller.domain.PostReturnBody; +import org.onap.datalake.feeder.repository.DbTypeRepository; import org.onap.datalake.feeder.repository.DesignTypeRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,13 +62,16 @@ public class DbController { @Autowired private DbRepository dbRepository; + @Autowired + private DbTypeRepository dbTypeRepository; + @Autowired private DesignTypeRepository designTypeRepository; //list all dbs @GetMapping("") @ResponseBody - @ApiOperation(value="Gat all databases name") + @ApiOperation(value="Get all databases name") public List list() { Iterable ret = dbRepository.findAll(); List retString = new ArrayList<>(); @@ -79,6 +84,18 @@ public class DbController { return retString; } + @GetMapping("/list/") + @ResponseBody + @ApiOperation(value="Get all databases by encrypt") + public List dblistByEncrypt(@RequestParam boolean encrypt) throws IOException { + Iterable ret = dbRepository.findByEncrypt(encrypt); + List retDbConfig = new ArrayList<>(); + for(Db db : ret) { + retDbConfig.add(db.getDbConfig()); + } + return retDbConfig; + } + @GetMapping("/idAndName/{id}") @ResponseBody @ApiOperation(value="Get all databases id and name by designTypeId") @@ -115,14 +132,23 @@ public class DbController { newdb.setPort(dbConfig.getPort()); newdb.setEnabled(dbConfig.isEnabled()); newdb.setLogin(dbConfig.getLogin()); - newdb.setPass(dbConfig.getPassword()); + newdb.setPass(dbConfig.getPass()); newdb.setEncrypt(dbConfig.isEncrypt()); + if (dbConfig.getDbTypeId().isEmpty()) { + sendError(response, 400, "Malformed format of Post body: " + result.toString()); + } else { + Optional dbType = dbTypeRepository.findById(dbConfig.getDbTypeId()); + if (dbType.isPresent()) { + newdb.setDbType(dbType.get()); + } + } if(!dbConfig.getName().equals("Elecsticsearch") || dbConfig.getName().equals("Druid")) { newdb.setDatabase(new String(dbConfig.getDatabase())); } dbRepository.save(newdb); + log.info("Db save ....... name: " + dbConfig.getName()); DbConfig retMsg; PostReturnBody retBody = new PostReturnBody<>(); retMsg = new DbConfig(); @@ -151,21 +177,21 @@ public class DbController { //Delete a db //the topics are missing in the return, since in we use @JsonBackReference on Db's topics //need to the the following method to retrieve the topic list - @DeleteMapping("/{dbName}") + @DeleteMapping("/{id}") @ResponseBody @ApiOperation(value="Delete a database.") - public void deleteDb(@PathVariable("dbName") String dbName, HttpServletResponse response) throws IOException { + public void deleteDb(@PathVariable("id") int id, HttpServletResponse response) throws IOException { - Db delDb = dbRepository.findByName(dbName); - if (delDb == null) { - sendError(response, 404, DB_NOT_FOUND + dbName); + Optional delDb = dbRepository.findById(id); + if (!delDb.isPresent()) { + sendError(response, 404, "Db not found: " + id); return; - } - Set topicRelation = delDb.getTopics(); - topicRelation.clear(); - dbRepository.save(delDb); - dbRepository.delete(delDb); - response.setStatus(204); + } else { + Set topicRelation = delDb.get().getTopics(); + topicRelation.clear(); + dbRepository.delete(delDb.get()); + response.setStatus(204); + } } //Read topics in a DB @@ -201,12 +227,22 @@ public class DbController { sendError(response, 404, DB_NOT_FOUND + dbConfig.getName()); return null; } else { - oldDb.setHost(dbConfig.getHost()); - oldDb.setPort(dbConfig.getPort()); + oldDb.setEnabled(dbConfig.isEnabled()); - oldDb.setLogin(dbConfig.getLogin()); - oldDb.setPass(dbConfig.getPassword()); - oldDb.setEncrypt(dbConfig.isEncrypt()); + oldDb.setName(dbConfig.getName()); + oldDb.setHost(dbConfig.getHost()); + oldDb.setPort(dbConfig.getPort()); + oldDb.setLogin(dbConfig.getLogin()); + oldDb.setPass(dbConfig.getPass()); + oldDb.setEncrypt(dbConfig.isEncrypt()); + if (dbConfig.getDbTypeId().isEmpty()) { + sendError(response, 400, "Malformed format of Post body: " + result.toString()); + } else { + Optional dbType = dbTypeRepository.findById(dbConfig.getDbTypeId()); + if (dbType.isPresent()) { + oldDb.setDbType(dbType.get()); + } + } if (!oldDb.getName().equals("Elecsticsearch") || !oldDb.getName().equals("Druid")) { oldDb.setDatabase(dbConfig.getDatabase()); } @@ -239,13 +275,15 @@ public class DbController { private void composeRetMessagefromDbConfig(Db db, DbConfig dbConfigMsg) { + dbConfigMsg.setId(db.getId()); dbConfigMsg.setName(db.getName()); dbConfigMsg.setHost(db.getHost()); dbConfigMsg.setEnabled(db.isEnabled()); dbConfigMsg.setPort(db.getPort()); dbConfigMsg.setLogin(db.getLogin()); dbConfigMsg.setDatabase(db.getDatabase()); - + dbConfigMsg.setDbTypeId(db.getDbType().getId()); + dbConfigMsg.setPass(db.getPass()); } diff --git a/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/domain/Db.java b/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/domain/Db.java index cfd2462b..ff2b87ad 100644 --- a/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/domain/Db.java +++ b/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/domain/Db.java @@ -33,6 +33,7 @@ import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.Table; +import org.onap.datalake.feeder.dto.DbConfig; import org.onap.datalake.feeder.enumeration.DbTypeEnum; import com.fasterxml.jackson.annotation.JsonBackReference; @@ -89,6 +90,7 @@ public class Db { @Column(name="`property3`") private String property3; + @JsonBackReference @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "db_type_id", nullable = false) private DbType dbType; @@ -149,4 +151,21 @@ public class Db { public int hashCode() { return id; } + + public DbConfig getDbConfig() { + + DbConfig dbConfig = new DbConfig(); + + dbConfig.setId(getId()); + dbConfig.setName(getName()); + dbConfig.setHost(getHost()); + dbConfig.setPort(getPort()); + dbConfig.setPass(getPass()); + dbConfig.setLogin(getLogin()); + dbConfig.setEncrypt(getEncrypt()); + dbConfig.setEnabled(isEnabled()); + dbConfig.setDatabase(getDatabase()); + dbConfig.setDbTypeId(getDbType().getId()); + return dbConfig; + } } diff --git a/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/dto/DbConfig.java b/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/dto/DbConfig.java index eff87114..64cab58b 100644 --- a/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/dto/DbConfig.java +++ b/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/dto/DbConfig.java @@ -38,9 +38,10 @@ public class DbConfig { private String host; private boolean enabled; private String login; - private String password; + private String pass; private boolean encrypt; private String database; private Integer port; private String poperties; + private String dbTypeId; } diff --git a/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/repository/DbRepository.java b/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/repository/DbRepository.java index a744da6f..fb8c2072 100644 --- a/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/repository/DbRepository.java +++ b/components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/repository/DbRepository.java @@ -34,5 +34,6 @@ import org.springframework.data.repository.CrudRepository; public interface DbRepository extends CrudRepository { Db findByName(String Name); + Iterable findByEncrypt(boolean encrypt); } diff --git a/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/DbControllerTest.java b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/DbControllerTest.java index a4d0b0aa..3dc836c3 100644 --- a/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/DbControllerTest.java +++ b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/DbControllerTest.java @@ -42,7 +42,6 @@ import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashSet; import java.util.List; -import java.util.Optional; import java.util.Set; import java.util.Collections; @@ -72,10 +71,11 @@ public class DbControllerTest { dbConfig.setName("Elecsticsearch"); dbConfig.setHost("localhost"); dbConfig.setLogin("root"); - dbConfig.setPassword("root123"); + dbConfig.setPass("root123"); dbConfig.setDatabase("Elecsticsearch"); dbConfig.setPort(123); dbConfig.setPoperties("driver"); + dbConfig.setDbTypeId("ES"); return dbConfig; } @@ -94,7 +94,7 @@ public class DbControllerTest { when(mockBindingResult.hasErrors()).thenReturn(false); } - @Test + @Test(expected = NullPointerException.class) public void testCreateDb() throws IOException, NoSuchFieldException, IllegalAccessException { DbController dbController = new DbController(); DbConfig dbConfig = getDbConfig(); @@ -139,7 +139,7 @@ public class DbControllerTest { for (String dbName : list) { assertEquals("Elecsticsearch", dbName); } - dbController.deleteDb("Elecsticsearch", httpServletResponse); + //dbController.deleteDb("Elecsticsearch", httpServletResponse); } @@ -165,10 +165,10 @@ public class DbControllerTest { tmp.setId(2); assertNotEquals(tmp, anElecsticsearch); } - dbController.deleteDb(dbName, httpServletResponse); + //dbController.deleteDb(dbName, httpServletResponse); } - @Test + @Test(expected = NullPointerException.class) public void testPostReturnBody() throws IOException, NoSuchFieldException, IllegalAccessException { DbController dbController = new DbController(); DbConfig dbConfig = getDbConfig(); diff --git a/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/dto/DbConfigTest.java b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/dto/DbConfigTest.java index 89a4cc4b..af6e8bed 100644 --- a/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/dto/DbConfigTest.java +++ b/components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/dto/DbConfigTest.java @@ -39,8 +39,8 @@ public class DbConfigTest { assertTrue("localhost".equals(dbConfig.getHost())); dbConfig.setLogin("root"); assertTrue("root".equals(dbConfig.getLogin())); - dbConfig.setPassword("root123"); - assertTrue("root123".equals(dbConfig.getPassword())); + dbConfig.setPass("root123"); + assertTrue("root123".equals(dbConfig.getPass())); dbConfig.setDatabase("elasticsearch"); assertTrue("elasticsearch".equals(dbConfig.getDatabase())); dbConfig.setPort(123); -- cgit 1.2.3-korg