You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2013/12/09 12:13:06 UTC

[1/2] git commit: Added load balancer cartridge scripts

Updated Branches:
  refs/heads/master 9e95f8f04 -> 85c511639


Added load balancer cartridge scripts


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

Branch: refs/heads/master
Commit: 95175020d1fb0637b9a96bf721a97a41971bd852
Parents: 57cccfb
Author: Imesh Gunaratne <im...@apache.org>
Authored: Mon Dec 9 16:39:58 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon Dec 9 16:39:58 2013 +0530

----------------------------------------------------------------------
 .../ec2/load-balancer/start-load-balancer.sh    |  70 +++++++++++
 .../templates/loadbalancer.conf.template        | 126 +++++++++++++++++++
 2 files changed, 196 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/95175020/products/cartridge-agent/modules/cartridge-agent/ec2/load-balancer/start-load-balancer.sh
----------------------------------------------------------------------
diff --git a/products/cartridge-agent/modules/cartridge-agent/ec2/load-balancer/start-load-balancer.sh b/products/cartridge-agent/modules/cartridge-agent/ec2/load-balancer/start-load-balancer.sh
new file mode 100755
index 0000000..38815d6
--- /dev/null
+++ b/products/cartridge-agent/modules/cartridge-agent/ec2/load-balancer/start-load-balancer.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+# --------------------------------------------------------------
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# --------------------------------------------------------------
+
+# --------------------------------------------------------------
+# Load Balancer Start Script
+# --------------------------------------------------------------
+#
+# This script will update the load balancer configuration with 
+# parameter values received via the payload and start the server.
+#
+
+set -e # Terminate on any error
+export LOG="/var/log/apache-stratos/start-load-balancer.log"
+export JAVA_HOME=/opt/jdk1.6.0_45
+
+script_home=/opt/apache-stratos-cartridge-agent/load-balancer
+lb_home=/opt/apache-stratos-load-balancer
+lb_conf_path=$lb_home/repository/conf
+
+echo "Generating loadbalancer.conf file..." | tee -a $LOG
+mb_ip=$1
+mb_port=$2
+cep_ip=$3
+cep_port=$4
+echo "mb-ip: $mb_ip" | tee -a $LOG
+echo "mb-port: $mb_port" | tee -a $LOG
+echo "cep-ip: $cep_ip" | tee -a $LOG
+echo "cep-port: $cep_port" | tee -a $LOG
+
+cp -f $script_home/templates/loadbalancer.conf.template $script_home/loadbalancer.conf.orig
+cat $script_home/loadbalancer.conf.orig | sed -e "s@MB_IP@$mb_ip@g" > $script_home/loadbalancer.conf
+
+cp -f $script_home/loadbalancer.conf $script_home/loadbalancer.conf.orig
+cat $script_home/loadbalancer.conf.orig | sed -e "s@MB_PORT@$mb_port@g" > $script_home/loadbalancer.conf
+    
+cp -f $script_home/loadbalancer.conf $script_home/loadbalancer.conf.orig
+cat $script_home/loadbalancer.conf.orig | sed -e "s@CEP_IP@$cep_ip@g" > $script_home/loadbalancer.conf
+
+cp -f $script_home/loadbalancer.conf $script_home/loadbalancer.conf.orig
+cat $script_home/loadbalancer.conf.orig | sed -e "s@CEP_PORT@$cep_port@g" > $script_home/loadbalancer.conf
+rm $script_home/loadbalancer.conf.orig
+
+echo "Moving generated loadbalancer.conf to $lb_conf_path" | tee -a $LOG
+mv -f $script_home/loadbalancer.conf $lb_conf_path
+
+echo "Starting load balancer..." | tee -a $LOG
+sh $lb_home/bin/stratos.sh start &
+
+echo "Load balancer started" | tee -a $LOG
+
+

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/95175020/products/cartridge-agent/modules/cartridge-agent/ec2/load-balancer/templates/loadbalancer.conf.template
----------------------------------------------------------------------
diff --git a/products/cartridge-agent/modules/cartridge-agent/ec2/load-balancer/templates/loadbalancer.conf.template b/products/cartridge-agent/modules/cartridge-agent/ec2/load-balancer/templates/loadbalancer.conf.template
new file mode 100755
index 0000000..ff7103d
--- /dev/null
+++ b/products/cartridge-agent/modules/cartridge-agent/ec2/load-balancer/templates/loadbalancer.conf.template
@@ -0,0 +1,126 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#  
+#  http://www.apache.org/licenses/LICENSE-2.0
+#  
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+loadbalancer {
+
+    # Default load balancing algorithm
+    # Refer algorithm name from algorithms section.
+    algorithm: round-robin;
+
+    # Enable/disable failover handling
+    # If failover handling is enabled load balancer will retry requests on all members in a
+    # given cluster if the selected member fails to respond.
+    failover: true;
+
+    # Enable/disable session affinity
+    # If session affinity is enabled load balancer will track all outgoing sessions and delegate
+    # incoming requests to members with same sessions.
+    session-affinity: true;
+
+    # Session timeout in milli-seconds
+    session-timeout: 90000;
+
+    # Enable/disable topology event listener
+    # If this property is set to true, load balancer will listen to topology events and build
+    # the topology configuration accordingly. If not static configuration given in the services
+    # section will be used.
+    topology-event-listener: true;
+
+    # Message broker endpoint
+    # Provide message broker ip address and port if topology-event-listener or multi-tenancy is set to true.
+    mb-ip: MB_IP;
+    mb-port: MB_PORT;
+
+    # Topology service filter
+    # Provide service names in a comma separated list to filter incoming topology events if
+    # topology_event_listener_enabled is set to true. This functionality could be used for hosting
+    # dedicated load balancers for services.
+    # topology-service-filter: service-name1, service-name2;
+
+    # Topology cluster filter
+    # Provide cluster ids in a comma separated list to filter incoming topology events if
+    # topology_event_listener_enabled is set to true. This functionality could be used for hosting
+    # dedicated load balancers for subscriptions.
+    # topology-cluster-filter: cluster-id1, cluster-id2;
+
+    # Enable/disable cep statistics publisher
+    cep-stats-publisher: true;
+
+    # Complex event processor endpoint
+    # Provide CEP ip address and port if cep-stats-publisher is set to true.
+    cep-ip: CEP_IP;
+    cep-port: CEP_PORT;
+
+    # Multi-tenancy
+    # If this property is set to true, all incoming request URLs will be scanned using the given tenant-identifier-regex
+    # and matching tenant identifier value will be used to delegate the requests to the relevant cluster.
+    multi-tenancy: true;
+    tenant-identifier: tenant-domain; # Tenant identifier could either be tenant-id or tenant-domain.
+    tenant-identifier-regex: t/([^/]*)/; # Regular expression for extracting the tenant identifier value from the URL.
+
+    # Load balancing algorithm class names
+    algorithms {
+        round-robin {  # algorithm name
+            class-name: org.apache.stratos.load.balancer.algorithm.RoundRobin;
+        }
+    }
+
+    # Static topology configuration
+    # Define a static topology configuration if topology-event-listener is set to false.
+    # A sample configuration has been given below:
+    #
+    # services {
+    #     app-server {  # service name, a unique identifier to identify a service
+    #         multi-tenant: true; # Set to true if the service is multi-tenant
+    #         clusters {
+    #             app-server-cluster1 {  # cluster id, a unique identifier to identify a cluster
+    #                 hosts: cluster1.appserver.foo.org, cluster1.org;  # comma separated hostname list
+    #                 tenant-range: 1-100; # Tenant range of the cluster
+    #                 algorithm: round-robin;  # algorithm name
+    #                 members {
+    #                     m1 {  # member id, a unique identifier to identify a member
+    #                         ip: 10.0.0.10; # member ip address
+    #                         ports {
+    #                             http {
+    #                                 value: 8080; # application port
+    #                                 proxy: 80;   # proxy port exposed by load balancer transport, set this value in axis2.xml
+    #                             }
+    #                             https {
+    #                                 value: 8090;
+    #                                 proxy: 443;
+    #                             }
+    #                         }
+    #                     }
+    #                     m2 {
+    #                         ip: 10.0.0.11;
+    #                         ports {
+    #                             http {
+    #                                 value: 8080;
+    #                                 proxy: 80;
+    #                             }
+    #                             https {
+    #                                 value: 8090;
+    #                                 proxy: 443;
+    #                             }
+    #                         }
+    #                     }
+    #                 }
+    #             }
+    #         }
+    #     }
+    # }
+}


[2/2] git commit: Merge remote-tracking branch 'origin/master'

Posted by im...@apache.org.
Merge remote-tracking branch 'origin/master'


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

Branch: refs/heads/master
Commit: 85c5116393b27bbb06677bc609cb9ce54bf14588
Parents: 9517502 9e95f8f
Author: Imesh Gunaratne <im...@apache.org>
Authored: Mon Dec 9 16:42:59 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon Dec 9 16:42:59 2013 +0530

----------------------------------------------------------------------
 .../autoscaler/policy/PolicyManager.java        |  10 +-
 .../autoscaler/registry/RegistryManager.java    |   2 +-
 .../src/main/resources/AutoScalerService.wsdl   | 455 ++++++++++++++++++-
 3 files changed, 441 insertions(+), 26 deletions(-)
----------------------------------------------------------------------