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