Repository: stratos Updated Branches: refs/heads/master bf1e3ed79 -> 3324b0b5d
Adding validation for application and deployement policy Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/17a14f33 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/17a14f33 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/17a14f33 Branch: refs/heads/master Commit: 17a14f3337f563c17ce54274795b4dca7d18ced8 Parents: 406e650 Author: Gayan Gunarathne <[email protected]> Authored: Wed Jan 28 12:27:25 2015 +0530 Committer: Gayan Gunarathne <[email protected]> Committed: Wed Jan 28 12:27:25 2015 +0530 ---------------------------------------------------------------------- .../rest/endpoint/api/StratosApiV41Utils.java | 51 +++++++++++++++++++- 1 file changed, 49 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/17a14f33/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 ec98bb8..ec09fd1 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 @@ -908,6 +908,11 @@ public class StratosApiV41Utils { String userName, String tenantDomain) throws RestAPIException { + if (StringUtils.isBlank(appDefinition.getApplicationId())) { + String message = "Please specify the application name"; + log.error(message); + throw new RestAPIException(message); + } // check if an application with same id already exists try { if (AutoscalerServiceClient.getInstance().getApplication(appDefinition.getApplicationId()) != null) { @@ -918,6 +923,8 @@ public class StratosApiV41Utils { throw new RestAPIException("Could not read application", e); } + validateApplication(appDefinition); + ApplicationContext applicationContext = ObjectConverter.convertApplicationDefinitionToStubApplicationContext(appDefinition); applicationContext.setTenantId(ApplicationManagementUtil.getTenantId(ctxt)); applicationContext.setTenantDomain(tenantDomain); @@ -974,7 +981,22 @@ public class StratosApiV41Utils { } } - /** + private static void validateApplication(ApplicationBean appDefinition) throws RestAPIException { + + if(StringUtils.isBlank(appDefinition.getAlias())){ + String message ="Please specify the application alias"; + log.error(message); + throw new RestAPIException(message); + } + if(appDefinition.getComponents().getGroups().size()==0 && appDefinition.getComponents().getCartridges().size()==0){ + String message ="No groups or cartridges attach with this application"; + log.error(message); + throw new RestAPIException(message); + } + + } + + /** * Deploy application with a deployment policy. * * @param applicationId @@ -991,6 +1013,12 @@ public class StratosApiV41Utils { AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); ApplicationContext application = autoscalerServiceClient.getApplication(applicationId); + + if (StringUtils.isBlank(applicationId)) { + String message ="Please specify the application id of the application"; + log.error(message); + throw new RestAPIException(message); + } if(application == null) { String message = String.format("Application is not found: [application-id] %s", applicationId); log.error(message); @@ -1002,6 +1030,7 @@ public class StratosApiV41Utils { throw new RestAPIException(message); } + validateDeploymentPolicy(deploymentPolicy); org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy stubDeploymentPolicy = ObjectConverter.convetToASDeploymentPolicyPojo(applicationId, deploymentPolicy); autoscalerServiceClient.deployApplication(applicationId, stubDeploymentPolicy); @@ -1022,7 +1051,25 @@ public class StratosApiV41Utils { } } - public static void removeApplication(String applicationId) throws RestAPIException { + /** + * Validate deployment policy + * @param deploymentPolicy + */ + private static void validateDeploymentPolicy(DeploymentPolicyBean deploymentPolicy) throws RestAPIException { + if(deploymentPolicy.getApplicationPolicy().getNetworkPartition().size()==0){ + String message="No network partitions specify with the policy"; + log.error(message); + throw new RestAPIException(message); + } + if(deploymentPolicy.getChildPolicies().size()==0){ + String message = "No child policies specify with the policy"; + log.error(message); + throw new RestAPIException(message); + } + + } + + public static void removeApplication(String applicationId) throws RestAPIException { try { AutoscalerServiceClient asServiceClient = getAutoscalerServiceClient();
