Repository: stratos
Updated Branches:
  refs/heads/stratos-4.1.x 65f8002f0 -> 91f6612f7


Adding more debug logs for instance termination


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

Branch: refs/heads/stratos-4.1.x
Commit: 8695e94be7978d49cc28d8893cef04074c44bfc3
Parents: 65f8002
Author: Akila Perera <[email protected]>
Authored: Wed Nov 18 20:29:12 2015 +0530
Committer: Akila Perera <[email protected]>
Committed: Wed Nov 18 20:29:12 2015 +0530

----------------------------------------------------------------------
 .../cloud/controller/iaases/JcloudsIaas.java    | 12 +++++------
 .../impl/CloudControllerServiceImpl.java        | 15 ++++++-------
 .../impl/CloudControllerServiceUtil.java        |  8 ++++++-
 .../services/impl/InstanceTerminator.java       | 22 +++++++++++---------
 4 files changed, 31 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/8695e94b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java
index 55ccebe..4a8f505 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java
@@ -246,8 +246,9 @@ public abstract class JcloudsIaas extends Iaas {
 
                 memberContext.setAllocatedIPs(associatedIPs.toArray(new 
String[associatedIPs.size()]));
                 log.info(String.format("IP addresses allocated to member: 
[cartridge-type] %s [member-id] %s "
-                                + "[allocated-ip-addresses] %s ", 
memberContext.getCartridgeType(),
-                        memberContext.getMemberId(), 
memberContext.getAllocatedIPs()));
+                                + "[allocated-ip-addresses] %s ", 
memberContext.getCartridgeType(), memberContext
+                        .getMemberId(),
+                        memberContext.getAllocatedIPs()));
 
                 // build the node with the new ip
                 nodeMetadata = 
NodeMetadataBuilder.fromNodeMetadata(nodeMetadata).publicAddresses(associatedIPs)
@@ -302,7 +303,7 @@ public abstract class JcloudsIaas extends Iaas {
 
         if (cartridge == null) {
             String msg = String.format("Member termination failed, could not 
find cartridge in cloud controller "
-                            + "context: [cartridge-type] %s [member-id] %s", 
cartridgeType, memberId);
+                    + "context: [cartridge-type] %s [member-id] %s", 
cartridgeType, memberId);
             log.error(msg);
             throw new InvalidCartridgeTypeException(msg);
         }
@@ -310,13 +311,12 @@ public abstract class JcloudsIaas extends Iaas {
         // if no matching node id can be found.
         if (nodeId == null) {
             String msg = String.format("Member termination failed, could not 
find node id in member context: "
-                            + "[cartridge-type] %s [member-id] %s", 
cartridgeType, memberId);
-            log.error(msg);
+                    + "[cartridge-type] %s [member-id] %s", cartridgeType, 
memberId);
             // Execute member termination post process
             try {
                 
CloudControllerServiceUtil.executeMemberTerminationPostProcess(memberContext);
             } catch (RegistryException e) {
-                log.error("Could not persist data in registry data store", e);
+                log.error("Instance member termination post process failed! " 
+ memberContext.toString(), e);
             }
             throw new InvalidMemberException(msg);
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/8695e94b/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 a4ef6f8..6a1303a 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
@@ -629,7 +629,9 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
             MemberContext memberContext = 
CloudControllerContext.getInstance().getMemberContextOfMemberId(memberId);
             if (memberContext == null) {
                 String msg = "Could not terminate instance, member context not 
found: [member-id] " + memberId;
-                log.error(msg);
+                if (log.isErrorEnabled()) {
+                    log.error(msg);
+                }
                 throw new InvalidMemberException(msg);
             }
 
@@ -639,6 +641,8 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
                             + ", removing member from topology...", 
memberContext.getMemberId()));
                 }
                 
CloudControllerServiceUtil.executeMemberTerminationPostProcess(memberContext);
+                String msg = "Could not terminate instance, member instance id 
is empty: " + memberContext.toString();
+                throw new InvalidMemberException(msg);
             }
 
             // check if status == active, if true, then this is a termination 
on member faulty
@@ -670,15 +674,9 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
                     }
                 }
             }
-
             executorService.execute(new InstanceTerminator(memberContext));
-        } catch (InvalidMemberException e) {
-            String message = "Could not terminate instance: [member-id] " + 
memberId;
-            log.error(message, e);
-            throw e;
         } catch (Exception e) {
             String message = "Could not terminate instance: [member-id] " + 
memberId;
-            log.error(message, e);
             throw new CloudControllerException(message, e);
         } finally {
             TopologyHolder.releaseWriteLock();
@@ -1642,8 +1640,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
             }
 
             // remove partitions from the partition map
-            for (Partition partition : 
cloudControllerContext.getNetworkPartition(networkPartitionId)
-                    .getPartitions()) {
+            for (Partition partition : 
cloudControllerContext.getNetworkPartition(networkPartitionId).getPartitions()) 
{
                 
CloudControllerContext.getInstance().removePartition(partition.getId());
             }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/8695e94b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
index 8a415c4..d277693 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
@@ -26,7 +26,6 @@ import 
org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import org.apache.stratos.cloud.controller.domain.IaasProvider;
 import org.apache.stratos.cloud.controller.domain.MemberContext;
 import org.apache.stratos.cloud.controller.domain.Partition;
-import 
org.apache.stratos.cloud.controller.exception.InvalidIaasProviderException;
 import org.apache.stratos.cloud.controller.exception.InvalidPartitionException;
 import org.apache.stratos.cloud.controller.iaases.Iaas;
 import org.apache.stratos.cloud.controller.iaases.PartitionValidator;
@@ -53,6 +52,9 @@ public class CloudControllerServiceUtil {
         if (memberContext == null) {
             throw new RuntimeException("Member context is null. Could not 
execute member termination post process");
         }
+        if (log.isDebugEnabled()) {
+            log.debug("Executing member termination post process for member: " 
+ memberContext.toString());
+        }
         String partitionId = memberContext.getPartition() == null ? null : 
memberContext.getPartition().getId();
 
         // Update the topology
@@ -65,6 +67,10 @@ public class CloudControllerServiceUtil {
 
         // Persist cloud controller context
         CloudControllerContext.getInstance().persist();
+
+        if (log.isDebugEnabled()) {
+            log.debug("Successfully executed member termination post process 
for member: " + memberContext.toString());
+        }
     }
 
     public static boolean isValidIpAddress(String ip) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/8695e94b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/InstanceTerminator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/InstanceTerminator.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/InstanceTerminator.java
index 18f0741..bf1fdeb 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/InstanceTerminator.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/InstanceTerminator.java
@@ -24,7 +24,6 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import org.apache.stratos.cloud.controller.domain.IaasProvider;
 import org.apache.stratos.cloud.controller.domain.MemberContext;
-import org.apache.stratos.cloud.controller.exception.CloudControllerException;
 import org.apache.stratos.cloud.controller.iaases.Iaas;
 
 import java.util.concurrent.locks.Lock;
@@ -49,22 +48,25 @@ public class InstanceTerminator implements Runnable {
 
     @Override
     public void run() {
-        Lock lock = null;
+        if (log.isDebugEnabled()) {
+            log.debug("Running instance terminator process for member: " + 
memberContext.toString());
+        }
+        Lock lock = 
CloudControllerContext.getInstance().acquireMemberContextWriteLock();
         try {
-            lock = 
CloudControllerContext.getInstance().acquireMemberContextWriteLock();
-            // Terminate the instance
-            iaas.terminateInstance(memberContext);
-
+            try {
+                // Terminate the instance
+                iaas.terminateInstance(memberContext);
+            } catch (Exception e) {
+                log.error("Instance terminator failed to terminate instance: " 
+ memberContext.toString(), e);
+            }
             // Execute member termination post process
             
CloudControllerServiceUtil.executeMemberTerminationPostProcess(memberContext);
         } catch (Exception e) {
-            String msg = "Instance termination failed! " + 
memberContext.toString();
-            log.error(msg, e);
-            throw new CloudControllerException(msg, e);
+            log.error("Instance terminator member termination post process 
failed! " + memberContext.toString(), e);
         } finally {
             if (lock != null) {
                 CloudControllerContext.getInstance().releaseWriteLock(lock);
             }
         }
     }
-}
\ No newline at end of file
+}

Reply via email to