Add Logic for Parsing Sub Info from DCAE 05/22105/1
authorGuangrong Fu <fu.guangrong@zte.com.cn>
Sat, 4 Nov 2017 17:16:22 +0000 (01:16 +0800)
committerGuangrong Fu <fu.guangrong@zte.com.cn>
Sat, 4 Nov 2017 17:16:22 +0000 (01:16 +0800)
Change-Id: Ie74415afb700eec60b43543834d5ca97218ce8bf
Issue-ID: HOLMES-81
Signed-off-by: Guangrong Fu <fu.guangrong@zte.com.cn>
holmes-actions/src/main/java/org/onap/holmes/common/dcae/DcaeConfigurationQuery.java
holmes-actions/src/main/java/org/onap/holmes/common/dcae/entity/SecurityInfo.java
holmes-actions/src/main/java/org/onap/holmes/common/dcae/utils/DcaeConfigurationParser.java

index a0bb943..597e879 100644 (file)
@@ -28,22 +28,7 @@ public class DcaeConfigurationQuery {
 
     public static DcaeConfigurations getDcaeConfigurations(String hostname)
             throws CorrelationException {
-        String serviceAddrInfo = MicroServiceConfig.getServiceConfigInfoFromCBS(hostname);
-        String response;
-        try {
-            response = getDcaeResponse(serviceAddrInfo);
-        } catch (Exception e) {
-            throw new CorrelationException("Failed to connect to DCAE. ", e);
-        }
-        DcaeConfigurations dcaeConfigurations = null;
-        dcaeConfigurations = DcaeConfigurationParser.parse(response);
-        return dcaeConfigurations;
-    }
-
-    private static String getDcaeResponse(String serviceAddrInfo) {
-        Client client = ClientBuilder.newClient(new ClientConfig());
-        WebTarget webTarget = client.target(serviceAddrInfo);
-        return webTarget.request("application/json").get()
-                .readEntity(String.class);
+        String serviceConfig = MicroServiceConfig.getServiceConfigInfoFromCBS(hostname);
+        return DcaeConfigurationParser.parse(serviceConfig);
     }
 }
index 6c6fa56..eeab5a7 100644 (file)
@@ -35,5 +35,6 @@ public class SecurityInfo {
         private String clientId;\r
         private String clientRole;\r
         private String topicUrl;\r
+        private String type;\r
     }\r
 }\r
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