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);