You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ga...@apache.org on 2015/07/27 11:25:12 UTC

[1/3] stratos git commit: Update the LVSConfigWriter class

Repository: stratos
Updated Branches:
  refs/heads/lvs_extension 53b92db3f -> 5823203ca


Update the LVSConfigWriter class


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

Branch: refs/heads/lvs_extension
Commit: 63d3592f65eeff6bb5f1ee2e04640ef483b563c9
Parents: 53b92db
Author: Gayan Gunarathne <ga...@wso2.com>
Authored: Thu Jun 25 18:52:16 2015 +0530
Committer: Gayan Gunarathne <ga...@wso2.com>
Committed: Thu Jun 25 18:52:16 2015 +0530

----------------------------------------------------------------------
 .../stratos/lvs/extension/LVSConfigWriter.java  | 33 +++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/63d3592f/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
index 08edaf1..dcf2910 100644
--- a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
+++ b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
@@ -21,6 +21,7 @@ package org.apache.stratos.lvs.extension;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.util.CommandUtils;
 import org.apache.stratos.load.balancer.common.domain.*;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
@@ -148,6 +149,15 @@ public class LVSConfigWriter {
 	private void generateConfigurationForCluster(Cluster cluster, Collection<Port> ports, StringBuilder text,
 	                                             StringBuilder virtualIPs, String virtualIPsForServices,
 	                                             String scheduleAlgo) {
+		String commandClear = "ipvsadm --clear";
+		try {
+			CommandUtils.executeCommand(commandClear);
+		} catch (IOException e) {
+			if (log.isErrorEnabled()) {
+				log.error(String.format("Could not run the command: %s", commandClear));
+			}
+			throw new RuntimeException(e);
+		}
 
 		String[] virtualIPForServiceArray;
 		if (virtualIPsForServices.contains(",")) {
@@ -159,7 +169,17 @@ public class LVSConfigWriter {
 		boolean isServiceAvailable = false;
 		for (int i = 0; i < virtualIPForServiceArray.length; i++) {
 			String[] virtualIpForService = virtualIPForServiceArray[i].split("\\|");
-			for (Port port : ports) {
+		    for (Port port : ports) {
+			    String command = "ipvsadm -A -t " + virtualIpForService[1]+":" + port.getProxy()+ " -s " + scheduleAlgo;
+
+			    try {
+				    CommandUtils.executeCommand(command);
+			    } catch (IOException e) {
+				    if (log.isErrorEnabled()) {
+					    log.error(String.format("Could not run the command: %s", command));
+				    }
+				    throw new RuntimeException(e);
+			    }
 				for (String hostname : cluster.getHostNames()) {
 					if (virtualIpForService[0].equals(cluster.getServiceName())) {
 
@@ -185,10 +205,21 @@ public class LVSConfigWriter {
 							text.append(TAB).append(TAB).append(TAB).append("connect_timeout 3").append(NEW_LINE);
 							text.append(TAB).append(TAB).append("}").append(NEW_LINE);
 							text.append(TAB).append("}").append(NEW_LINE);
+							String commandMember = "ipvsadm -a -t " + virtualIpForService[1] + ":" + port.getProxy()+" -r " + member.getHostName() + " -m";
+
+							try {
+								CommandUtils.executeCommand(commandMember);
+							} catch (IOException e) {
+								if (log.isErrorEnabled()) {
+									log.error(String.format("Could not run the command: %s", commandMember));
+								}
+								throw new RuntimeException(e);
+							}
 						}
 						text.append("}").append(NEW_LINE);
 						isServiceAvailable = true;
 						virtualIPs.append(TAB).append(TAB).append(virtualIpForService[1]).append(NEW_LINE);
+
 					}
 				}
 			}


[2/3] stratos git commit: Add using the keepalived as a configurable value

Posted by ga...@apache.org.
Add using the keepalived as a configurable value


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

Branch: refs/heads/lvs_extension
Commit: e38da41b286c1a35318d7be958e12568f16cfb73
Parents: 63d3592
Author: Gayan Gunarathne <ga...@wso2.com>
Authored: Sun Jul 26 18:59:15 2015 +0530
Committer: Gayan Gunarathne <ga...@wso2.com>
Committed: Sun Jul 26 18:59:15 2015 +0530

----------------------------------------------------------------------
 .../lvs-extension/src/main/bin/lvs-extension.sh |  3 +-
 .../org/apache/stratos/lvs/extension/LVS.java   |  3 +
 .../stratos/lvs/extension/LVSConfigWriter.java  | 95 ++++++++++----------
 .../stratos/lvs/extension/LVSContext.java       |  4 +
 4 files changed, 59 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/e38da41b/extensions/load-balancer/lvs-extension/src/main/bin/lvs-extension.sh
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/lvs-extension/src/main/bin/lvs-extension.sh b/extensions/load-balancer/lvs-extension/src/main/bin/lvs-extension.sh
index c276cd2..e769c32 100755
--- a/extensions/load-balancer/lvs-extension/src/main/bin/lvs-extension.sh
+++ b/extensions/load-balancer/lvs-extension/src/main/bin/lvs-extension.sh
@@ -44,7 +44,8 @@ properties="-Dlvs.private.ip=127.0.0.1
             -Dservice.name=service-1
             -Dlvs.service.virtualip.set=tomcat2|192.168.56.40,tomcat1|192.168.56.41
             -Dschedule.algorithm=rr
-            -Dserver.state=MASTER"
+            -Dserver.state=MASTER
+            -Dkeepalived=false"
 
 
 # Uncomment below line to enable remote debugging

http://git-wip-us.apache.org/repos/asf/stratos/blob/e38da41b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java
index 6470a13..1d3c7e7 100644
--- a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java
+++ b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java
@@ -45,6 +45,7 @@ public class LVS implements LoadBalancer {
 	private String keepAlivedStartCommand;
 	private String serverState;
 	private String scheduleAlgo;
+	private boolean isKeepAlivedUsed;
 
     public LVS() {
         this.executableFilePath = LVSContext.getInstance().getExecutableFilePath();
@@ -57,6 +58,8 @@ public class LVS implements LoadBalancer {
 	    this.keepAlivedStartCommand=LVSContext.getInstance().getKeepAlivedStartCommand();
 	    this.serverState=LVSContext.getInstance().getServerState();
 	    this.scheduleAlgo=LVSContext.getInstance().getLvsScheduleAlgo();
+	    this.isKeepAlivedUsed=LVSContext.getInstance().getIsKeepAlivedUsed();
+
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/e38da41b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
index dcf2910..bd72a4c 100644
--- a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
+++ b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
@@ -50,6 +50,7 @@ public class LVSConfigWriter {
 	private String virtualIPsForServices;
 	private String serverState;
 	private String scheduleAlgo;
+	private boolean isKeepAlived=false;
 
 	public LVSConfigWriter(String templatePath, String templateName, String confFilePath,
 	                       String statsSocketFilePath, String virtualIPsForServices, String serverState,
@@ -76,7 +77,7 @@ public class LVSConfigWriter {
 							String.format("No ports found in service: %s", service.getServiceName()));
 				}
 				generateConfigurationForCluster(cluster, service.getPorts(), configurationBuilder, virtualIPBuilder,
-				                                virtualIPsForServices, scheduleAlgo);
+				                                virtualIPsForServices, scheduleAlgo,isKeepAlived);
 			}
 		}
 
@@ -148,7 +149,7 @@ public class LVSConfigWriter {
 	 */
 	private void generateConfigurationForCluster(Cluster cluster, Collection<Port> ports, StringBuilder text,
 	                                             StringBuilder virtualIPs, String virtualIPsForServices,
-	                                             String scheduleAlgo) {
+	                                             String scheduleAlgo,boolean isKeepAlived) {
 		String commandClear = "ipvsadm --clear";
 		try {
 			CommandUtils.executeCommand(commandClear);
@@ -180,49 +181,53 @@ public class LVSConfigWriter {
 				    }
 				    throw new RuntimeException(e);
 			    }
-				for (String hostname : cluster.getHostNames()) {
-					if (virtualIpForService[0].equals(cluster.getServiceName())) {
-
-						text.append("virtual_server ").append(virtualIpForService[1]).append(" ")
-						    .append(port.getProxy()).append(
-								" {").append(
-								NEW_LINE);
-						text.append(TAB).append("delay_loop 10").append(NEW_LINE);
-						text.append(TAB).append("lvs_sched ").append(scheduleAlgo).append(NEW_LINE);
-						text.append(TAB).append("lvs_method DR").append(NEW_LINE);
-						text.append(TAB).append("persistence_timeout 5").append(NEW_LINE);
-						text.append(TAB).append("protocol TCP").append(NEW_LINE).append(NEW_LINE);
-
-						//Start real servers block
-
-						for (Member member : cluster.getMembers()) {
-							// Start upstream server block
-							text.append(TAB).append("real_server ").append(member.getHostName()).append(" ")
-							    .append(port.getValue()).append(" {")
-							    .append(NEW_LINE);
-							text.append(TAB).append(TAB).append("weight 50").append(NEW_LINE);
-							text.append(TAB).append(TAB).append("TCP_CHECK {").append(NEW_LINE);
-							text.append(TAB).append(TAB).append(TAB).append("connect_timeout 3").append(NEW_LINE);
-							text.append(TAB).append(TAB).append("}").append(NEW_LINE);
-							text.append(TAB).append("}").append(NEW_LINE);
-							String commandMember = "ipvsadm -a -t " + virtualIpForService[1] + ":" + port.getProxy()+" -r " + member.getHostName() + " -m";
-
-							try {
-								CommandUtils.executeCommand(commandMember);
-							} catch (IOException e) {
-								if (log.isErrorEnabled()) {
-									log.error(String.format("Could not run the command: %s", commandMember));
-								}
-								throw new RuntimeException(e);
-							}
-						}
-						text.append("}").append(NEW_LINE);
-						isServiceAvailable = true;
-						virtualIPs.append(TAB).append(TAB).append(virtualIpForService[1]).append(NEW_LINE);
-
-					}
-				}
-			}
+
+			    for (String hostname : cluster.getHostNames()) {
+				    if (virtualIpForService[0].equals(cluster.getServiceName())) {
+
+					    text.append("virtual_server ").append(virtualIpForService[1]).append(" ")
+					        .append(port.getProxy()).append(
+							    " {").append(
+							    NEW_LINE);
+					    text.append(TAB).append("delay_loop 10").append(NEW_LINE);
+					    text.append(TAB).append("lvs_sched ").append(scheduleAlgo).append(NEW_LINE);
+					    text.append(TAB).append("lvs_method DR").append(NEW_LINE);
+					    text.append(TAB).append("persistence_timeout 5").append(NEW_LINE);
+					    text.append(TAB).append("protocol TCP").append(NEW_LINE).append(NEW_LINE);
+
+					    //Start real servers block
+
+					    for (Member member : cluster.getMembers()) {
+						    // Start upstream server block
+						    text.append(TAB).append("real_server ").append(member.getHostName()).append(" ")
+						        .append(port.getValue()).append(" {")
+						        .append(NEW_LINE);
+						    text.append(TAB).append(TAB).append("weight 50").append(NEW_LINE);
+						    text.append(TAB).append(TAB).append("TCP_CHECK {").append(NEW_LINE);
+						    text.append(TAB).append(TAB).append(TAB).append("connect_timeout 3").append(NEW_LINE);
+						    text.append(TAB).append(TAB).append("}").append(NEW_LINE);
+						    text.append(TAB).append("}").append(NEW_LINE);
+						    String commandMember =
+								    "ipvsadm -a -t " + virtualIpForService[1] + ":" + port.getValue() + " -r " +
+								    member.getHostName() + " -m";
+
+						    try {
+							    CommandUtils.executeCommand(commandMember);
+						    } catch (IOException e) {
+							    if (log.isErrorEnabled()) {
+								    log.error(String.format("Could not run the command: %s", commandMember));
+							    }
+							    throw new RuntimeException(e);
+						    }
+					    }
+					    text.append("}").append(NEW_LINE);
+					    isServiceAvailable = true;
+					    virtualIPs.append(TAB).append(TAB).append(virtualIpForService[1]).append(NEW_LINE);
+
+				    }
+
+			    }
+		    }
 			if (!isServiceAvailable) {
 				log.warn(String.format("Given service is not available in the topology %s", virtualIpForService[0]));
 			}

http://git-wip-us.apache.org/repos/asf/stratos/blob/e38da41b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSContext.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSContext.java b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSContext.java
index 1307473..08feb71 100644
--- a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSContext.java
+++ b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSContext.java
@@ -196,4 +196,8 @@ public class LVSContext {
 	public void setLvsScheduleAlgo(String lvsScheduleAlgo) {
 		this.lvsScheduleAlgo = lvsScheduleAlgo;
 	}
+
+	public boolean getIsKeepAlivedUsed() {
+		return false;
+	}
 }


[3/3] stratos git commit: Add using the keepalived as a configurable value

Posted by ga...@apache.org.
Add using the keepalived as a configurable value


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

Branch: refs/heads/lvs_extension
Commit: 5823203ca7c65eb32889c075d445f040aae63bdf
Parents: e38da41
Author: Gayan Gunarathne <ga...@wso2.com>
Authored: Sun Jul 26 19:35:24 2015 +0530
Committer: Gayan Gunarathne <ga...@wso2.com>
Committed: Sun Jul 26 19:35:24 2015 +0530

----------------------------------------------------------------------
 .../org/apache/stratos/lvs/extension/LVS.java   | 22 +++++++++++++-------
 .../stratos/lvs/extension/LVSConfigWriter.java  |  4 ++--
 2 files changed, 16 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/5823203c/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java
index 1d3c7e7..9494510 100644
--- a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java
+++ b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVS.java
@@ -96,8 +96,10 @@ public class LVS implements LoadBalancer {
 
         // Start nginx and write pid to processIdFilePath
         try {
-            String command = keepAlivedStartCommand;
-            CommandUtils.executeCommand(command);
+	        if(isKeepAlivedUsed) {
+		        String command = keepAlivedStartCommand;
+		        CommandUtils.executeCommand(command);
+	        }
             log.info("lvs instance started");
         } catch (Exception e) {
             log.error("Could not start lvs instance");
@@ -113,9 +115,11 @@ public class LVS implements LoadBalancer {
         try {
             log.info("Reloading configuration...");
 
-            // Execute hot configuration deployment
-            String command = "service keepalived restart";
-            CommandUtils.executeCommand(command);
+            if(isKeepAlivedUsed) {
+	            // Execute hot configuration deployment
+		        String command = "service keepalived restart";
+		        CommandUtils.executeCommand(command);
+	        }
             if (log.isInfoEnabled()) {
                 log.info("Configuration done");
             }
@@ -136,9 +140,11 @@ public class LVS implements LoadBalancer {
         try {
             log.info("Stopping lvs...");
 
-            // Execute hot configuration deployment
-            String command = "service keepalived stop";
-	        CommandUtils.executeCommand(command);
+	        if(isKeepAlivedUsed) {
+		        // Execute hot configuration deployment
+		        String command = "service keepalived stop";
+		        CommandUtils.executeCommand(command);
+	        }
             if (log.isInfoEnabled()) {
                 log.info("LVS stopped");
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/5823203c/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
index bd72a4c..c3beb30 100644
--- a/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
+++ b/extensions/load-balancer/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/LVSConfigWriter.java
@@ -208,8 +208,8 @@ public class LVSConfigWriter {
 						    text.append(TAB).append(TAB).append("}").append(NEW_LINE);
 						    text.append(TAB).append("}").append(NEW_LINE);
 						    String commandMember =
-								    "ipvsadm -a -t " + virtualIpForService[1] + ":" + port.getValue() + " -r " +
-								    member.getHostName() + " -m";
+								    "ipvsadm -a -t " + virtualIpForService[1] + ":" + port.getProxy() + " -r " +
+								    member.getHostName() + ":" + port.getValue() + " -m";
 
 						    try {
 							    CommandUtils.executeCommand(commandMember);