Repository: stratos Updated Branches: refs/heads/master 2bab7e453 -> 3393d4383
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/3393d438 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/3393d438 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/3393d438 Branch: refs/heads/master Commit: 3393d438372ba41d75c5558a61502dd40b189d19 Parents: 2bab7e4 Author: Dinesh Bandara <[email protected]> Authored: Mon Jul 7 15:02:13 2014 +0530 Committer: Dinesh Bandara <[email protected]> Committed: Mon Jul 7 15:02:13 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/3393d438/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/3393d438/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/3393d438/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/3393d438/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);
