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 2015/03/03 19:57:56 UTC

stratos git commit: Fixing domain mapping & context path handling in load balancer

Repository: stratos
Updated Branches:
  refs/heads/master 173aa13a1 -> 45bea7dcc


Fixing domain mapping & context path handling in load balancer


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

Branch: refs/heads/master
Commit: 45bea7dccc0b9d499c48f4dbdb0bfa028821b470
Parents: 173aa13
Author: Imesh Gunaratne <im...@apache.org>
Authored: Wed Mar 4 00:27:31 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Wed Mar 4 00:27:50 2015 +0530

----------------------------------------------------------------------
 ...cerCommonApplicationSignUpEventReceiver.java | 51 +++++++++++++++++---
 .../common/topology/TopologyProvider.java       | 17 ++++---
 2 files changed, 54 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/45bea7dc/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java
index c9c319d..eb9d799 100644
--- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java
@@ -21,13 +21,20 @@ package org.apache.stratos.load.balancer.common.event.receivers;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.load.balancer.common.topology.TopologyProvider;
 import org.apache.stratos.load.balancer.common.domain.Cluster;
+import org.apache.stratos.load.balancer.common.topology.TopologyProvider;
+import org.apache.stratos.messaging.domain.application.Application;
+import org.apache.stratos.messaging.domain.application.ClusterDataHolder;
 import org.apache.stratos.messaging.domain.application.signup.ApplicationSignUp;
 import org.apache.stratos.messaging.domain.application.signup.DomainMapping;
 import org.apache.stratos.messaging.event.Event;
+import org.apache.stratos.messaging.event.application.signup.ApplicationSignUpAddedEvent;
+import org.apache.stratos.messaging.event.application.signup.ApplicationSignUpRemovedEvent;
 import org.apache.stratos.messaging.event.application.signup.CompleteApplicationSignUpsEvent;
+import org.apache.stratos.messaging.listener.application.signup.ApplicationSignUpAddedEventListener;
+import org.apache.stratos.messaging.listener.application.signup.ApplicationSignUpRemovedEventListener;
 import org.apache.stratos.messaging.listener.application.signup.CompleteApplicationSignUpsEventListener;
+import org.apache.stratos.messaging.message.receiver.application.ApplicationManager;
 import org.apache.stratos.messaging.message.receiver.application.signup.ApplicationSignUpEventReceiver;
 
 /**
@@ -53,13 +60,20 @@ public class LoadBalancerCommonApplicationSignUpEventReceiver extends Applicatio
                     log.debug("Complete application signup event received");
                 }
 
-                CompleteApplicationSignUpsEvent completeApplicationSignUpsEvent = (CompleteApplicationSignUpsEvent)event;
-                for(ApplicationSignUp applicationSignUp : completeApplicationSignUpsEvent.getApplicationSignUps()) {
-                    if(applicationSignUp.getDomainMappings() != null) {
+                CompleteApplicationSignUpsEvent completeApplicationSignUpsEvent = (CompleteApplicationSignUpsEvent) event;
+                for (ApplicationSignUp applicationSignUp : completeApplicationSignUpsEvent.getApplicationSignUps()) {
+
+                    // Add tenant signups
+                    for (String clusterId : applicationSignUp.getClusterIds()) {
+                        topologyProvider.addTenantSignUp(clusterId, applicationSignUp.getTenantId());
+                    }
+
+                    // Add domain mappings
+                    if (applicationSignUp.getDomainMappings() != null) {
                         for (DomainMapping domainMapping : applicationSignUp.getDomainMappings()) {
-                            if(domainMapping != null) {
+                            if (domainMapping != null) {
                                 Cluster cluster = topologyProvider.getClusterByClusterId(domainMapping.getClusterId());
-                                if(cluster != null) {
+                                if (cluster != null) {
                                     cluster.addHostName(domainMapping.getDomainName());
                                     log.info(String.format("Domain mapping added: [cluster] %s [domain] %s",
                                             cluster.getClusterId(), domainMapping.getDomainName()));
@@ -70,5 +84,30 @@ public class LoadBalancerCommonApplicationSignUpEventReceiver extends Applicatio
                 }
             }
         });
+
+        addEventListener(new ApplicationSignUpAddedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+                ApplicationSignUpAddedEvent applicationSignUpAddedEvent = (ApplicationSignUpAddedEvent) event;
+                for (String clusterId : applicationSignUpAddedEvent.getClusterIds()) {
+                    topologyProvider.addTenantSignUp(clusterId, applicationSignUpAddedEvent.getTenantId());
+                }
+            }
+        });
+
+        addEventListener(new ApplicationSignUpRemovedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+                ApplicationSignUpRemovedEvent applicationSignUpRemovedEvent = (ApplicationSignUpRemovedEvent) event;
+                String applicationId = applicationSignUpRemovedEvent.getApplicationId();
+
+                Application application = ApplicationManager.getApplications().getApplication(applicationId);
+                if(application != null) {
+                    for(ClusterDataHolder clusterDataHolder : application.getClusterDataMap().values())
+                    topologyProvider.removeTenantSignUp(clusterDataHolder.getClusterId(),
+                            applicationSignUpRemovedEvent.getTenantId());
+                }
+            }
+        });
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/45bea7dc/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/topology/TopologyProvider.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/topology/TopologyProvider.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/topology/TopologyProvider.java
index ebf2802..91e6bce 100644
--- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/topology/TopologyProvider.java
+++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/topology/TopologyProvider.java
@@ -124,11 +124,12 @@ public class TopologyProvider {
     }
 
     /**
-     * Add cluster for tenant.
-     * @param cluster
+     * Add tenant signup for cluster.
+     * @param clusterId
      * @param tenantId
      */
-    public void addCluster(Cluster cluster, int tenantId) {
+    public void addTenantSignUp(String clusterId, int tenantId) {
+        Cluster cluster = getClusterByClusterId(clusterId);
         if(cluster != null) {
             boolean subscribed = false;
             for(String hostName : cluster.getHostNames()) {
@@ -141,21 +142,21 @@ public class TopologyProvider {
                 subscribed = true;
             }
             if(subscribed) {
-                log.info(String.format("Tenant subscribed to cluster: [tenant] %d [cluster] %s [hostnames] %s",
+                log.info(String.format("Tenant signed up to cluster: [tenant] %d [cluster] %s [hostnames] %s",
                         tenantId, cluster.getClusterId(), cluster.getHostNames()));
             }
         }
     }
 
     /**
-     * Remove cluster added for tenant.
+     * Remove tenant signup for cluster.
      * @param clusterId
      * @param tenantId
      */
-    public void removeCluster(String clusterId, int tenantId) {
+    public void removeTenantSignUp(String clusterId, int tenantId) {
         Cluster cluster = getClusterByClusterId(clusterId);
         if(cluster == null) {
-            log.warn(String.format("Could not remove cluster, cluster not found: [cluster] %s", clusterId));
+            log.warn(String.format("Could not remove tenant signup from cluster, cluster not found: [cluster] %s", clusterId));
         }
 
         for(String hostName : cluster.getHostNames()) {
@@ -164,7 +165,7 @@ public class TopologyProvider {
                 Cluster cluster_ = tenantIdToClusterMap.get(tenantId);
                 if (cluster_ != null) {
                     tenantIdToClusterMap.remove(tenantId);
-                    log.info(String.format("Tenant un-subscribed from cluster: [tenant] %d [cluster] %s [hostnames] %s",
+                    log.info(String.format("Tenant signup removed from cluster: [tenant] %d [cluster] %s [hostnames] %s",
                             tenantId, cluster.getClusterId(), cluster.getHostNames()));
                 }
             }