You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2015/12/24 14:04:33 UTC
[16/19] stratos git commit: Refactor aws lb extension
Refactor aws lb extension
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/7f9bcf77
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/7f9bcf77
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/7f9bcf77
Branch: refs/heads/stratos-4.1.x
Commit: 7f9bcf77979f02052534b861125321e4b91c8f8c
Parents: 9f7b483
Author: gayangunarathne <ga...@wso2.com>
Authored: Tue Dec 8 11:35:56 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 24 16:55:58 2015 +0530
----------------------------------------------------------------------
.../apache/stratos/aws/extension/AWSHelper.java | 2 +-
.../stratos/aws/extension/AWSLoadBalancer.java | 60 +++++++-------------
.../aws/extension/AWSStatisticsReader.java | 5 +-
3 files changed, 23 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/7f9bcf77/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
index a12fc96..ef66290 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
@@ -957,7 +957,7 @@ public class AWSHelper {
* Returns the Listeners required for the service. Listeners are derived
* from the proxy port, port and protocol values of the service.
*
- * @param service
+ * @param member
* @return list of listeners required for the service
*/
public List<Listener> getRequiredListeners(Member member) throws LoadBalancerExtensionException {
http://git-wip-us.apache.org/repos/asf/stratos/blob/7f9bcf77/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
index 5cd5556..b365c9b 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
@@ -43,9 +43,8 @@ public class AWSLoadBalancer implements LoadBalancer {
private static final Log log = LogFactory.getLog(AWSLoadBalancer.class);
- // A map <clusterId, load balancer info> to store load balancer information
- // against the cluster id
- private static ConcurrentHashMap<String, LoadBalancerInfo> clusterIdToLoadBalancerMap = new ConcurrentHashMap<String, LoadBalancerInfo>();
+ // A map <clusterId, load balancer info dto> to store load balancer information against the cluster id
+ private static ConcurrentHashMap<String, LBInfoDTO> clusterIdToLoadBalancerMap = new ConcurrentHashMap<String, LBInfoDTO>();
// Object used to invoke methods related to AWS API
private AWSHelper awsHelper;
@@ -93,6 +92,8 @@ public class AWSLoadBalancer implements LoadBalancer {
Collection<Member> clusterMembers = cluster.getMembers();
if (clusterMembers.size() > 0) {
+
+ //We assume all the members are in the same region.
Member aMember = clusterMembers.iterator().next();
// a unique load balancer name with user-defined prefix and a sequence number.
@@ -119,10 +120,11 @@ public class AWSLoadBalancer implements LoadBalancer {
initialAvailabilityZones.add(region + zone);
}
}
+
+
String loadBalancerDNSName =
createAWSLoadBalancer(loadBalancerName, region, listenersForThisCluster,initialAvailabilityZones);
-
log.info(String.format("Load balancer %s created for cluster %s " , loadBalancerDNSName, cluster.getClusterId()));
if(addClusterMembersInfo(clusterMembers, loadBalancerName, region)){
@@ -130,17 +132,17 @@ public class AWSLoadBalancer implements LoadBalancer {
}
// persist LB info
+
+ LBInfoDTO lbInfoDTO = new LBInfoDTO(loadBalancerName, cluster.getClusterId(), region);
try {
- persistenceManager.persist(new LBInfoDTO(loadBalancerName, cluster.getClusterId(), region));
+ persistenceManager.persist(lbInfoDTO);
} catch (PersistenceException e) {
log.error(String.format(
"Unable to persist LB Information for %s , cluster id %s " + loadBalancerName,
cluster.getClusterId()));
}
-
- LoadBalancerInfo loadBalancerInfo = new LoadBalancerInfo(loadBalancerName, region);
- clusterIdToLoadBalancerMap.put(cluster.getClusterId(),loadBalancerInfo);
+ clusterIdToLoadBalancerMap.put(cluster.getClusterId(), lbInfoDTO);
}
@@ -160,8 +162,7 @@ public class AWSLoadBalancer implements LoadBalancer {
clustersToRemoveFromMap.add(clusterId);
if (log.isDebugEnabled()) {
- log.debug("Load balancer for cluster " + clusterId
- + " needs to be removed.");
+ log.debug(String.format("Load balancer for cluster %s needs to be removed.", clusterId));
}
}
@@ -179,8 +180,8 @@ public class AWSLoadBalancer implements LoadBalancer {
persistenceManager.remove(new LBInfoDTO(loadBalancerName, clusterId, region));
} catch (PersistenceException e) {
- log.error("Unable to persist LB Information for " + loadBalancerName + ", cluster id " +
- clusterId);
+ log.error(String.format("Unable to persist LB Information for[Load Balancer Name] %s [Cluster ID] %s"
+ ,loadBalancerName, clusterId));
}
clusterIdToLoadBalancerMap.remove(clusterId);
}
@@ -276,10 +277,10 @@ public class AWSLoadBalancer implements LoadBalancer {
private Boolean updateExistingLoadBalancer(Cluster cluster) {
Boolean isUpdated=false;
- LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap.get(cluster.getClusterId());
+ LBInfoDTO lbInfoDTO = clusterIdToLoadBalancerMap.get(cluster.getClusterId());
- String loadBalancerName = loadBalancerInfo.getName();
- String region = loadBalancerInfo.getRegion();
+ String loadBalancerName = lbInfoDTO.getName();
+ String region = lbInfoDTO.getRegion();
// Get all the instances attached - Attach newly added instances to load balancer
@@ -326,8 +327,7 @@ public class AWSLoadBalancer implements LoadBalancer {
LoadBalancerDescription lbDesc = awsHelper.getLoadBalancerDescription(lbInfoDTO.getName(),
lbInfoDTO.getRegion());
if (lbDesc != null) {
- clusterIdToLoadBalancerMap.put(lbInfoDTO.getClusterId(), new LoadBalancerInfo(lbInfoDTO.getName(),
- lbInfoDTO.getRegion()));
+ clusterIdToLoadBalancerMap.put(lbInfoDTO.getClusterId(),lbInfoDTO);
} else {
// make debug
if (log.isInfoEnabled()) {
@@ -361,7 +361,7 @@ public class AWSLoadBalancer implements LoadBalancer {
public void stop() throws LoadBalancerExtensionException {
// Remove all load balancers if 'terminate.lbs.on.extension.stop' = true in aws-extension.sh
if (AWSExtensionContext.getInstance().terminateLBsOnExtensionStop()) {
- for (Map.Entry<String, LoadBalancerInfo> lbInfoEntry : clusterIdToLoadBalancerMap
+ for (Map.Entry<String, LBInfoDTO> lbInfoEntry : clusterIdToLoadBalancerMap
.entrySet()) {
// Remove load balancer
awsHelper.deleteLoadBalancer(lbInfoEntry.getValue().getName(),
@@ -392,30 +392,8 @@ public class AWSLoadBalancer implements LoadBalancer {
}
}
- public static ConcurrentHashMap<String, LoadBalancerInfo> getClusterIdToLoadBalancerMap() {
+ public static ConcurrentHashMap<String, LBInfoDTO> getClusterIdToLoadBalancerMap() {
return clusterIdToLoadBalancerMap;
}
}
-/**
- * Used to store load balancer name and the region in which it is created. This
- * helps in finding region while calling API methods to modify/delete a load
- * balancer.
- */
-class LoadBalancerInfo {
- private String name;
- private String region;
-
- public LoadBalancerInfo(String name, String region) {
- this.name = name;
- this.region = region;
- }
-
- public String getName() {
- return name;
- }
-
- public String getRegion() {
- return region;
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7f9bcf77/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java
index 55aca3d..c3ac2eb 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java
@@ -21,6 +21,7 @@ package org.apache.stratos.aws.extension;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.aws.extension.persistence.dto.LBInfoDTO;
import org.apache.stratos.common.constants.StratosConstants;
import org.apache.stratos.load.balancer.common.statistics.LoadBalancerStatisticsReader;
import org.apache.stratos.load.balancer.common.topology.TopologyProvider;
@@ -60,14 +61,14 @@ public class AWSStatisticsReader implements LoadBalancerStatisticsReader {
int inFlightRequestCount = 0;
- ConcurrentHashMap<String, LoadBalancerInfo> clusterIdToLoadBalancerMap = AWSLoadBalancer
+ ConcurrentHashMap<String, LBInfoDTO> clusterIdToLoadBalancerMap = AWSLoadBalancer
.getClusterIdToLoadBalancerMap();
// Check if load balancer info is available for this cluster.
// If yes, then find difference between total requests made to the load balancer and
// total responses generated by instances attached to it.
if (clusterIdToLoadBalancerMap.containsKey(clusterId)) {
- LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap
+ LBInfoDTO loadBalancerInfo = clusterIdToLoadBalancerMap
.get(clusterId);
String loadBalancerName = loadBalancerInfo.getName();