You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2015/04/29 12:08:20 UTC
[03/10] stratos git commit: Handle specific exceptions correctly in
AS service
Handle specific exceptions correctly in AS service
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/e5b6ad0e
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/e5b6ad0e
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/e5b6ad0e
Branch: refs/heads/master
Commit: e5b6ad0ef5b0efd8f527387a918830e1a471a339
Parents: 40dbcef
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Wed Apr 29 15:09:45 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Wed Apr 29 15:38:09 2015 +0530
----------------------------------------------------------------------
.../autoscaler/pojo/policy/PolicyManager.java | 16 +++++++++-------
.../autoscaler/services/AutoscalerService.java | 3 ++-
.../services/impl/AutoscalerServiceImpl.java | 20 +++++++++++---------
3 files changed, 22 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/e5b6ad0e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
index 997c593..262e5dc 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
@@ -23,8 +23,10 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.exception.AutoScalerException;
+import org.apache.stratos.autoscaler.exception.AutoScalingPolicyAlreadyExistException;
import org.apache.stratos.autoscaler.exception.policy.InvalidDeploymentPolicyException;
import org.apache.stratos.autoscaler.exception.policy.InvalidPolicyException;
+import org.apache.stratos.autoscaler.exception.policy.PolicyDoesNotExistException;
import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
@@ -78,15 +80,15 @@ public class PolicyManager {
}
// Add the policy to information model and persist.
- public boolean addAutoscalePolicy(AutoscalePolicy policy) throws InvalidPolicyException {
+ public boolean addAutoscalePolicy(AutoscalePolicy policy) throws AutoScalingPolicyAlreadyExistException{
if (log.isInfoEnabled()) {
log.info(String.format("Adding autoscaling policy: [id] %s", policy.getId()));
}
if (StringUtils.isEmpty(policy.getId())) {
throw new AutoScalerException("Autoscaling policy id cannot be empty");
}
- RegistryManager.getInstance().persistAutoscalerPolicy(policy);
this.addASPolicyToInformationModel(policy);
+ RegistryManager.getInstance().persistAutoscalerPolicy(policy);
if (log.isInfoEnabled()) {
log.info(String.format("Autoscaling policy is added successfully: [id] %s", policy.getId()));
}
@@ -105,7 +107,7 @@ public class PolicyManager {
return true;
}
- public boolean removeAutoscalePolicy(String policyID) throws InvalidPolicyException {
+ public boolean removeAutoscalePolicy(String policyID) {
if (StringUtils.isEmpty(policyID)) {
throw new AutoScalerException("Autoscaling policy id cannot be empty");
}
@@ -183,7 +185,7 @@ public class PolicyManager {
}
}
- public void addASPolicyToInformationModel(AutoscalePolicy asPolicy) throws InvalidPolicyException {
+ public void addASPolicyToInformationModel(AutoscalePolicy asPolicy) throws AutoScalingPolicyAlreadyExistException{
if (!autoscalePolicyListMap.containsKey(asPolicy.getId())) {
if (log.isDebugEnabled()) {
log.debug("Adding autoscaling policy: " + asPolicy.getId());
@@ -192,7 +194,7 @@ public class PolicyManager {
} else {
String errMsg = "Specified autoscaling policy [" + asPolicy.getId() + "] already exists";
log.error(errMsg);
- throw new InvalidPolicyException(errMsg);
+ throw new AutoScalingPolicyAlreadyExistException(errMsg);
}
}
@@ -214,14 +216,14 @@ public class PolicyManager {
}
}
- public void removeASPolicyInInformationModel(String policyID) throws InvalidPolicyException {
+ public void removeASPolicyInInformationModel(String policyID) throws PolicyDoesNotExistException {
if (autoscalePolicyListMap.containsKey(policyID)) {
if (log.isDebugEnabled()) {
log.debug("Updating autoscaling policy: " + policyID);
}
autoscalePolicyListMap.remove(policyID);
} else {
- throw new InvalidPolicyException("No such policy ID [" + policyID + "] exists");
+ throw new PolicyDoesNotExistException("No such policy ID [" + policyID + "] exists");
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/e5b6ad0e/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 1b907d4..7726068 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
@@ -33,6 +33,7 @@ import org.apache.stratos.autoscaler.pojo.ServiceGroup;
import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
+import org.apache.stratos.autoscaler.exception.policy.UnremovablePolicyException;
import org.apache.stratos.common.Properties;
import java.rmi.RemoteException;
@@ -78,7 +79,7 @@ public interface AutoscalerService {
* @return
* @throws InvalidPolicyException
*/
- public boolean removeAutoScalingPolicy(String autoscalingPolicyId) throws InvalidPolicyException;
+ public boolean removeAutoScalingPolicy(String autoscalingPolicyId) throws InvalidPolicyException, UnremovablePolicyException;
/**
* Add an application
http://git-wip-us.apache.org/repos/asf/stratos/blob/e5b6ad0e/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 d5b66f3..f6523d7 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
@@ -18,7 +18,6 @@
*/
package org.apache.stratos.autoscaler.services.impl;
-import org.apache.axis2.AxisFault;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -34,6 +33,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.AutoScalingPolicyAlreadyExistException;
import org.apache.stratos.autoscaler.exception.CloudControllerConnectionException;
import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
import org.apache.stratos.autoscaler.exception.application.ApplicationDefinitionException;
@@ -44,6 +44,7 @@ import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor;
import org.apache.stratos.autoscaler.monitor.component.ApplicationMonitor;
import org.apache.stratos.autoscaler.pojo.Dependencies;
import org.apache.stratos.autoscaler.pojo.ServiceGroup;
+import org.apache.stratos.autoscaler.exception.policy.PolicyDoesNotExistException;
import org.apache.stratos.autoscaler.pojo.policy.PolicyManager;
import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
@@ -54,7 +55,6 @@ 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;
@@ -88,7 +88,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
}
@Override
- public boolean addAutoScalingPolicy(AutoscalePolicy autoscalePolicy) throws InvalidPolicyException {
+ public boolean addAutoScalingPolicy(AutoscalePolicy autoscalePolicy) throws AutoScalingPolicyAlreadyExistException{
return PolicyManager.getInstance().addAutoscalePolicy(autoscalePolicy);
}
@@ -98,11 +98,13 @@ public class AutoscalerServiceImpl implements AutoscalerService {
}
@Override
- public boolean removeAutoScalingPolicy(String autoscalePolicyId) throws InvalidPolicyException {
- if (validateAutoScalerPolicy(autoscalePolicyId)) {
+ public boolean removeAutoScalingPolicy(String autoscalePolicyId) throws UnremovablePolicyException,
+ PolicyDoesNotExistException {
+ if (removableAutoScalerPolicy(autoscalePolicyId)) {
return PolicyManager.getInstance().removeAutoscalePolicy(autoscalePolicyId);
} else {
- throw new InvalidPolicyException("This autoscaler policy cannot be removed, since it is used in applications.");
+ throw new UnremovablePolicyException("This autoscaler policy cannot be removed, since it is used in " +
+ "applications.");
}
}
@@ -112,7 +114,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
* @param autoscalePolicyId Auto Scalar policy id boolean
* @return
*/
- private boolean validateAutoScalerPolicy(String autoscalePolicyId) {
+ private boolean removableAutoScalerPolicy(String autoscalePolicyId) {
boolean canRemove = true;
Collection<ApplicationContext> appContexts = AutoscalerContext.getInstance().getApplicationContexts();
for (ApplicationContext app : appContexts) {
@@ -825,7 +827,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
@Override
public void addDeployementPolicy(DeploymentPolicy deploymentPolicy) throws RemoteException,
- InvalidDeploymentPolicyException, DeploymentPolicyNotExistsException, DeploymentPolicyAlreadyExistsException {
+ InvalidDeploymentPolicyException, DeploymentPolicyAlreadyExistsException {
validateDeploymentPolicy(deploymentPolicy);
@@ -852,7 +854,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
}
}
- private void validateDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws DeploymentPolicyNotExistsException,
+ private void validateDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws
InvalidDeploymentPolicyException, RemoteException {
// deployment policy can't be null