Handling cloud controller connection failure with new exception and change the error message to a specific one
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/b0c49f0b Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/b0c49f0b Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/b0c49f0b Branch: refs/heads/master Commit: b0c49f0b3fd329205e0a149b85a5ae9f4636ce76 Parents: db482b8 Author: Lahiru Sandaruwan <[email protected]> Authored: Sat Apr 25 08:12:36 2015 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Sat Apr 25 08:12:36 2015 +0530 ---------------------------------------------------------------------- .../policy/InvalidDeploymentPolicyException.java | 4 ++++ .../stratos/autoscaler/services/AutoscalerService.java | 7 +++++-- .../services/impl/AutoscalerServiceImpl.java | 13 ++++++++----- 3 files changed, 17 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/b0c49f0b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/policy/InvalidDeploymentPolicyException.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/policy/InvalidDeploymentPolicyException.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/policy/InvalidDeploymentPolicyException.java index a6c2dce..3790279 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/policy/InvalidDeploymentPolicyException.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/policy/InvalidDeploymentPolicyException.java @@ -23,4 +23,8 @@ public class InvalidDeploymentPolicyException extends Exception { public InvalidDeploymentPolicyException(String message) { super(message); } + + public InvalidDeploymentPolicyException(String message, Exception e) { + super(message, e); + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/b0c49f0b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java index a054e22..ab41da1 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java @@ -23,6 +23,7 @@ package org.apache.stratos.autoscaler.services; import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext; import org.apache.stratos.autoscaler.exception.AutoScalerException; +import org.apache.stratos.autoscaler.exception.CloudControllerConnectionException; import org.apache.stratos.autoscaler.exception.InvalidArgumentException; import org.apache.stratos.autoscaler.exception.application.ApplicationDefinitionException; import org.apache.stratos.autoscaler.exception.application.InvalidApplicationPolicyException; @@ -235,7 +236,8 @@ public interface AutoscalerService { * @param deploymentPolicy DeployementPolicy * @throws IllegalArgumentException if the provided argument is not valid. */ - public void updateDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws DeploymentPolicyNotExistsException, InvalidDeploymentPolicyException, RemoteException, InvalidPolicyException; + public void updateDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws DeploymentPolicyNotExistsException, + InvalidDeploymentPolicyException, RemoteException, InvalidPolicyException, CloudControllerConnectionException; /** * Remove deployment policy @@ -243,7 +245,8 @@ public interface AutoscalerService { * @param deploymentPolicyID deploymentPolicyID * @throws IllegalArgumentException if the provided argument is not valid. */ - public void removeDeployementPolicy(String deploymentPolicyID) throws DeploymentPolicyNotExistsException, DeploymentPolicyNotExistsException; + public void removeDeployementPolicy(String deploymentPolicyID) throws DeploymentPolicyNotExistsException, + DeploymentPolicyNotExistsException; /** * Get deployment policy definition http://git-wip-us.apache.org/repos/asf/stratos/blob/b0c49f0b/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 acda7b4..a3f9cb3 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 @@ -34,6 +34,7 @@ import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext; import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext; import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext; import org.apache.stratos.autoscaler.exception.AutoScalerException; +import org.apache.stratos.autoscaler.exception.CloudControllerConnectionException; import org.apache.stratos.autoscaler.exception.InvalidArgumentException; import org.apache.stratos.autoscaler.exception.application.ApplicationDefinitionException; import org.apache.stratos.autoscaler.exception.application.InvalidApplicationPolicyException; @@ -53,6 +54,7 @@ import org.apache.stratos.autoscaler.util.AutoscalerUtil; import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException; import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidPartitionExceptionException; import org.apache.stratos.cloud.controller.stub.domain.MemberContext; +import org.apache.stratos.cloud.controller.stub.exception.CloudControllerException; import org.apache.stratos.common.Properties; import org.apache.stratos.common.client.CloudControllerServiceClient; import org.apache.stratos.common.client.StratosManagerServiceClient; @@ -932,7 +934,7 @@ public class AutoscalerServiceImpl implements AutoscalerService { @Override public void updateDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws RemoteException, - InvalidDeploymentPolicyException, DeploymentPolicyNotExistsException, InvalidPolicyException { + InvalidDeploymentPolicyException, DeploymentPolicyNotExistsException, InvalidPolicyException, CloudControllerConnectionException { validateDeploymentPolicy(deploymentPolicy); @@ -962,7 +964,8 @@ public class AutoscalerServiceImpl implements AutoscalerService { } } - private void updateClusterMonitors(DeploymentPolicy deploymentPolicy) throws InvalidDeploymentPolicyException { + private void updateClusterMonitors(DeploymentPolicy deploymentPolicy) throws InvalidDeploymentPolicyException, + CloudControllerConnectionException { for (ClusterMonitor clusterMonitor : AutoscalerContext.getInstance().getClusterMonitors().values()) { @@ -981,13 +984,13 @@ public class AutoscalerServiceImpl implements AutoscalerService { String message = "Cluster monitor update failed for [deployment-policy] " + deploymentPolicy.getDeploymentPolicyID(); log.error(message); - throw new InvalidDeploymentPolicyException(message); + throw new CloudControllerConnectionException(message, e); } catch (CloudControllerServiceInvalidPartitionExceptionException e) { - String message = "Cluster monitor update failed for [deployment-policy] " + String message = "Invalid partition, Cluster monitor update failed for [deployment-policy] " + deploymentPolicy.getDeploymentPolicyID(); log.error(message); - throw new InvalidDeploymentPolicyException(message); + throw new InvalidDeploymentPolicyException(message, e); } catch (CloudControllerServiceInvalidCartridgeTypeExceptionException e) { String message = "Cluster monitor update failed for [deployment-policy] "
