From 9421e3abfeb214946cdd90d86f2ca882df745b83 Mon Sep 17 00:00:00 2001 From: Vishanth Date: Thu, 29 Jan 2015 17:00:37 +0530 Subject: [PATCH 1/2] Validation to restrict multi-tenant applications to be deployed only by super tenant in deployApplication method --- .../stratos/rest/endpoint/api/StratosApiV41Utils.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 76be4baf5c..153b3f6572 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 @@ -70,6 +70,7 @@ import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.messaging.message.receiver.application.ApplicationManager; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; +import org.apache.stratos.rest.endpoint.annotation.SuperTenantService; import org.apache.stratos.rest.endpoint.exception.RestAPIException; import org.apache.stratos.rest.endpoint.util.converter.ObjectConverter; import org.wso2.carbon.context.CarbonContext; @@ -1024,7 +1025,15 @@ public static void deployApplication(String applicationId, DeploymentPolicyBean throw new RestAPIException(message); } - validateDeploymentPolicy(deploymentPolicy); + ApplicationBean applicationBean = getApplication(applicationId); + int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); + if (applicationBean.isMultiTenant() && (tenantId != -1234)) { + String message = String.format("Multi-tenant applications can only be deployed by super tenant: [application-id] %s", applicationId); + log.error(message); + throw new RestAPIException(message); + } + + validateDeploymentPolicy(deploymentPolicy); org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy stubDeploymentPolicy = ObjectConverter.convetToASDeploymentPolicyPojo(applicationId, deploymentPolicy); autoscalerServiceClient.deployApplication(applicationId, stubDeploymentPolicy); From 5a50c9fd4f3add351bfe2f3c905d5991f47f7d29 Mon Sep 17 00:00:00 2001 From: Vishanth Date: Thu, 29 Jan 2015 17:02:26 +0530 Subject: [PATCH 2/2] Removed unused import --- .../org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java | 1 - 1 file changed, 1 deletion(-) 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 153b3f6572..ff3f0bde48 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 @@ -70,7 +70,6 @@ import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.messaging.message.receiver.application.ApplicationManager; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; -import org.apache.stratos.rest.endpoint.annotation.SuperTenantService; import org.apache.stratos.rest.endpoint.exception.RestAPIException; import org.apache.stratos.rest.endpoint.util.converter.ObjectConverter; import org.wso2.carbon.context.CarbonContext;