Add Logic for Parsing Sub Info from DCAE
[holmes/common.git] / holmes-actions / src / main / java / org / onap / holmes / common / dcae / utils / DcaeConfigurationParser.java
index 9284dd8..1143263 100644 (file)
@@ -16,7 +16,6 @@
 package org.onap.holmes.common.dcae.utils;\r
 \r
 import java.util.Arrays;\r
-import java.util.HashMap;\r
 import java.util.List;\r
 import java.util.Map.Entry;\r
 import java.util.Set;\r
@@ -38,7 +37,7 @@ public class DcaeConfigurationParser {
     public static DcaeConfigurations parse(String jsonStr) throws CorrelationException {\r
         if (StringUtils.isEmpty(jsonStr)) {\r
             throw new CorrelationException(\r
-                    "Can not resolve configurations from DCAE. The configuration string is empty");\r
+                    "Can not resolve configurations from DCAE. The configuration string is empty.");\r
         }\r
 \r
         DcaeConfigurations ret = new DcaeConfigurations();\r
@@ -52,10 +51,7 @@ public class DcaeConfigurationParser {
 \r
         fillInRules(ret, jsonObject);\r
         fillInPublishesInfo(ret, jsonObject);\r
-\r
-        if (jsonObject.containsKey("streams_subscribes")) {\r
-\r
-        }\r
+        fillInSubscribesInfo(ret, jsonObject);\r
 \r
         JSONObject finalJsonObject = jsonObject;\r
         Stream.of(jsonObject.keySet().toArray(new String[0]))\r
@@ -74,13 +70,25 @@ public class DcaeConfigurationParser {
         }\r
     }\r
 \r
+    private static void fillInSubscribesInfo(DcaeConfigurations ret, JSONObject jsonObject) {\r
+        if (jsonObject.containsKey("streams_subscribes")) {\r
+            JSONObject subscribes = jsonObject.getJSONObject("streams_subscribes");\r
+            for (Object key : subscribes.keySet()) {\r
+                ret.addSubSecInfo((String) key,\r
+                        createSecurityInfo((String) key, subscribes.getJSONObject((String) key)));\r
+            }\r
+        }\r
+    }\r
+\r
     private static SecurityInfo createSecurityInfo(String key, JSONObject entity) {\r
         SecurityInfo securityInfo = new SecurityInfo();\r
-        securityInfo.setType(entity.getString("type"));\r
-        if (!entity.get("aaf_password").equals("null")) {\r
+        if (entity.containsKey("type")) {\r
+            securityInfo.setType(entity.getString("type"));\r
+        }\r
+        if (entity.containsKey("aaf_password")) {\r
             securityInfo.setAafPassword(entity.getString("aaf_password"));\r
         }\r
-        if (!entity.get("aaf_username").equals("null")) {\r
+        if (entity.containsKey("aaf_username")) {\r
             securityInfo.setAafUsername(entity.getString("aaf_username"));\r
         }\r
         securityInfo.setSecureTopic(!key.endsWith("unsecure"));\r
@@ -90,14 +98,21 @@ public class DcaeConfigurationParser {
 \r
     private static void fillInDmaapInfo(SecurityInfo securityInfo, JSONObject jsonDmaapInfo) {\r
         SecurityInfo.DmaapInfo dmaapInfo = securityInfo.getDmaapInfo();\r
-        dmaapInfo.setLocation(jsonDmaapInfo.getString("location"));\r
-        dmaapInfo.setTopicUrl(jsonDmaapInfo.getString("topic_url"));\r
-        if (!jsonDmaapInfo.get("client_id").equals("null")) {\r
+        if (jsonDmaapInfo.containsKey("location")){\r
+            dmaapInfo.setLocation(jsonDmaapInfo.getString("location"));\r
+        }\r
+        if (jsonDmaapInfo.containsKey("topic_url")) {\r
+            dmaapInfo.setTopicUrl(jsonDmaapInfo.getString("topic_url"));\r
+        }\r
+        if (jsonDmaapInfo.containsKey("client_id")) {\r
             dmaapInfo.setClientId(jsonDmaapInfo.getString("client_id"));\r
         }\r
-        if (!jsonDmaapInfo.get("client_role").equals("null")) {\r
+        if (jsonDmaapInfo.containsKey("client_role")) {\r
             dmaapInfo.setClientRole(jsonDmaapInfo.getString("client_role"));\r
         }\r
+        if (jsonDmaapInfo.containsKey("type")) {\r
+            dmaapInfo.setType(jsonDmaapInfo.getString("type"));\r
+        }\r
     }\r
 \r
     private static void fillInRules(DcaeConfigurations ret, JSONObject jsonObject) {\r