Bug fix 05/87305/1
authorKate Hsuan <kate.hsuan@qct.io>
Thu, 9 May 2019 02:22:28 +0000 (10:22 +0800)
committerKate Hsuan <kate.hsuan@qct.io>
Thu, 9 May 2019 02:22:28 +0000 (10:22 +0800)
1. Add a topic delete API.
2. Fix JSON response body.
3. Fix DB config update.

Issue-ID: DCAEGEN2-1437

Change-Id: I4cd5710baf796c8a6bcc9af5283a36bd37659ec8
Signed-off-by: Kate Hsuan <kate.hsuan@qct.io>
components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/controller/DbController.java
components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/controller/TopicController.java
components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/controller/domain/DbConfig.java
components/datalake-handler/feeder/src/main/java/org/onap/datalake/feeder/domain/Topic.java

index 2b724c7..7ee0e0a 100644 (file)
@@ -105,11 +105,12 @@ public class DbController {
                        newdb.setName(dbConfig.getName());
                        newdb.setHost(dbConfig.getHost());
                        newdb.setPort(dbConfig.getPort());
+                       newdb.setEnabled(dbConfig.isEnabled());
                        newdb.setLogin(dbConfig.getLogin());
                        newdb.setPass(dbConfig.getPassword());
                        newdb.setEncrypt(false);
 
-                       if(dbConfig.getName().equals("Elecsticsearch") || dbConfig.getName().equals("Druid"))
+                       if(!dbConfig.getName().equals("Elecsticsearch") || !dbConfig.getName().equals("Druid"))
                        {
                                newdb.setDatabase(new String(dbConfig.getDatabase()));
                        }
@@ -154,6 +155,12 @@ public class DbController {
                        return null;
                }
 
+               if(!dbName.equals(dbConfig.getName()))
+               {
+                       sendError(response, 400, "Mismatch DB name.");
+                       return null;
+               }
+
                Db oldDb = dbService.getDb(dbConfig.getName());
                if (oldDb == null) {
                        sendError(response, 404, "Db not found: " + dbConfig.getName());
@@ -162,11 +169,12 @@ public class DbController {
                        oldDb.setName(dbConfig.getName());
                        oldDb.setHost(dbConfig.getHost());
                        oldDb.setPort(dbConfig.getPort());
+                       oldDb.setEnabled(dbConfig.isEnabled());
                        oldDb.setLogin(dbConfig.getLogin());
                        oldDb.setPass(dbConfig.getPassword());
                        oldDb.setEncrypt(false);
 
-                       if(oldDb.getName().equals("Elecsticsearch") || oldDb.getName().equals("Druid"))
+                       if(!oldDb.getName().equals("Elecsticsearch") || !oldDb.getName().equals("Druid"))
                        {
                                oldDb.setDatabase(dbConfig.getDatabase());
                        }
@@ -238,7 +246,12 @@ public class DbController {
        {
                dbConfigMsg.setName(db.getName());
                dbConfigMsg.setHost(db.getHost());
+               dbConfigMsg.setEnabled(db.isEnabled());
                dbConfigMsg.setPort(db.getPort());
+               dbConfigMsg.setLogin(db.getLogin());
+               dbConfigMsg.setDatabase(db.getDatabase());
+
+
        }
 
        private void sendError(HttpServletResponse response, int sc, String msg) throws IOException {
index d3a1fce..82f4d9e 100644 (file)
@@ -163,6 +163,23 @@ public class TopicController {
                }
        }
 
+       @DeleteMapping("/{topicName}")
+       @ResponseBody
+       @ApiOperation(value="Update a topic.")
+       public void deleteTopic(@PathVariable("topicName") String topicName, HttpServletResponse response) throws IOException
+       {
+               Topic oldTopic = topicService.getTopic(topicName);
+               if (oldTopic == null) {
+                       sendError(response, 404, "Topic not found "+topicName);
+               } else {
+                       Set<Db> dbRelation = oldTopic.getDbs();
+                       dbRelation.clear();
+                       topicRepository.save(oldTopic);
+                       topicRepository.delete(oldTopic);
+                       response.setStatus(204);
+               }
+       }
+
        private PostReturnBody<TopicConfig> mkPostReturnBody(int statusCode, Topic topic)
        {
                PostReturnBody<TopicConfig> retBody = new PostReturnBody<>();
index e9d9ba8..10aaba8 100644 (file)
@@ -35,6 +35,7 @@ import lombok.Setter;
 public class DbConfig {
     private String name;
     private String host;
+    private boolean enabled;
     private String login;
     private String password;
     private String database;
index e957c0f..3073716 100644 (file)
@@ -143,6 +143,7 @@ public class Topic {
                TopicConfig tConfig = new TopicConfig();
 
                tConfig.setName(getName());
+               tConfig.setLogin(getLogin());
                tConfig.setEnabled(isEnabled());
                tConfig.setDataFormat(dataFormat);
                tConfig.setSaveRaw(isSaveRaw());