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 +}
