summaryrefslogtreecommitdiffstats
path: root/components/datalake-handler/feeder/src
diff options
context:
space:
mode:
authorZhangZihao <zhangzihao@chinamobile.com>2019-10-23 11:47:44 +0800
committerYan Yang <yangyanyj@chinamobile.com>2019-10-27 23:39:13 +0000
commite60b52605661ea3a4605048a8ee084b48ca16892 (patch)
tree5d55be5ab27d5b9f97e9775593a467046a03f377 /components/datalake-handler/feeder/src
parent48ba434dcc92846ed96bc1dc3577d47610c73831 (diff)
dbs modify code
Change-Id: I87f0a339382354fa9ca6cbded9d1403a234f39f4 Issue-ID: DCAEGEN2-1622 Signed-off-by: ZhangZihao <zhangzihao@chinamobile.com>
Diffstat (limited to 'components/datalake-handler/feeder/src')
-rw-r--r--components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/controller/DbController.java76
-rw-r--r--components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/domain/Db.java19
-rw-r--r--components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/dto/DbConfig.java3
-rw-r--r--components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/repository/DbRepository.java1
-rw-r--r--components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/controller/DbControllerTest.java12
-rw-r--r--components/datalake-handler/feeder/src/test/java/org/onap/datalake/feeder/dto/DbConfigTest.java4
6 files changed, 87 insertions, 28 deletions
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<String> list() {
Iterable<Db> ret = dbRepository.findAll();
List<String> retString = new ArrayList<>();
@@ -79,6 +84,18 @@ public class DbController {
return retString;
}
+ @GetMapping("/list/")
+ @ResponseBody
+ @ApiOperation(value="Get all databases by encrypt")
+ public List<DbConfig> dblistByEncrypt(@RequestParam boolean encrypt) throws IOException {
+ Iterable<Db> ret = dbRepository.findByEncrypt(encrypt);
+ List<DbConfig> 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> 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<DbConfig> 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<Db> delDb = dbRepository.findById(id);
+ if (!delDb.isPresent()) {
+ sendError(response, 404, "Db not found: " + id);
return;
- }
- Set<Topic> topicRelation = delDb.getTopics();
- topicRelation.clear();
- dbRepository.save(delDb);
- dbRepository.delete(delDb);
- response.setStatus(204);
+ } else {
+ Set<Topic> 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> 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, Integer> {
Db findByName(String Name);
+ Iterable<Db> 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);