You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by di...@apache.org on 2014/07/07 11:01:34 UTC

[3/3] git commit: Fix for STRATOS-702 - HAProxy Extension won't update it's member list

Fix for STRATOS-702 - HAProxy Extension won't update it's member list


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

Branch: refs/heads/4.0.0
Commit: 37372c2e78e170a97ba24b51d82a501ef36295e6
Parents: 34df881
Author: Dinesh Bandara <di...@wso2.com>
Authored: Mon Jul 7 14:21:12 2014 +0530
Committer: Dinesh Bandara <di...@wso2.com>
Committed: Mon Jul 7 14:28:23 2014 +0530

----------------------------------------------------------------------
 .../balancer/extension/api/LoadBalancerExtension.java  | 13 ++++++++-----
 .../org/apache/stratos/haproxy/extension/HAProxy.java  |  3 +++
 .../stratos/haproxy/extension/HAProxyConfigWriter.java |  5 +++++
 .../haproxy/extension/HAProxyStatisticsReader.java     |  5 +++--
 4 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/37372c2e/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
index 44b7419..e58ce37 100644
--- a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
+++ b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
@@ -92,12 +92,15 @@ public class LoadBalancerExtension implements Runnable {
             @Override
             protected void onEvent(Event event) {
                 try {
-                    // Configure load balancer
-                    loadBalancer.configure(TopologyManager.getTopology());
 
-                    // Start load balancer
-                    loadBalancer.start();
-                    loadBalancerStarted = true;
+                    if (!loadBalancerStarted) {
+                        // Configure load balancer
+                        loadBalancer.configure(TopologyManager.getTopology());
+
+                        // Start load balancer
+                        loadBalancer.start();
+                        loadBalancerStarted = true;
+                    }
                 } catch (Exception e) {
                     if (log.isErrorEnabled()) {
                         log.error("Could not start load balancer", e);

http://git-wip-us.apache.org/repos/asf/stratos/blob/37372c2e/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxy.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxy.java b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxy.java
index 75efdc2..c71eba1 100644
--- a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxy.java
+++ b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxy.java
@@ -84,6 +84,9 @@ public class HAProxy implements LoadBalancer {
     }
 
     public void reload(Topology topology) throws LoadBalancerExtensionException {
+        if(log.isDebugEnabled()) {
+           log.info("Reconfigure and Reload the Load Balancer ");
+        }
         configure(topology);
         reloadConfiguration();
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/37372c2e/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
index db28b0e..66ea32a 100644
--- a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
+++ b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
@@ -61,6 +61,11 @@ public class HAProxyConfigWriter {
         StringBuilder frontendBackendCollection = new StringBuilder();
         for (Service service : topology.getServices()) {
             for (Cluster cluster : service.getClusters()) {
+
+                if(cluster.getServiceName().equals("haproxy"))
+                    continue;
+
+
                 if ((service.getPorts() == null) || (service.getPorts().size() == 0)) {
                     throw new RuntimeException(String.format("No ports found in service: %s", service.getServiceName()));
                 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/37372c2e/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyStatisticsReader.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyStatisticsReader.java b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyStatisticsReader.java
index b38aa3c..676f522 100644
--- a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyStatisticsReader.java
+++ b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyStatisticsReader.java
@@ -60,9 +60,10 @@ public class HAProxyStatisticsReader implements LoadBalancerStatisticsReader {
                     }
 
                     for (Port port : service.getPorts()) {
-                        frontendId = cluster.getClusterId() + "-proxy-" + port.getProxy();
+                        frontendId = cluster.getClusterId() + "-host-" + HAProxyContext.getInstance().getHAProxyPrivateIp() + "-proxy-" + port.getProxy();
+                        //frontendId = cluster.getClusterId() + "-proxy-" + port.getProxy();
                         backendId = frontendId + "-members";
-
+                        
                         for (Member member : cluster.getMembers()) {
                             // echo "get weight <backend>/<server>" | socat stdio <stats-socket>
                             command = String.format("%s/get-weight.sh %s %s %s", scriptsPath, backendId, member.getMemberId(), statsSocketFilePath);