Update the logic for MSB addr retrieving 23/21223/1
authorGuangrong Fu <fu.guangrong@zte.com.cn>
Mon, 30 Oct 2017 07:01:53 +0000 (15:01 +0800)
committerGuangrong Fu <fu.guangrong@zte.com.cn>
Mon, 30 Oct 2017 07:01:53 +0000 (15:01 +0800)
Change-Id: Id4258d763489f622f68c8152bb89e093993d1982
Issue-ID: HOLMES-81
Signed-off-by: Guangrong Fu <fu.guangrong@zte.com.cn>
holmes-actions/src/main/java/org/onap/holmes/common/config/MicroServiceConfig.java
holmes-actions/src/test/java/org/onap/holmes/common/config/MicroServiceConfigTest.java

index 01a5f2e..212bc66 100644 (file)
@@ -49,6 +49,7 @@ public class MicroServiceConfig {
     public static String getConfigBindingServiceAddrInfo() {\r
         String ret = null;\r
         String queryString = getConsulAddrInfo() + CONFIG_BINDING_SERVICE;\r
+        log.info("Query the CBS address using the URL: " + queryString);\r
         try {\r
             JSONObject addrJson = (JSONObject) JSONArray.fromObject(execQuery(queryString)).get(0);\r
             if (addrJson.has("ServiceAddress") && addrJson.has("ServicePort")) {\r
@@ -57,6 +58,7 @@ public class MicroServiceConfig {
         } catch (Exception e) {\r
             log.warn(e.getMessage(), e);\r
         }\r
+        log.info("The CBS address is " + ret);\r
         return ret;\r
     }\r
 \r
@@ -71,6 +73,7 @@ public class MicroServiceConfig {
         String url = getConfigBindingServiceAddrInfo() + "/service_component/" +serviceName;\r
         try {\r
             JSONObject jsonObject = JSONObject.fromObject(execQuery(url));\r
+            log.info("The origin configurations (" + url + ") returned by DCAE is: " + jsonObject.toString());\r
             if (jsonObject.has(serviceName)) {\r
                 ret = (String) jsonObject.getJSONArray(serviceName).get(0);\r
             }\r
@@ -92,7 +95,11 @@ public class MicroServiceConfig {
     public static String[] getMsbAddrInfo() {\r
         String[] msbServerInfo = null;\r
 \r
-        String info = getServiceAddrInfoFromCBS(MSB_ADDR);\r
+        //String info = getServiceAddrInfoFromCBS(MSB_ADDR);\r
+        String info = getServiceAddrInfoFromCBS(getEnv(HOSTNAME));\r
+        log.info("Got the service information of \"" + getEnv(HOSTNAME) + "\" from CBS. The response is " + info + ".");\r
+        JSONObject infoObj = JSONObject.fromObject(info);\r
+        info = infoObj.has("msb.hostname") ? infoObj.getString("msb.hostname") : null;\r
         if (info != null){\r
             msbServerInfo = split(info);\r
         } else {\r
@@ -105,6 +112,7 @@ public class MicroServiceConfig {
     public static String[] getServiceAddrInfo() {\r
         String[] serviceAddrInfo = null;\r
         String info = getServiceAddrInfoFromCBS(getEnv(HOSTNAME));\r
+        log.info("Got the service information of \"" + getEnv(HOSTNAME) + "\" from CBS. The response is " + info + ".");\r
         if (info != null){\r
             serviceAddrInfo = split(info);\r
         } else {\r
index 13064c5..23dd075 100644 (file)
@@ -41,15 +41,28 @@ public class MicroServiceConfigTest {
     @Test\r
     public void getMsbServerAddrTest() {\r
         System.setProperty(MSB_ADDR, "test:80");\r
+        System.setProperty(HOSTNAME, "rule-mgmt");\r
+        PowerMock.mockStaticPartial(MicroServiceConfig.class, "getServiceAddrInfoFromCBS", String.class);\r
+        EasyMock.expect(MicroServiceConfig.getServiceAddrInfoFromCBS(System.getProperty(HOSTNAME)))\r
+                .andReturn("{\"msb.hostname\": \"test:80\"}");\r
+        PowerMock.replayAll();\r
         assertThat("http://test:80", equalTo(getMsbServerAddr()));\r
+        PowerMock.verifyAll();\r
+        System.clearProperty(MicroServiceConfig.HOSTNAME);\r
         System.clearProperty(MicroServiceConfig.MSB_ADDR);\r
     }\r
 \r
     @Test\r
     public void getMsbServerIpTest() {\r
         System.setProperty(MSB_ADDR, "10.54.23.79:80");\r
+        System.setProperty(HOSTNAME, "rule-mgmt");\r
+        PowerMock.mockStaticPartial(MicroServiceConfig.class, "getServiceAddrInfoFromCBS", String.class);\r
+        EasyMock.expect(MicroServiceConfig.getServiceAddrInfoFromCBS(System.getProperty(HOSTNAME)))\r
+                .andReturn("{\"msb.hostname\": \"10.54.23.79:80\"}").times(2);\r
+        PowerMock.replayAll();\r
         assertThat("10.54.23.79", equalTo(getMsbAddrInfo()[0]));\r
         assertThat("80", equalTo(getMsbAddrInfo()[1]));\r
+        System.clearProperty(MicroServiceConfig.HOSTNAME);\r
         System.clearProperty(MSB_ADDR);\r
     }\r
 \r
@@ -160,11 +173,10 @@ public class MicroServiceConfigTest {
     @Test\r
     public void getMsbAddrInfo_msb_registered() throws Exception {\r
         System.setProperty(MSB_ADDR, "10.74.5.8:1545");\r
-        PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class);\r
-        PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject())\r
-                .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]");\r
-        PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject())\r
-                .andReturn("{\"" + MSB_ADDR + "\": \"[\\\"127.0.0.3:5432\\\"]\"}");\r
+        System.setProperty(HOSTNAME, "rule-mgmt");\r
+        PowerMock.mockStaticPartial(MicroServiceConfig.class, "getServiceAddrInfoFromCBS", String.class);\r
+        EasyMock.expect(MicroServiceConfig.getServiceAddrInfoFromCBS(System.getProperty(HOSTNAME)))\r
+                .andReturn("{\"msb.hostname\": \"127.0.0.3:5432\"}");\r
 \r
         PowerMock.replayAll();\r
         String[] msbInfo = getMsbAddrInfo();\r
@@ -173,16 +185,16 @@ public class MicroServiceConfigTest {
         assertThat(msbInfo[0], equalTo("127.0.0.3"));\r
         assertThat(msbInfo[1], equalTo("5432"));\r
 \r
+        System.clearProperty(HOSTNAME);\r
         System.clearProperty(MSB_ADDR);\r
     }\r
 \r
     @Test\r
     public void getMsbAddrInfo_msb_not_registered() throws Exception {\r
         System.setProperty(MSB_ADDR, "10.74.5.8:1545");\r
-        PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class);\r
-        PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject())\r
-                .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]");\r
-        PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject())\r
+        System.setProperty(HOSTNAME, "rule-mgmt");\r
+        PowerMock.mockStaticPartial(MicroServiceConfig.class, "getServiceAddrInfoFromCBS", String.class);\r
+        EasyMock.expect(MicroServiceConfig.getServiceAddrInfoFromCBS(System.getProperty(HOSTNAME)))\r
                 .andReturn("{}");\r
 \r
         PowerMock.replayAll();\r
@@ -192,6 +204,7 @@ public class MicroServiceConfigTest {
         assertThat(msbInfo[0], equalTo("10.74.5.8"));\r
         assertThat(msbInfo[1], equalTo("1545"));\r
 \r
+        System.clearProperty(HOSTNAME);\r
         System.clearProperty(MSB_ADDR);\r
     }\r
 \r