[CCSDK-1921]Connection Timeout and Info Logging
[ccsdk/sli/plugins.git] / grToolkit / provider / src / main / java / org / onap / ccsdk / sli / plugins / grtoolkit / GrToolkitProvider.java
index f10055a..116afb3 100755 (executable)
@@ -103,6 +103,7 @@ public class GrToolkitProvider implements AutoCloseable, GrToolkitService, DataT
     private static final String FAULTY = "FAULTY";
     private static final String VALUE = "value";
     private static final String OUTPUT = "output";
+    private static final int CONNECTION_TIMEOUT = 5000; // 5 second timeout
     private String akkaConfig;
     private String jolokiaClusterPath;
     private String shardManagerPath;
@@ -256,7 +257,7 @@ public class GrToolkitProvider implements AutoCloseable, GrToolkitService, DataT
         outputBuilder.setStatus("200");
         outputBuilder.setHealth(getAdminHealth());
         outputBuilder.setServedBy(member);
-
+        log.info(outputBuilder.build().toString());
         return Futures.immediateFuture(RpcResultBuilder.<AdminHealthOutput>status(true).withResult(outputBuilder.build()).build());
     }
 
@@ -484,6 +485,10 @@ public class GrToolkitProvider implements AutoCloseable, GrToolkitService, DataT
 
         outputBuilder.setServedBy(member);
         RpcResult<ClusterHealthOutput> rpcResult = RpcResultBuilder.<ClusterHealthOutput>status(true).withResult(outputBuilder.build()).build();
+        log.info("{}:cluster-health: Site 1 | Healthy ODLs {}", APP_NAME, site1Health);
+        if(siteConfiguration == SiteConfiguration.GEO) {
+            log.info("{}:cluster-health: Site 2 | Healthy ODLs {}", APP_NAME, site2Health);
+        }
         return Futures.immediateFuture(rpcResult);
     }
 
@@ -557,6 +562,8 @@ public class GrToolkitProvider implements AutoCloseable, GrToolkitService, DataT
                 outputBuilder.getSites().add(builder.build());
                 builder = getSitesBuilder(site2HealthyODLs, site2Voting, crossSiteAdminHealthy, crossSiteDbHealthy, crossSiteIdentifier);
                 outputBuilder.getSites().add(builder.build());
+                log.info("{}:site-health: Site 1 ({}) | hasVotingMembers?: {} | Healthy ODLs: {} | ADM isHealthy?: {} | DB isHealthy?: {}", APP_NAME, siteIdentifier, site1Voting, site1HealthyODLs, HEALTHY.equals(adminHealth), HEALTHY.equals(databaseHealth));
+                log.info("{}:site-health: Site 2 ({}) | hasVotingMembers?: {} | Healthy ODLs: {} | ADM isHealthy?: {} | DB isHealthy?: {}", APP_NAME, crossSiteIdentifier, site2Voting, site2HealthyODLs, crossSiteAdminHealthy, crossSiteDbHealthy);
             }
             else {
                 // Make calls over to site 1 healthchecks
@@ -595,6 +602,8 @@ public class GrToolkitProvider implements AutoCloseable, GrToolkitService, DataT
                 outputBuilder.getSites().add(builder.build());
                 builder = getSitesBuilder(site2HealthyODLs, site2Voting, HEALTHY.equals(adminHealth), HEALTHY.equals(databaseHealth), siteIdentifier);
                 outputBuilder.getSites().add(builder.build());
+                log.info("{}:site-health: Site 1 ({}) | hasVotingMembers?: {} | Healthy ODLs: {} | ADM isHealthy?: {} | DB isHealthy?: {}", APP_NAME, siteIdentifier, site1Voting, site1HealthyODLs, HEALTHY.equals(adminHealth), HEALTHY.equals(databaseHealth));
+                log.info("{}:site-health: Site 2 ({}) | hasVotingMembers?: {} | Healthy ODLs: {} | ADM isHealthy?: {} | DB isHealthy?: {}", APP_NAME, crossSiteIdentifier, site2Voting, site2HealthyODLs, crossSiteAdminHealthy, crossSiteDbHealthy);
             }
         }
 
@@ -779,7 +788,7 @@ public class GrToolkitProvider implements AutoCloseable, GrToolkitService, DataT
                         (org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.halt.akka.traffic.input.NodeInfo) node;
                 log.info("Isolating {}", n.getNode());
                 executeCommand(String.format("sudo /sbin/iptables -A INPUT -p tcp --destination-port %s -j DROP -s %s", properties.get(PropertyKeys.CONTROLLER_PORT_AKKA), n.getNode()));
-                executeCommand(String.format("sudo /sbin/iptables -A OUTPUT -p tcp --destination-port %s -j DROP -s %s", n.getPort(), n.getNode()));
+                executeCommand(String.format("sudo /sbin/iptables -A OUTPUT -p tcp --destination-port %s -j DROP -d %s", n.getPort(), n.getNode()));
             }
 
         } else if(task == IpTables.DELETE) {
@@ -788,7 +797,7 @@ public class GrToolkitProvider implements AutoCloseable, GrToolkitService, DataT
                         (org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.resume.akka.traffic.input.NodeInfo) node;
                 log.info("De-isolating {}", n.getNode());
                 executeCommand(String.format("sudo /sbin/iptables -D INPUT -p tcp --destination-port %s -j DROP -s %s", properties.get(PropertyKeys.CONTROLLER_PORT_AKKA), n.getNode()));
-                executeCommand(String.format("sudo /sbin/iptables -D OUTPUT -p tcp --destination-port %s -j DROP -s %s", n.getPort(), n.getNode()));
+                executeCommand(String.format("sudo /sbin/iptables -D OUTPUT -p tcp --destination-port %s -j DROP -d %s", n.getPort(), n.getNode()));
             }
 
         }
@@ -931,6 +940,8 @@ public class GrToolkitProvider implements AutoCloseable, GrToolkitService, DataT
         connection.addRequestProperty("Authorization", auth);
         connection.setRequestProperty("Connection", "keep-alive");
         connection.setRequestProperty("Proxy-Connection", "keep-alive");
+        connection.setConnectTimeout(CONNECTION_TIMEOUT);
+        connection.setReadTimeout(CONNECTION_TIMEOUT);
         return connection;
     }