Using already existing method for forceful termination instead of new method
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/685f7487 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/685f7487 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/685f7487 Branch: refs/heads/master Commit: 685f7487ebb8f3d0ecbf2161f4cd6de46e99ceb8 Parents: 6012234 Author: Lahiru Sandaruwan <[email protected]> Authored: Tue Jun 16 20:50:45 2015 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Tue Jun 16 20:50:45 2015 +0530 ---------------------------------------------------------------------- .../client/AutoscalerCloudControllerClient.java | 36 +- .../partition/ClusterLevelPartitionContext.java | 12 +- .../autoscaler/rule/RuleTasksDelegator.java | 4 +- .../services/impl/AutoscalerServiceImpl.java | 3 +- .../services/CloudControllerService.java | 15 - .../impl/CloudControllerServiceImpl.java | 14 +- .../client/CloudControllerServiceClient.java | 33 - .../main/resources/CloudControllerService.wsdl | 772 +++++++++---------- 8 files changed, 400 insertions(+), 489 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/685f7487/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java index a7938de..f944a9f 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java @@ -206,16 +206,36 @@ public class AutoscalerCloudControllerClient { return volumes.toArray(new Volume[volumes.size()]); } - public void removeExpiredObsoletedMemberFromCloudController(MemberContext member) { - try { + public void terminateInstance(String memberId) throws Exception { + if (log.isInfoEnabled()) { + log.info(String.format("Terminating instance via cloud controller: [member] %s", memberId)); + } + long startTime = System.currentTimeMillis(); + stub.terminateInstance(memberId); + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call terminateInstance() returned in %dms", (endTime - startTime))); + } + } - stub.removeExpiredObsoletedMemberFromCloudController(member.getApplicationId(), member.getCartridgeType(), - member.getClusterId(), member.getMemberId(), member.getNetworkPartitionId(), - member.getPartition()); + public void terminateInstanceForcefully(String memberId) throws Exception { + if (log.isDebugEnabled()) { + log.debug(String.format("Terminating instance forcefully via cloud controller: [member] %s", memberId)); + } + stub.terminateInstanceForcefully(memberId); + } - } catch (RemoteException e) { - log.error(String.format("Error while removing member from cloud controller for obsolete " + - "member, [member-id] %s ", member.getMemberId())); + public void terminateAllInstances(String clusterId) throws RemoteException, + CloudControllerServiceInvalidClusterExceptionException { + if (log.isInfoEnabled()) { + log.info(String.format("Terminating all instances of cluster via cloud controller: [cluster] %s", clusterId)); + } + long startTime = System.currentTimeMillis(); + stub.terminateInstances(clusterId); + + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call terminateInstances() returned in %dms", (endTime - startTime))); } } } http://git-wip-us.apache.org/repos/asf/stratos/blob/685f7487/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java index f3354d7..df839bb 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java @@ -124,7 +124,7 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se if (log.isDebugEnabled()) { log.debug(String.format("Forcefully terminating member [member-id] %s", memberId)); } - CloudControllerServiceClient.getInstance().terminateInstanceForcefully(memberId); + AutoscalerCloudControllerClient.getInstance().terminateInstanceForcefully(memberId); } catch (Exception e) { log.error("Error occurred while terminating instance", e); } @@ -721,8 +721,14 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se obsoleteMember.getClusterInstanceId())); //notifying CC, about the removal of obsolete member - AutoscalerCloudControllerClient.getInstance().removeExpiredObsoletedMemberFromCloudController( - obsoleteMember); + try { + AutoscalerCloudControllerClient.getInstance().terminateInstanceForcefully( + obsoleteMember.getMemberId()); + } catch (Exception e) { + log.error(String.format("Termination of obsolete member %s is failed, but all the contexts" + + "will be removed", obsoleteMember.getMemberId())); + + } iterator.remove(); if (ctxt.getMemberStatsContexts().containsKey(obsoleteMemberId)) { http://git-wip-us.apache.org/repos/asf/stratos/blob/685f7487/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java index a996c0b..51443a1 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java @@ -296,7 +296,7 @@ public class RuleTasksDelegator { public void terminateObsoleteInstance(String memberId) { try { - CloudControllerServiceClient.getInstance().terminateInstance(memberId); + AutoscalerCloudControllerClient.getInstance().terminateInstance(memberId); } catch (Exception e) { log.error("Cannot terminate instance", e); } @@ -308,7 +308,7 @@ public class RuleTasksDelegator { if (log.isDebugEnabled()) { log.debug("delegateTerminateAll - begin"); } - CloudControllerServiceClient.getInstance().terminateAllInstances(clusterId); + AutoscalerCloudControllerClient.getInstance().terminateAllInstances(clusterId); if (log.isDebugEnabled()) { log.debug("delegateTerminateAll - done"); } http://git-wip-us.apache.org/repos/asf/stratos/blob/685f7487/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java index 54323e7..c2ee635 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java @@ -27,6 +27,7 @@ import org.apache.stratos.autoscaler.applications.parser.ApplicationParser; import org.apache.stratos.autoscaler.applications.parser.DefaultApplicationParser; import org.apache.stratos.autoscaler.applications.pojo.*; import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder; +import org.apache.stratos.autoscaler.client.AutoscalerCloudControllerClient; import org.apache.stratos.autoscaler.context.AutoscalerContext; import org.apache.stratos.autoscaler.context.InstanceContext; import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext; @@ -961,7 +962,7 @@ public class AutoscalerServiceImpl implements AutoscalerService { try { log.info(String.format("Terminating member forcefully [member-id] %s of the cluster [cluster-id] %s " + "[application-id] %s", memberIdToTerminate, clusterId, application)); - CloudControllerServiceClient.getInstance().terminateInstanceForcefully(memberIdToTerminate); + AutoscalerCloudControllerClient.getInstance().terminateInstanceForcefully(memberIdToTerminate); } catch (Exception e) { log.error(String.format("Forceful termination of member %s has failed, but continuing forceful " + "deletion of other members", memberIdToTerminate)); http://git-wip-us.apache.org/repos/asf/stratos/blob/685f7487/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java index 4655244..169c665 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java @@ -396,21 +396,6 @@ public interface CloudControllerService { */ /** - * Remove member from cloud controller side context, topology etc. - * - * @param applicationId app of the member - * @param cartridgeType cartridge of the member - * @param clusterId cluster of the member - * @param memberId id of the member - * @param networkPartitionId nw partition of the member - * @param partition partition of the member - * @return whether the removal is successful - */ - boolean removeExpiredObsoletedMemberFromCloudController(String applicationId, String cartridgeType, - String clusterId, String memberId, - String networkPartitionId, Partition partition); - - /** * Returns the available Iaas Providers */ public String[] getIaasProviders(); http://git-wip-us.apache.org/repos/asf/stratos/blob/685f7487/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 900728b..dab9f29 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 @@ -574,7 +574,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { log.info(String.format("Member terminated [member-id] %s ", memberId)); } else { log.warn(String.format("Stratos could not terminate the member [member-id] %s. This may due to a issue " + - "in the underlying IaaS, Please terminate the member manually", memberId)); + "in the underlying IaaS, Please terminate the member manually if it is available", memberId)); MemberContext memberContext = CloudControllerContext.getInstance().getMemberContextOfMemberId(memberId); CloudControllerServiceUtil.executeMemberTerminationPostProcess(memberContext); } @@ -1610,18 +1610,6 @@ public class CloudControllerServiceImpl implements CloudControllerService { } @Override - public boolean removeExpiredObsoletedMemberFromCloudController(String applicationId, String cartridgeType, - String clusterId, String memberId, - String networkPartitionId, Partition partition) { - - MemberContext obsoleteMember = new MemberContext(applicationId, cartridgeType, clusterId, memberId); - obsoleteMember.setNetworkPartitionId(networkPartitionId); - obsoleteMember.setPartition(partition); - CloudControllerServiceUtil.executeMemberTerminationPostProcess(obsoleteMember); - return true; - } - - @Override public String[] getIaasProviders() { try { http://git-wip-us.apache.org/repos/asf/stratos/blob/685f7487/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java index 4a1733e..8944564 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java @@ -112,39 +112,6 @@ public class CloudControllerServiceClient { return stub.getServiceGroup(name); } - public void terminateInstance(String memberId) throws Exception { - if (log.isInfoEnabled()) { - log.info(String.format("Terminating instance via cloud controller: [member] %s", memberId)); - } - long startTime = System.currentTimeMillis(); - stub.terminateInstance(memberId); - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Service call terminateInstance() returned in %dms", (endTime - startTime))); - } - } - - public void terminateInstanceForcefully(String memberId) throws Exception { - if (log.isDebugEnabled()) { - log.debug(String.format("Terminating instance forcefully via cloud controller: [member] %s", memberId)); - } - stub.terminateInstanceForcefully(memberId); - } - - public void terminateAllInstances(String clusterId) throws RemoteException, - CloudControllerServiceInvalidClusterExceptionException { - if (log.isInfoEnabled()) { - log.info(String.format("Terminating all instances of cluster via cloud controller: [cluster] %s", clusterId)); - } - long startTime = System.currentTimeMillis(); - stub.terminateInstances(clusterId); - - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Service call terminateInstances() returned in %dms", (endTime - startTime))); - } - } - public String[] getRegisteredCartridges() throws RemoteException { return stub.getCartridges(); }
