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/05/19 16:56:34 UTC
[1/2] stratos git commit: This closes #346 on GitHub
Repository: stratos
Updated Branches:
refs/heads/master becc7a911 -> ec53ed66d
This closes #346 on GitHub
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/ec53ed66
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ec53ed66
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ec53ed66
Branch: refs/heads/master
Commit: ec53ed66dbfa5bbe097123d5d2152581a9399030
Parents: a3e8cc5
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue May 19 20:26:29 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue May 19 20:26:29 2015 +0530
----------------------------------------------------------------------
----------------------------------------------------------------------
[2/2] stratos git commit: Validate whether application policy is used
before removing
Posted by la...@apache.org.
Validate whether application policy is used before removing
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/a3e8cc5f
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/a3e8cc5f
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/a3e8cc5f
Branch: refs/heads/master
Commit: a3e8cc5fe5602aa9e1fb24242f5e50e1d44d6877
Parents: becc7a9
Author: anuruddhal <an...@gmail.com>
Authored: Tue May 19 19:58:09 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue May 19 20:26:29 2015 +0530
----------------------------------------------------------------------
.../services/impl/AutoscalerServiceImpl.java | 25 ++++++++++++++++----
.../common/client/AutoscalerServiceClient.java | 4 ++--
.../rest/endpoint/api/StratosApiV41.java | 5 ++++
.../rest/endpoint/api/StratosApiV41Utils.java | 3 ++-
4 files changed, 29 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/a3e8cc5f/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 083d18f..6f5ff51 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
@@ -829,7 +829,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
@Override
public boolean addApplicationPolicy(ApplicationPolicy applicationPolicy)
- throws RemoteException, InvalidApplicationPolicyException,ApplicationPolicyAlreadyExistsException {
+ throws RemoteException, InvalidApplicationPolicyException, ApplicationPolicyAlreadyExistsException {
// validating application policy
AutoscalerUtil.validateApplicationPolicy(applicationPolicy);
@@ -859,8 +859,23 @@ public class AutoscalerServiceImpl implements AutoscalerService {
}
@Override
- public boolean removeApplicationPolicy(String applicationPolicyId) throws InvalidPolicyException {
- PolicyManager.getInstance().removeApplicationPolicy(applicationPolicyId);
+ public boolean removeApplicationPolicy(String applicationPolicyId) throws InvalidPolicyException, UnremovablePolicyException {
+
+ if (removableApplicationPolicy(applicationPolicyId)) {
+ return PolicyManager.getInstance().removeApplicationPolicy(applicationPolicyId);
+ } else {
+ throw new UnremovablePolicyException("This application policy cannot be removed, since it is used in " +
+ "applications.");
+ }
+ }
+
+ private boolean removableApplicationPolicy(String applicationPolicyId) {
+
+ for (Application application : ApplicationHolder.getApplications().getApplications().values()) {
+ if (applicationPolicyId.equals(application.getApplicationPolicyId())) {
+ return false;
+ }
+ }
return true;
}
@@ -999,7 +1014,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
// deployment policy should contain at least one network partition reference
if (null == deploymentPolicy.getNetworkPartitionRefs() || deploymentPolicy.getNetworkPartitionRefs().length == 0) {
String msg = String.format("Deployment policy does not have any network partition references: " +
- "[deployment-policy-id] %s", deploymentPolicyId);
+ "[deployment-policy-id] %s", deploymentPolicyId);
log.error(msg);
throw new InvalidDeploymentPolicyException(msg);
}
@@ -1020,7 +1035,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
.getNetworkPartition(networkPartitionId);
if (networkPartition == null) {
String msg = String.format("Network partition is not found: [deployment-policy-id] %s " +
- "[network-partition-id] %s", deploymentPolicyId, networkPartitionId);
+ "[network-partition-id] %s", deploymentPolicyId, networkPartitionId);
log.error(msg);
throw new InvalidDeploymentPolicyException(msg);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a3e8cc5f/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
index 1937cf3..720d264 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
@@ -119,7 +119,7 @@ public class AutoscalerServiceClient {
public void addApplicationPolicy(ApplicationPolicy applicationPolicy)
throws RemoteException,
- AutoscalerServiceRemoteExceptionException, AutoscalerServiceInvalidApplicationPolicyExceptionException,AutoscalerServiceApplicationPolicyAlreadyExistsExceptionException {
+ AutoscalerServiceRemoteExceptionException, AutoscalerServiceInvalidApplicationPolicyExceptionException, AutoscalerServiceApplicationPolicyAlreadyExistsExceptionException {
stub.addApplicationPolicy(applicationPolicy);
}
@@ -138,7 +138,7 @@ public class AutoscalerServiceClient {
}
public void removeApplicationPolicy(String applicationPolicyId)
- throws RemoteException, AutoscalerServiceInvalidPolicyExceptionException {
+ throws RemoteException, AutoscalerServiceInvalidPolicyExceptionException, AutoscalerServiceUnremovablePolicyExceptionException {
stub.removeApplicationPolicy(applicationPolicyId);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a3e8cc5f/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index 64e9888..6188995 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@ -924,6 +924,11 @@ public class StratosApiV41 extends AbstractApi {
return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
ResponseMessageBean.ERROR, backendErrorMessage))
.build();
+ } catch (AutoscalerServiceUnremovablePolicyExceptionException e) {
+ return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+ ResponseMessageBean.ERROR, "This application policy cannot be removed, since it is used in an " +
+ "application"))
+ .build();
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a3e8cc5f/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 58244be..8304f98 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -25,6 +25,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.stub.*;
import org.apache.stratos.autoscaler.stub.deployment.policy.ApplicationPolicy;
+import org.apache.stratos.autoscaler.stub.exception.UnremovablePolicyException;
import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext;
import org.apache.stratos.autoscaler.stub.pojo.ServiceGroup;
import org.apache.stratos.cloud.controller.stub.*;
@@ -775,7 +776,7 @@ public class StratosApiV41Utils {
* @throws RestAPIException
*/
public static void removeApplicationPolicy(String applicationPolicyId) throws RestAPIException,
- AutoscalerServiceInvalidPolicyExceptionException {
+ AutoscalerServiceInvalidPolicyExceptionException, AutoscalerServiceUnremovablePolicyExceptionException {
if (applicationPolicyId == null) {
String msg = "Application policy bean id null";