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 + 4 files changed, 79 insertions(+), 20 deletions(-) (limited to 'components/datalake-handler/feeder/src/main/java/org') 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); } -- cgit 1.2.3-korg