You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ga...@apache.org on 2015/10/09 16:35:43 UTC

[30/32] stratos git commit: Improved logging.

Improved logging.


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

Branch: refs/heads/gsoc-projects-2015
Commit: 823d65a931bdf2edd39915a08e94c9899487a0e0
Parents: df8684b
Author: swapnilpatilRajaram <sw...@students.iiit.ac.in>
Authored: Tue Aug 18 15:46:48 2015 +0000
Committer: swapnilpatilRajaram <sw...@students.iiit.ac.in>
Committed: Tue Aug 18 15:46:48 2015 +0000

----------------------------------------------------------------------
 .../apache/stratos/aws/extension/AWSHelper.java |   9 +-
 .../stratos/aws/extension/AWSLoadBalancer.java  | 277 ++++++++++---------
 2 files changed, 149 insertions(+), 137 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/823d65a9/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
index 768a850..f4efc98 100644
--- a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
+++ b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
@@ -261,7 +261,6 @@ public class AWSHelper {
 			throw new LoadBalancerExtensionException(
 					"Could not create load balancer " + name, e);
 		}
-
 	}
 
 	/**
@@ -304,7 +303,7 @@ public class AWSHelper {
 	public void registerInstancesToLoadBalancer(String loadBalancerName,
 			List<Instance> instances, String region) {
 
-		log.info("Attaching following instance(s) to load balancer + "
+		log.info("Registering following instance(s) to load balancer "
 				+ loadBalancerName);
 
 		for (Instance instance : instances) {
@@ -341,7 +340,7 @@ public class AWSHelper {
 	public void deregisterInstancesFromLoadBalancer(String loadBalancerName,
 			List<Instance> instances, String region) {
 
-		log.info("De-registering following instance(s) from load balancer + "
+		log.info("De-registering following instance(s) from load balancer "
 				+ loadBalancerName);
 
 		for (Instance instance : instances) {
@@ -541,7 +540,7 @@ public class AWSHelper {
 			return createSecurityGroupResult.getGroupId();
 
 		} catch (AmazonClientException e) {
-			log.debug("Could not create security group.", e);
+			log.error("Could not create security group.", e);
 			throw new LoadBalancerExtensionException(
 					"Could not create security group.", e);
 		}
@@ -596,7 +595,7 @@ public class AWSHelper {
 				secirutyGroup = securityGroups.get(0);
 			}
 		} catch (AmazonClientException e) {
-			log.debug("Could not describe security groups.", e);
+			log.error("Could not describe security groups.", e);
 		}
 
 		if (secirutyGroup != null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/823d65a9/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
index 59b313e..573ce64 100644
--- a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
+++ b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
@@ -38,7 +38,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
+	// 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>();
 
 	// Object used to invoke methods related to AWS API
@@ -57,176 +58,188 @@ public class AWSLoadBalancer implements LoadBalancer {
 	public boolean configure(Topology topology)
 			throws LoadBalancerExtensionException {
 
-		log.info("AWS load balancer extension re-configured.");
+		log.info("AWS load balancer extension is being reconfigured.");
 
-		try {
-			HashSet<String> activeClusters = new HashSet<String>();
+		HashSet<String> activeClusters = new HashSet<String>();
 
-			for (Service service : topology.getServices()) {
-				for (Cluster cluster : service.getClusters()) {
-					// Check if a load balancer is created for this cluster
-					if (clusterIdToLoadBalancerMap.containsKey(cluster
-							.getClusterId())) {
-						// A load balancer is already present for this cluster
-						// Get the load balancer and update it.
+		for (Service service : topology.getServices()) {
+			for (Cluster cluster : service.getClusters()) {
+				// Check if a load balancer is created for this cluster
+				if (clusterIdToLoadBalancerMap.containsKey(cluster
+						.getClusterId())) {
+					// A load balancer is already present for this cluster
+					// Get the load balancer and update it.
 
-						LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap
-								.get(cluster.getClusterId());
+					if (log.isDebugEnabled()) {
+						log.debug("Load balancer for cluster "
+								+ cluster.getClusterId()
+								+ " is already present.");
+					}
 
-						String loadBalancerName = loadBalancerInfo.getName();
-						String region = loadBalancerInfo.getRegion();
+					LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap
+							.get(cluster.getClusterId());
 
-						// Get all the instances attached
-						// Attach newly added instances to load balancer
+					String loadBalancerName = loadBalancerInfo.getName();
+					String region = loadBalancerInfo.getRegion();
 
-						// attachedInstances list is useful in finding out what
-						// all new instances which
-						// should be attached to this load balancer.
-						List<Instance> attachedInstances = awsHelper
-								.getAttachedInstances(loadBalancerName, region);
+					// Get all the instances attached
+					// Attach newly added instances to load balancer
 
-						// clusterMembers stores all the members of a cluster.
-						Collection<Member> clusterMembers = cluster
-								.getMembers();
+					// attachedInstances list is useful in finding out what
+					// all new instances which
+					// should be attached to this load balancer.
+					List<Instance> attachedInstances = awsHelper
+							.getAttachedInstances(loadBalancerName, region);
 
-						if (clusterMembers.size() > 0) {
-							activeClusters.add(cluster.getClusterId());
+					// clusterMembers stores all the members of a cluster.
+					Collection<Member> clusterMembers = cluster.getMembers();
 
-							List<Instance> instancesToAddToLoadBalancer = new ArrayList<Instance>();
+					if (clusterMembers.size() > 0) {
+						activeClusters.add(cluster.getClusterId());
 
-							for (Member member : clusterMembers) {
-								// if instance id of member is not in
-								// attachedInstances
-								// add this to instancesToAddToLoadBalancer
+						List<Instance> instancesToAddToLoadBalancer = new ArrayList<Instance>();
 
-								log.debug("Instance id : "
-										+ awsHelper.getAWSInstanceName(member
-												.getInstanceId()));
+						for (Member member : clusterMembers) {
+							// if instance id of member is not in
+							// attachedInstances
+							// add this to instancesToAddToLoadBalancer
+							Instance instance = new Instance(
+									awsHelper.getAWSInstanceName(member
+											.getInstanceId()));
 
-								Instance instance = new Instance(
-										awsHelper.getAWSInstanceName(member
-												.getInstanceId()));
+							if (attachedInstances == null
+									|| !attachedInstances.contains(instance)) {
+								instancesToAddToLoadBalancer.add(instance);
 
-								if (attachedInstances == null
-										|| !attachedInstances
-												.contains(instance)) {
-									instancesToAddToLoadBalancer.add(instance);
+								if (log.isDebugEnabled()) {
+									log.debug("Instance "
+											+ awsHelper
+													.getAWSInstanceName(member
+															.getInstanceId())
+											+ " needs to be registered to load balancer "
+											+ loadBalancerName);
 								}
-							}
 
-							if (instancesToAddToLoadBalancer.size() > 0)
-								awsHelper.registerInstancesToLoadBalancer(
-										loadBalancerName,
-										instancesToAddToLoadBalancer, region);
+							}
 						}
 
-					} else {
-						// Create a new load balancer for this cluster
-						Collection<Member> clusterMembers = cluster
-								.getMembers();
-
-						if (clusterMembers.size() > 0) {
-							// a unique load balancer name with user-defined
-							// prefix and a sequence number.
-							String loadBalancerName = awsHelper
-									.generateLoadBalancerName();
-
-							String region = awsHelper
-									.getAWSRegion(clusterMembers.iterator()
-											.next().getInstanceId());
-
-							// list of AWS listeners obtained using port
-							// mappings of one of the members of the cluster.
-							List<Listener> listenersForThisCluster = awsHelper
-									.getRequiredListeners(clusterMembers
-											.iterator().next());
-
-							// DNS name of load balancer which was created.
-							// This is used in the domain mapping of this
-							// cluster.
-							String loadBalancerDNSName = awsHelper
-									.createLoadBalancer(loadBalancerName,
-											listenersForThisCluster, region);
-
-							// Add the inbound rule the security group of the load balancer
-							// For each listener, add a new rule with load
-							// balancer port as allowed protocol in the security group.
-							for (Listener listener : listenersForThisCluster) {
-								int port = listener.getLoadBalancerPort();
-
-								for (String protocol : awsHelper
-										.getAllowedProtocolsForLBSecurityGroup()) {
-									awsHelper
-											.addInboundRuleToSecurityGroup(
-													awsHelper
-															.getSecurityGroupId(
-																	awsHelper
-																			.getLbSecurityGroupName(),
-																	region),
-													region, protocol, port);
-								}
+						if (instancesToAddToLoadBalancer.size() > 0)
+							awsHelper.registerInstancesToLoadBalancer(
+									loadBalancerName,
+									instancesToAddToLoadBalancer, region);
+					}
+
+				} else {
+					// Create a new load balancer for this cluster
+					Collection<Member> clusterMembers = cluster.getMembers();
+
+					if (clusterMembers.size() > 0) {
+						// a unique load balancer name with user-defined
+						// prefix and a sequence number.
+						String loadBalancerName = awsHelper
+								.generateLoadBalancerName();
+
+						String region = awsHelper.getAWSRegion(clusterMembers
+								.iterator().next().getInstanceId());
+
+						// list of AWS listeners obtained using port
+						// mappings of one of the members of the cluster.
+						List<Listener> listenersForThisCluster = awsHelper
+								.getRequiredListeners(clusterMembers.iterator()
+										.next());
+
+						// DNS name of load balancer which was created.
+						// This is used in the domain mapping of this
+						// cluster.
+						String loadBalancerDNSName = awsHelper
+								.createLoadBalancer(loadBalancerName,
+										listenersForThisCluster, region);
+
+						// Add the inbound rule the security group of the load
+						// balancer
+						// For each listener, add a new rule with load
+						// balancer port as allowed protocol in the security
+						// group.
+						for (Listener listener : listenersForThisCluster) {
+							int port = listener.getLoadBalancerPort();
+
+							for (String protocol : awsHelper
+									.getAllowedProtocolsForLBSecurityGroup()) {
+								awsHelper
+										.addInboundRuleToSecurityGroup(
+												awsHelper.getSecurityGroupId(
+														awsHelper
+																.getLbSecurityGroupName(),
+														region), region,
+												protocol, port);
 							}
+						}
 
-							log.info("Load balancer '" + loadBalancerDNSName
-									+ "' created for cluster '"
-									+ cluster.getClusterId());
+						log.info("Load balancer '" + loadBalancerDNSName
+								+ "' created for cluster '"
+								+ cluster.getClusterId());
 
-							// Register instances in the cluster to load balancer
-							List<Instance> instances = new ArrayList<Instance>();
+						// Register instances in the cluster to load balancer
+						List<Instance> instances = new ArrayList<Instance>();
 
-							for (Member member : clusterMembers) {
-								String instanceId = member.getInstanceId();
+						for (Member member : clusterMembers) {
+							String instanceId = member.getInstanceId();
 
-								log.debug("Instance id : "
+							if (log.isDebugEnabled()) {
+								log.debug("Instance "
 										+ awsHelper
-												.getAWSInstanceName(instanceId));
+												.getAWSInstanceName(instanceId)
+										+ " needs to be registered to load balancer "
+										+ loadBalancerName);
+							}
 
-								Instance instance = new Instance();
-								instance.setInstanceId(awsHelper
-										.getAWSInstanceName(instanceId));
+							Instance instance = new Instance();
+							instance.setInstanceId(awsHelper
+									.getAWSInstanceName(instanceId));
 
-								instances.add(instance);
-							}
+							instances.add(instance);
+						}
 
-							awsHelper.registerInstancesToLoadBalancer(
-									loadBalancerName, instances, region);
+						awsHelper.registerInstancesToLoadBalancer(
+								loadBalancerName, instances, region);
 
-							LoadBalancerInfo loadBalancerInfo = new LoadBalancerInfo(
-									loadBalancerName, region);
+						LoadBalancerInfo loadBalancerInfo = new LoadBalancerInfo(
+								loadBalancerName, region);
 
-							clusterIdToLoadBalancerMap.put(
-									cluster.getClusterId(), loadBalancerInfo);
-							activeClusters.add(cluster.getClusterId());
-						}
+						clusterIdToLoadBalancerMap.put(cluster.getClusterId(),
+								loadBalancerInfo);
+						activeClusters.add(cluster.getClusterId());
 					}
 				}
 			}
+		}
+
+		// Find out clusters which were present earlier but are not now.
+		List<String> clustersToRemoveFromMap = new ArrayList<String>();
 
-			// Find out clusters which were present earlier but are not now.
-			List<String> clustersToRemoveFromMap = new ArrayList<String>();
+		for (String clusterId : clusterIdToLoadBalancerMap.keySet()) {
+			if (!activeClusters.contains(clusterId)) {
+				clustersToRemoveFromMap.add(clusterId);
 
-			for (String clusterId : clusterIdToLoadBalancerMap.keySet()) {
-				if (!activeClusters.contains(clusterId)) {
-					clustersToRemoveFromMap.add(clusterId);
+				if (log.isDebugEnabled()) {
+					log.debug("Load balancer for cluster " + clusterId
+							+ " needs to be removed.");
 				}
-			}
 
-			// Delete load balancers associated with these clusters.
-			for(String clusterId : clustersToRemoveFromMap)
-			{
-				// Remove load balancer for this cluster.
-				awsHelper.deleteLoadBalancer(clusterIdToLoadBalancerMap
-						.get(clusterId).getName(),
-						clusterIdToLoadBalancerMap.get(clusterId)
-								.getRegion());
-				clusterIdToLoadBalancerMap.remove(clusterId);
 			}
+		}
 
-			activeClusters.clear();
-		} catch (LoadBalancerExtensionException e) {
-			throw new LoadBalancerExtensionException(e);
+		// Delete load balancers associated with these clusters.
+		for (String clusterId : clustersToRemoveFromMap) {
+			// Remove load balancer for this cluster.
+			awsHelper.deleteLoadBalancer(
+					clusterIdToLoadBalancerMap.get(clusterId).getName(),
+					clusterIdToLoadBalancerMap.get(clusterId).getRegion());
+			clusterIdToLoadBalancerMap.remove(clusterId);
 		}
 
+		activeClusters.clear();
+		log.info("AWS load balancer extension was reconfigured as per the topology.");
 		return true;
 	}