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();

Reply via email to