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/f2025169
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f2025169
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f2025169

Branch: refs/heads/master
Commit: f2025169b139980817ba545240b3ec9d469c3ce0
Parents: caed60c
Author: Gayan Gunarathne <[email protected]>
Authored: Sun Jul 26 18:59:15 2015 +0530
Committer: Gayan Gunarathne <[email protected]>
Committed: Mon Jul 27 15:02:11 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/f2025169/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/f2025169/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/f2025169/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/f2025169/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;
+       }
 }

Reply via email to