Repository: stratos Updated Branches: refs/heads/stratos-4.1.x b73ff9468 -> df2abb3ca
adding zone and region to LB Member (EC2) and adding app id to LB Cluster Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/6b203369 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/6b203369 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/6b203369 Branch: refs/heads/stratos-4.1.x Commit: 6b203369e7a46872edcf8a9b94f6ddfca020f91d Parents: f7263a8 Author: Isuru Haththotuwa <[email protected]> Authored: Wed Nov 4 09:51:27 2015 +0530 Committer: Isuru Haththotuwa <[email protected]> Committed: Tue Nov 10 13:31:49 2015 +0530 ---------------------------------------------------------------------- .../services/impl/CloudControllerServiceImpl.java | 16 ++++++++++++++++ .../controller/util/CloudControllerConstants.java | 3 +++ .../load/balancer/common/domain/Cluster.java | 9 +++++++++ .../stratos/load/balancer/common/domain/Member.java | 10 ++++++++++ .../LoadBalancerCommonTopologyEventReceiver.java | 13 +++++++++++++ 5 files changed, 51 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java index c255189..fa2590c 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java @@ -395,6 +395,22 @@ public class CloudControllerServiceImpl implements CloudControllerService { // Create member context String applicationId = clusterContext.getApplicationId(); + + // if the IaaS Provider type is 'ec2', add region and zone information to the Member via + // properties of Instance Context -> properties of Member Context + if (CloudControllerConstants.IAAS_TYPE_EC2.equalsIgnoreCase(iaasProvider.getType())) { + instanceContext.getProperties().addProperty(new Property(CloudControllerConstants.INSTANCE_CTXT_EC2_REGION, + instanceContext.getPartition().getProperties().getProperty(CloudControllerConstants.REGION_ELEMENT).getValue())); + instanceContext.getProperties().addProperty(new Property(CloudControllerConstants.INSTANCE_CTXT_EC2_AVAILABILITY_ZONE, + instanceContext.getPartition().getProperties().getProperty(CloudControllerConstants.ZONE_ELEMENT).getValue())); + if (log.isDebugEnabled()) { + log.debug("ec2Region in InstanceContext: " + instanceContext.getProperties() + .getProperty(CloudControllerConstants.INSTANCE_CTXT_EC2_REGION)); + log.debug("ec2AvailabilityZone in InstanceContext: " + instanceContext.getProperties() + .getProperty(CloudControllerConstants.INSTANCE_CTXT_EC2_AVAILABILITY_ZONE)); + } + } + MemberContext memberContext = createMemberContext(applicationId, cartridgeType, memberId, CloudControllerUtil.getLoadBalancingIPTypeEnumFromString(cartridge.getLoadBalancingIPType()), instanceContext); http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java index d8d7004..c025bb4 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java @@ -344,4 +344,7 @@ public final class CloudControllerConstants { public static final String PORT_NAME_LABEL = "portName"; public static final String LOAD_BALANCER_IPS = "LOAD_BALANCER_IPS"; public static final String NETWORK_PARTITION_ID_LIST = "NETWORK_PARTITION_ID_LIST"; + public static final String IAAS_TYPE_EC2 = "ec2"; + public static final String INSTANCE_CTXT_EC2_REGION = "EC2_REGION"; + public static final String INSTANCE_CTXT_EC2_AVAILABILITY_ZONE = "EC2_AVAILABILITY_ZONE"; } http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java index ccb0195..a396acd 100644 --- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java +++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java @@ -40,6 +40,7 @@ public class Cluster { private Map<String, Member> memberMap; private Map<String, String> hostNameToContextPathMap; private String loadBalanceAlgorithmName; + private Properties properties; public Cluster(String serviceName, String clusterId) { this.serviceName = serviceName; @@ -149,4 +150,12 @@ public class Cluster { hostNames.remove(hostName); hostNameToContextPathMap.remove(hostName); } + + public Properties getProperties() { + return properties; + } + + public void setProperties(Properties properties) { + this.properties = properties; + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java index 1bb93c2..f892203 100644 --- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java +++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java @@ -22,6 +22,7 @@ package org.apache.stratos.load.balancer.common.domain; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Properties; /** * Load balancer member definition. @@ -34,6 +35,7 @@ public class Member { private String hostName; private Map<Integer, Port> portMap; private String instanceId; + private Properties properties; public Member(String serviceName, String clusterId, String memberId, String hostName) { this.serviceName = serviceName; @@ -95,4 +97,12 @@ public class Member { public void setInstanceId(String instanceId) { this.instanceId = instanceId; } + + public Properties getProperties() { + return properties; + } + + public void setProperties(Properties properties) { + this.properties = properties; + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java index 4c9b5f1..4fb45a9 100644 --- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java +++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java @@ -32,6 +32,8 @@ import org.apache.stratos.messaging.listener.topology.*; import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; +import java.util.Properties; + /** * Load balancer common topology receiver updates the topology in the given topology provider * according to topology events. @@ -422,6 +424,14 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv cluster.addHostName(hostName); } } + + Properties messagingClusterProps = new Properties(); + if (messagingCluster.getAppId() != null) { + messagingClusterProps.setProperty("applicationId", messagingCluster.getAppId()); + } + cluster.setProperties(messagingClusterProps); + + return cluster; } @@ -458,6 +468,9 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv if (messagingMember.getInstanceId() != null) { member.setInstanceId(messagingMember.getInstanceId()); } + + member.setProperties(messagingMember.getProperties()); + return member; } }
