Updated Branches:
  refs/heads/master 757f7bf00 -> d2365339d

Add checkOpenPorts() method to health stat publisher


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/bce62b06
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/bce62b06
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/bce62b06

Branch: refs/heads/master
Commit: bce62b063bb504ec43408b38323aaf7dd646c483
Parents: 4316ae2
Author: Manula Thantriwatte <[email protected]>
Authored: Mon Nov 25 15:06:22 2013 +0530
Committer: Manula Thantriwatte <[email protected]>
Committed: Mon Nov 25 15:06:22 2013 +0530

----------------------------------------------------------------------
 .../src/main/bin/health-publisher.sh            |  2 +-
 .../health/publisher/HealthPublisherClient.java | 25 ++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/bce62b06/products/cartridge-agent/modules/health-stats/src/main/bin/health-publisher.sh
----------------------------------------------------------------------
diff --git 
a/products/cartridge-agent/modules/health-stats/src/main/bin/health-publisher.sh
 
b/products/cartridge-agent/modules/health-stats/src/main/bin/health-publisher.sh
index f5c0104..17b9521 100755
--- 
a/products/cartridge-agent/modules/health-stats/src/main/bin/health-publisher.sh
+++ 
b/products/cartridge-agent/modules/health-stats/src/main/bin/health-publisher.sh
@@ -28,7 +28,7 @@ 
class_path=${lib_path}andes-client-0.13.wso2v8.jar:${lib_path}ant-1.7.0.jar:${li
 
 current_path=`pwd`
 
-java -cp $class_path -Dmember.id=$1 
-Dkey.file.path=$current_path/../security/client-truststore.jks 
-Dthrift.receiver.ip=$2 -Dthrift.receiver.port=$3 
org.apache.stratos.cartridge.agent.health.publisher.Main $*
+java -cp $class_path -Dmember.id=$1 
-Dkey.file.path=$current_path/../security/client-truststore.jks 
-Dthrift.receiver.ip=$2 -Dthrift.receiver.port=$3 -Dopen.ports=$4 
org.apache.stratos.cartridge.agent.health.publisher.Main $*
 
 echo "Health publisher completed"
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/bce62b06/products/cartridge-agent/modules/health-stats/src/main/java/org/apache/stratos/cartridge/agent/health/publisher/HealthPublisherClient.java
----------------------------------------------------------------------
diff --git 
a/products/cartridge-agent/modules/health-stats/src/main/java/org/apache/stratos/cartridge/agent/health/publisher/HealthPublisherClient.java
 
b/products/cartridge-agent/modules/health-stats/src/main/java/org/apache/stratos/cartridge/agent/health/publisher/HealthPublisherClient.java
index d452c03..26fedca 100644
--- 
a/products/cartridge-agent/modules/health-stats/src/main/java/org/apache/stratos/cartridge/agent/health/publisher/HealthPublisherClient.java
+++ 
b/products/cartridge-agent/modules/health-stats/src/main/java/org/apache/stratos/cartridge/agent/health/publisher/HealthPublisherClient.java
@@ -27,6 +27,7 @@ import java.lang.System;
 import java.util.HashMap;
 import java.util.Map;
 import java.lang.management.ManagementFactory;
+import java.net.*;
 
 public class HealthPublisherClient {
 
@@ -45,6 +46,13 @@ public class HealthPublisherClient {
         statsMap.put("memory_consumption", memoryConsumption);
         statsMap.put("load_average", 
(double)ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage());
 
+        // This section checks open ports in the vm
+        boolean isOpen = checkOpenPorts();
+
+        if ( !isOpen ) {
+            statsMap.put("port_not_open", 0.0);
+        }
+
         Object statObj = (Object)statsMap;
 
         return statObj;
@@ -64,4 +72,21 @@ public class HealthPublisherClient {
             Thread.currentThread().interrupt();
         }
     }
+
+    private boolean checkOpenPorts() {
+        int portNumber = 0;
+        String ports = System.getProperty("open.ports");
+        String[] portsArray = ports.split(",");
+
+        for (int i = 0; i < portsArray.length; i++) {
+            try {
+                portNumber = Integer.parseInt(portsArray[i].trim());
+                Socket ServerSok = new Socket("127.0.0.1", portNumber);
+                ServerSok.close();
+            } catch (Exception e) {
+                return false;
+            }
+        }
+        return true;
+    }
 }
\ No newline at end of file

Reply via email to