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 <[email protected]>
Authored: Tue Aug 18 15:46:48 2015 +0000
Committer: swapnilpatilRajaram <[email protected]>
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;
        }
 

Reply via email to