Fixing application deployment logic

Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/ca0a3bbd
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ca0a3bbd
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ca0a3bbd

Branch: refs/heads/master
Commit: ca0a3bbda317af23a3538e412c9f2ee70259abf9
Parents: 92169be
Author: Imesh Gunaratne <[email protected]>
Authored: Fri Jan 30 06:56:08 2015 +0530
Committer: Imesh Gunaratne <[email protected]>
Committed: Fri Jan 30 10:23:56 2015 +0530

----------------------------------------------------------------------
 .../applications/parser/ApplicationParser.java  |   4 +-
 .../parser/DefaultApplicationParser.java        |   6 +-
 .../pojo/ApplicationClusterContext.java         |  14 +-
 .../applications/pojo/ComponentContext.java     |   7 +-
 .../applications/topic/ApplicationBuilder.java  |   2 +-
 .../client/CloudControllerClient.java           |  33 +-
 .../autoscaler/registry/RegistryManager.java    |   8 +-
 .../services/impl/AutoscalerServiceImpl.java    |   6 +-
 .../stratos/autoscaler/util/AutoscalerUtil.java |   2 +-
 .../domain/ApplicationClusterContext.java       |  10 +-
 .../impl/CloudControllerServiceImpl.java        |   2 +-
 .../complex-app/scripts/mock/deploy.sh          |   4 +-
 .../src/main/resources/AutoscalerService.wsdl   | 263 ++++-----
 .../main/resources/CloudControllerService.wsdl  | 532 +++++++++----------
 .../main/resources/StratosManagerService.wsdl   | 333 ++++++------
 15 files changed, 625 insertions(+), 601 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java
index 394c941..3f4d2b4 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java
@@ -26,8 +26,8 @@ import 
org.apache.stratos.autoscaler.exception.application.ApplicationDefinition
 import org.apache.stratos.common.Properties;
 import org.apache.stratos.messaging.domain.application.Application;
 
+import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 /**
  * Parses the Application Definition
@@ -50,7 +50,7 @@ public interface ApplicationParser {
      * @return  Set of ApplicationClusterContext objects
      * @throws ApplicationDefinitionException if any error occurs
      */
-    public Set<ApplicationClusterContext> getApplicationClusterContexts() 
throws ApplicationDefinitionException;
+    public List<ApplicationClusterContext> getApplicationClusterContexts() 
throws ApplicationDefinitionException;
 
     public Map<String, Properties> getAliasToProperties();
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
index fad94da..105b64d 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
@@ -56,13 +56,13 @@ public class DefaultApplicationParser implements 
ApplicationParser {
 
     private static Log log = LogFactory.getLog(DefaultApplicationParser.class);
 
-    private Set<ApplicationClusterContext> applicationClusterContexts;
+    private List<ApplicationClusterContext> applicationClusterContexts;
     private Map<String, Properties> aliasToProperties;
     private Map<String, SubscribableInfoContext> subscribableInformation = new 
HashMap<String, SubscribableInfoContext>();
     private String oauthToken;
 
     public DefaultApplicationParser() {
-        this.applicationClusterContexts = new 
HashSet<ApplicationClusterContext>();
+        this.applicationClusterContexts = new 
ArrayList<ApplicationClusterContext>();
         this.setAliasToProperties(new HashMap<String, Properties>());
 
     }
@@ -103,7 +103,7 @@ public class DefaultApplicationParser implements 
ApplicationParser {
     }
 
     @Override
-    public Set<ApplicationClusterContext> getApplicationClusterContexts() 
throws ApplicationDefinitionException {
+    public List<ApplicationClusterContext> getApplicationClusterContexts() 
throws ApplicationDefinitionException {
         return applicationClusterContexts;
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java
index cc7111a..0d26efc 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java
@@ -46,11 +46,11 @@ public class ApplicationClusterContext implements 
Serializable {
     // properties
     private Properties properties;
 
-       private String[] dependencyCluterIds;
+       private String[] dependencyClusterIds;
 
     public ApplicationClusterContext (String cartridgeType, String clusterId, 
String hostName,
                                       String textPayload, String 
deploymentPolicyName, boolean isLbCluster,
-                                      String tenantRange, String[] 
dependencyCluterIds) {
+                                      String tenantRange, String[] 
dependencyClusterIds) {
 
         this.cartridgeType = cartridgeType;
         this.clusterId = clusterId;
@@ -59,7 +59,7 @@ public class ApplicationClusterContext implements 
Serializable {
         this.deploymentPolicyName = deploymentPolicyName;
         this.isLbCluster = isLbCluster;
         this.tenantRange = tenantRange;
-           this.dependencyCluterIds=dependencyCluterIds;
+           this.dependencyClusterIds = dependencyClusterIds;
     }
 
     public String getClusterId() {
@@ -154,11 +154,11 @@ public class ApplicationClusterContext implements 
Serializable {
         return this.cartridgeType.hashCode() + this.clusterId.hashCode();
     }
 
-       public String[] getDependencyCluterId() {
-               return dependencyCluterIds;
+       public String[] getDependencyClusterIds() {
+               return dependencyClusterIds;
        }
 
-       public void setDependencyCluterId(String[] dependencyCluterIds) {
-               this.dependencyCluterIds = dependencyCluterIds;
+       public void setDependencyClusterIds(String[] dependencyClusterIds) {
+               this.dependencyClusterIds = dependencyClusterIds;
        }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
index b8faedb..eb46aa4 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
@@ -20,7 +20,6 @@
 package org.apache.stratos.autoscaler.applications.pojo;
 
 import java.io.Serializable;
-import java.util.Set;
 
 public class ComponentContext implements Serializable {
 
@@ -29,7 +28,7 @@ public class ComponentContext implements Serializable {
     private GroupContext[] groupContexts;
     private CartridgeContext[] cartridgeContexts;
     private DependencyContext dependencyContext;
-    private Set<ApplicationClusterContext> applicationClusterContexts;
+    private ApplicationClusterContext[] applicationClusterContexts;
 
     public GroupContext[] getGroupContexts() {
         return groupContexts;
@@ -55,11 +54,11 @@ public class ComponentContext implements Serializable {
         this.dependencyContext = dependencyContext;
     }
 
-    public void setApplicationClusterContexts(Set<ApplicationClusterContext> 
applicationClusterContexts) {
+    public void setApplicationClusterContexts(ApplicationClusterContext[] 
applicationClusterContexts) {
         this.applicationClusterContexts = applicationClusterContexts;
     }
 
-    public Set<ApplicationClusterContext> getApplicationClusterContexts() {
+    public ApplicationClusterContext[] getApplicationClusterContexts() {
         return applicationClusterContexts;
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index f9a9a10..be61c9b 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -71,7 +71,7 @@ public class ApplicationBuilder {
      * @param appClusterContexts
      */
     public static synchronized void handleApplicationCreatedEvent(Application 
application,
-                                                                  
Set<ApplicationClusterContext> appClusterContexts) {
+                                                                  
ApplicationClusterContext[] appClusterContexts) {
         if (log.isDebugEnabled()) {
             log.debug("Handling application creation event: [application-id] " 
+
                     application.getUniqueIdentifier());

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
index b945c54..d96cbba 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
@@ -44,7 +44,6 @@ import org.apache.stratos.common.constants.StratosConstants;
 import java.rmi.RemoteException;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 
 /**
  * This class will call cloud controller web service to take the action 
decided by Autoscaler
@@ -225,22 +224,26 @@ public class CloudControllerClient {
     }
 
     public synchronized void createApplicationClusters(String appId,
-                                                       
Set<ApplicationClusterContext> appClusterContexts) {
+                                                       
ApplicationClusterContext[] applicationClusterContexts) {
         
List<org.apache.stratos.cloud.controller.stub.domain.ApplicationClusterContext> 
contextDTOs =
                                         new 
ArrayList<org.apache.stratos.cloud.controller.stub.domain.ApplicationClusterContext>();
-        for(ApplicationClusterContext applicationClusterContext : 
appClusterContexts) {
-            
org.apache.stratos.cloud.controller.stub.domain.ApplicationClusterContext dto = 
new org.apache.stratos.cloud.controller.stub.domain.ApplicationClusterContext();
-            dto.setClusterId(applicationClusterContext.getClusterId());
-            
dto.setAutoscalePolicyName(applicationClusterContext.getAutoscalePolicyName());
-            
dto.setDeploymentPolicyName(applicationClusterContext.getDeploymentPolicyName());
-            dto.setCartridgeType(applicationClusterContext.getCartridgeType());
-            dto.setHostName(applicationClusterContext.getHostName());
-            dto.setTenantRange(applicationClusterContext.getTenantRange());
-            dto.setTextPayload(applicationClusterContext.getTextPayload());
-            dto.setLbCluster(applicationClusterContext.isLbCluster());
-            
dto.setProperties(AutoscalerUtil.toStubProperties(applicationClusterContext.getProperties()));
-                       
dto.setDependencyCluterIds(applicationClusterContext.getDependencyCluterId());
-            contextDTOs.add(dto);
+        if(applicationClusterContexts != null) {
+            for (ApplicationClusterContext applicationClusterContext : 
applicationClusterContexts) {
+                if(applicationClusterContext != null) {
+                    
org.apache.stratos.cloud.controller.stub.domain.ApplicationClusterContext dto = 
new org.apache.stratos.cloud.controller.stub.domain.ApplicationClusterContext();
+                    dto.setClusterId(applicationClusterContext.getClusterId());
+                    
dto.setAutoscalePolicyName(applicationClusterContext.getAutoscalePolicyName());
+                    
dto.setDeploymentPolicyName(applicationClusterContext.getDeploymentPolicyName());
+                    
dto.setCartridgeType(applicationClusterContext.getCartridgeType());
+                    dto.setHostName(applicationClusterContext.getHostName());
+                    
dto.setTenantRange(applicationClusterContext.getTenantRange());
+                    
dto.setTextPayload(applicationClusterContext.getTextPayload());
+                    dto.setLbCluster(applicationClusterContext.isLbCluster());
+                    
dto.setProperties(AutoscalerUtil.toStubProperties(applicationClusterContext.getProperties()));
+                    
dto.setDependencyClusterIds(applicationClusterContext.getDependencyClusterIds());
+                    contextDTOs.add(dto);
+                }
+            }
         }
 
         
org.apache.stratos.cloud.controller.stub.domain.ApplicationClusterContext[] 
applicationClusterContextDTOs =

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
index a9d9fa5..e8debbe 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
@@ -293,7 +293,13 @@ public class RegistryManager {
         return null;
     }
 
-    public Application getApplication(String applicationResourcePath) {
+    public Application getApplication(String applicationId) {
+        String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + 
AutoscalerConstants.APPLICATIONS_RESOURCE +
+                "/" + applicationId;
+        return getApplicationByResourcePath(resourcePath);
+    }
+
+    public Application getApplicationByResourcePath(String 
applicationResourcePath) {
 
         try {
             PrivilegedCarbonContext.startTenantFlow();

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/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 d38e244..8b5f815 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
@@ -201,8 +201,10 @@ public class AutoscalerServiceImpl implements 
AutoscalerService {
         Application application = applicationParser.parse(applicationContext);
         RegistryManager.getInstance().persistApplication(application);
 
-        Set<ApplicationClusterContext> applicationClusterContexts = 
applicationParser.getApplicationClusterContexts();
-        
applicationContext.getComponents().setApplicationClusterContexts(applicationClusterContexts);
+        List<ApplicationClusterContext> applicationClusterContexts = 
applicationParser.getApplicationClusterContexts();
+        ApplicationClusterContext[] applicationClusterContextsArray = 
applicationClusterContexts.toArray(
+                new 
ApplicationClusterContext[applicationClusterContexts.size()]);
+        
applicationContext.getComponents().setApplicationClusterContexts(applicationClusterContextsArray);
 
         applicationContext.setStatus(ApplicationContext.STATUS_CREATED);
         
AutoscalerContext.getInstance().addApplicationContext(applicationContext);

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index 164ffbb..15cb43c 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -89,7 +89,7 @@ public class AutoscalerUtil {
     }
 
     private static Application getApplicationFromPath (String appResourcePath) 
{
-        return RegistryManager.getInstance().getApplication(appResourcePath);
+        return 
RegistryManager.getInstance().getApplicationByResourcePath(appResourcePath);
     }
 
     public static void removeApplication (String applicationId) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ApplicationClusterContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ApplicationClusterContext.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ApplicationClusterContext.java
index 7416773..cccfcba 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ApplicationClusterContext.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ApplicationClusterContext.java
@@ -43,7 +43,7 @@ public class ApplicationClusterContext {
     // properties
     private Properties properties;
        //dependencyclusterid
-       private String[] dependencyCluterIds;
+       private String[] dependencyClusterIds;
 
     public ApplicationClusterContext() {
     }
@@ -140,11 +140,11 @@ public class ApplicationClusterContext {
         this.properties = properties;
     }
 
-       public String[] getDependencyCluterIds() {
-               return dependencyCluterIds;
+       public String[] getDependencyClusterIds() {
+               return dependencyClusterIds;
        }
 
-       public void setDependencyCluterIds(String[] dependencyCluterIds) {
-               this.dependencyCluterIds = dependencyCluterIds;
+       public void setDependencyClusterIds(String[] dependencyClusterIds) {
+               this.dependencyClusterIds = dependencyClusterIds;
        }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index ae5c78d..05525cc 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -1050,7 +1050,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
 
                for (ApplicationClusterContext appClusterCtxt : 
appClustersContexts) {
                        if(appClusterCtxt.getCartridgeType().equals("lb")) {
-                               String[] dependencyClusterIDs = 
appClusterCtxt.getDependencyCluterIds();
+                               String[] dependencyClusterIDs = 
appClusterCtxt.getDependencyClusterIds();
                                if(dependencyClusterIDs!=null) {
                                        for (int i = 0; i < 
dependencyClusterIDs.length; i++) {
                                                Cartridge cartridge = 
CloudControllerContext.getInstance().getCartridge(

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/samples/applications/complex-app/scripts/mock/deploy.sh
----------------------------------------------------------------------
diff --git a/samples/applications/complex-app/scripts/mock/deploy.sh 
b/samples/applications/complex-app/scripts/mock/deploy.sh
index c93b60d..0909414 100755
--- a/samples/applications/complex-app/scripts/mock/deploy.sh
+++ b/samples/applications/complex-app/scripts/mock/deploy.sh
@@ -31,12 +31,12 @@ curl -X POST -H "Content-Type: application/json" -d 
"@${cartridges_groups_path}/
 echo "Adding group8c group..."
 curl -X POST -H "Content-Type: application/json" -d 
"@${cartridges_groups_path}/group8c.json" -k -v -u admin:admin 
https://${host_ip}:${host_port}/api/cartridgeGroups
 
-sleep 5
+sleep 1
 
 echo "Creating application..."
 curl -X POST -H "Content-Type: application/json" -d 
"@${artifacts_path}/application-definition.json" -k -v -u admin:admin 
https://${host_ip}:${host_port}/api/applications
 
-sleep 5
+sleep 1
 
 echo "Deploying application..."
 curl -X POST -H "Content-Type: application/json" -d 
"@${iaas_artifacts_path}/deployment-policy.json" -k -v -u admin:admin 
https://${host_ip}:${host_port}/api/applications/complex-app/deploy

http://git-wip-us.apache.org/repos/asf/stratos/blob/ca0a3bbd/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl
----------------------------------------------------------------------
diff --git 
a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl
 
b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl
index c045c63..f3f2510 100644
--- 
a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl
+++ 
b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:ax29="http://kubernetes.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ns="http://impl.services.autoscaler.stratos.apache.org"; 
xmlns:ax25="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";
 xmlns:ax26="http://common.stratos.apache.org/xsd"; 
xmlns:ax23="http://autoscale.policy.pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax21="http://policy.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:ax216="http://application.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax218="http://deployment.policy.pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ns1="http://org.apache.axis2/xsd"; 
xmlns:ax221="http://pojo.applications.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax213="http://exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
xmlns:http="http://schemas.xmlsoap
 .org/wsdl/http/" xmlns:ax211="http://pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; 
targetNamespace="http://impl.services.autoscaler.stratos.apache.org";>
+<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:ax29="http://common.stratos.apache.org/xsd"; 
xmlns:ax27="http://deployment.policy.pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ns="http://impl.services.autoscaler.stratos.apache.org"; 
xmlns:ax28="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";
 xmlns:ax25="http://application.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax23="http://autoscale.policy.pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax21="http://policy.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:ax216="http://kubernetes.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax218="http://pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ns1="http://org.apache.axis2/xsd"; 
xmlns:ax221="http://pojo.applications.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax213="http://exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:wsaw="http://www.w3.org/
 2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; 
targetNamespace="http://impl.services.autoscaler.stratos.apache.org";>
     <wsdl:types>
         <xs:schema attributeFormDefault="qualified" 
elementFormDefault="qualified" 
targetNamespace="http://autoscale.policy.pojo.autoscaler.stratos.apache.org/xsd";>
             <xs:complexType name="AutoscalePolicy">
@@ -30,7 +30,7 @@
                     <xs:element minOccurs="0" name="description" 
nillable="true" type="xs:string"/>
                     <xs:element minOccurs="0" name="multiTenant" 
type="xs:boolean"/>
                     <xs:element minOccurs="0" name="name" nillable="true" 
type="xs:string"/>
-                    <xs:element minOccurs="0" name="properties" 
nillable="true" type="ax26:Properties"/>
+                    <xs:element minOccurs="0" name="properties" 
nillable="true" type="ax29:Properties"/>
                     <xs:element minOccurs="0" name="status" nillable="true" 
type="xs:string"/>
                     <xs:element minOccurs="0" name="tenantAdminUsername" 
nillable="true" type="xs:string"/>
                     <xs:element minOccurs="0" name="tenantDomain" 
nillable="true" type="xs:string"/>
@@ -39,11 +39,26 @@
             </xs:complexType>
             <xs:complexType name="ComponentContext">
                 <xs:sequence>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="applicationClusterContexts" nillable="true" 
type="ax221:ApplicationClusterContext"/>
                     <xs:element maxOccurs="unbounded" minOccurs="0" 
name="cartridgeContexts" nillable="true" type="ax221:CartridgeContext"/>
                     <xs:element minOccurs="0" name="dependencyContext" 
nillable="true" type="ax221:DependencyContext"/>
                     <xs:element maxOccurs="unbounded" minOccurs="0" 
name="groupContexts" nillable="true" type="ax221:GroupContext"/>
                 </xs:sequence>
             </xs:complexType>
+            <xs:complexType name="ApplicationClusterContext">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="autoscalePolicyName" 
nillable="true" type="xs:string"/>
+                    <xs:element minOccurs="0" name="cartridgeType" 
nillable="true" type="xs:string"/>
+                    <xs:element minOccurs="0" name="clusterId" nillable="true" 
type="xs:string"/>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="dependencyClusterIds" nillable="true" type="xs:string"/>
+                    <xs:element minOccurs="0" name="deploymentPolicyName" 
nillable="true" type="xs:string"/>
+                    <xs:element minOccurs="0" name="hostName" nillable="true" 
type="xs:string"/>
+                    <xs:element minOccurs="0" name="lbCluster" 
type="xs:boolean"/>
+                    <xs:element minOccurs="0" name="properties" 
nillable="true" type="ax29:Properties"/>
+                    <xs:element minOccurs="0" name="tenantRange" 
nillable="true" type="xs:string"/>
+                    <xs:element minOccurs="0" name="textPayload" 
nillable="true" type="xs:string"/>
+                </xs:sequence>
+            </xs:complexType>
             <xs:complexType name="CartridgeContext">
                 <xs:sequence>
                     <xs:element minOccurs="0" name="cartridgeMax" 
type="xs:int"/>
@@ -61,7 +76,7 @@
                     <xs:element minOccurs="0" name="deploymentPolicy" 
nillable="true" type="xs:string"/>
                     <xs:element minOccurs="0" name="maxMembers" type="xs:int"/>
                     <xs:element minOccurs="0" name="minMembers" type="xs:int"/>
-                    <xs:element minOccurs="0" name="properties" 
nillable="true" type="ax26:Properties"/>
+                    <xs:element minOccurs="0" name="properties" 
nillable="true" type="ax29:Properties"/>
                 </xs:sequence>
             </xs:complexType>
             <xs:complexType name="ArtifactRepositoryContext">
@@ -96,8 +111,8 @@
             <xs:complexType name="ServiceGroup">
                 <xs:sequence>
                     <xs:element maxOccurs="unbounded" minOccurs="0" 
name="cartridges" nillable="true" type="xs:string"/>
-                    <xs:element minOccurs="0" name="dependencies" 
nillable="true" type="ax211:Dependencies"/>
-                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="groups" nillable="true" type="ax211:ServiceGroup"/>
+                    <xs:element minOccurs="0" name="dependencies" 
nillable="true" type="ax218:Dependencies"/>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="groups" nillable="true" type="ax218:ServiceGroup"/>
                     <xs:element minOccurs="0" name="groupscalingEnabled" 
type="xs:boolean"/>
                     <xs:element minOccurs="0" name="name" nillable="true" 
type="xs:string"/>
                 </xs:sequence>
@@ -110,37 +125,16 @@
                 </xs:sequence>
             </xs:complexType>
         </xs:schema>
-        <xs:schema 
xmlns:ax219="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";
 attributeFormDefault="qualified" elementFormDefault="qualified" 
targetNamespace="http://deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";>
-            <xs:import 
namespace="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd"/>
-            <xs:complexType name="DeploymentPolicy">
-                <xs:sequence>
-                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="allPartitions" nillable="true" type="ax25:Partition"/>
-                    <xs:element minOccurs="0" name="applicationId" 
nillable="true" type="xs:string"/>
-                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="applicationLevelNetworkPartitions" nillable="true" 
type="ax25:NetworkPartition"/>
-                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="childLevelNetworkPartitions" nillable="true" 
type="ax25:ChildLevelNetworkPartition"/>
-                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="childPolicies" nillable="true" type="ax218:ChildPolicy"/>
-                    <xs:element minOccurs="0" name="description" 
nillable="true" type="xs:string"/>
-                    <xs:element minOccurs="0" name="isPublic" 
type="xs:boolean"/>
-                    <xs:element minOccurs="0" name="tenantId" type="xs:int"/>
-                </xs:sequence>
-            </xs:complexType>
-            <xs:complexType name="ChildPolicy">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="alias" nillable="true" 
type="xs:string"/>
-                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="childLevelNetworkPartitions" nillable="true" 
type="ax25:ChildLevelNetworkPartition"/>
-                </xs:sequence>
-            </xs:complexType>
-        </xs:schema>
-        <xs:schema 
xmlns:ax28="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";
 xmlns:ax24="http://autoscale.policy.pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax217="http://application.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax22="http://policy.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax214="http://exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax220="http://deployment.policy.pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax215="http://common.stratos.apache.org/xsd"; 
xmlns:ax212="http://pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax223="http://pojo.applications.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax210="http://kubernetes.exception.autoscaler.stratos.apache.org/xsd"; 
attributeFormDefault="qualified" elementFormDefault="qualified" 
targetNamespace="http://impl.services.autoscaler.stratos.apache.org";>
+        <xs:schema 
xmlns:ax26="http://application.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax24="http://autoscale.policy.pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax217="http://kubernetes.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax22="http://policy.exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax219="http://pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax214="http://exception.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax215="http://common.stratos.apache.org/xsd"; 
xmlns:ax220="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";
 xmlns:ax212="http://deployment.policy.pojo.autoscaler.stratos.apache.org/xsd"; 
xmlns:ax223="http://pojo.applications.autoscaler.stratos.apache.org/xsd"; 
attributeFormDefault="qualified" elementFormDefault="qualified" 
targetNamespace="http://impl.services.autoscaler.stratos.apache.org";>
             <xs:import 
namespace="http://policy.exception.autoscaler.stratos.apache.org/xsd"/>
             <xs:import 
namespace="http://autoscale.policy.pojo.autoscaler.stratos.apache.org/xsd"/>
-            <xs:import 
namespace="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd"/>
-            <xs:import 
namespace="http://kubernetes.exception.autoscaler.stratos.apache.org/xsd"/>
-            <xs:import 
namespace="http://pojo.autoscaler.stratos.apache.org/xsd"/>
-            <xs:import 
namespace="http://exception.autoscaler.stratos.apache.org/xsd"/>
-            <xs:import namespace="http://common.stratos.apache.org/xsd"/>
             <xs:import 
namespace="http://application.exception.autoscaler.stratos.apache.org/xsd"/>
             <xs:import 
namespace="http://deployment.policy.pojo.autoscaler.stratos.apache.org/xsd"/>
+            <xs:import 
namespace="http://exception.autoscaler.stratos.apache.org/xsd"/>
+            <xs:import namespace="http://common.stratos.apache.org/xsd"/>
+            <xs:import 
namespace="http://kubernetes.exception.autoscaler.stratos.apache.org/xsd"/>
+            <xs:import 
namespace="http://pojo.autoscaler.stratos.apache.org/xsd"/>
+            <xs:import 
namespace="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd"/>
             <xs:import 
namespace="http://pojo.applications.autoscaler.stratos.apache.org/xsd"/>
             <xs:element name="AutoscalerServiceInvalidPolicyException">
                 <xs:complexType>
@@ -163,53 +157,50 @@
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="addNetworkPartition">
+            <xs:element name="getAutoScalingPolicies">
                 <xs:complexType>
-                    <xs:sequence>
-                        <xs:element minOccurs="0" name="networkPartition" 
nillable="true" type="ax28:NetworkPartition"/>
-                    </xs:sequence>
+                    <xs:sequence/>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="AutoscalerServiceInvalidServiceGroupException">
+            <xs:element name="getAutoScalingPoliciesResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" 
name="InvalidServiceGroupException" nillable="true" 
type="ax29:InvalidServiceGroupException"/>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" 
name="return" nillable="true" type="ax23:AutoscalePolicy"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="addServiceGroup">
+            <xs:element name="updateAutoScalingPolicy">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="servicegroup" 
nillable="true" type="ax212:ServiceGroup"/>
+                        <xs:element minOccurs="0" name="autoscalePolicy" 
nillable="true" type="ax23:AutoscalePolicy"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="undeployApplication">
+            <xs:element name="updateAutoScalingPolicyResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="applicationId" 
nillable="true" type="xs:string"/>
+                        <xs:element minOccurs="0" name="return" 
type="xs:boolean"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="AutoscalerServiceInvalidArgumentException">
+            <xs:element name="removeAutoScalingPolicy">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" 
name="InvalidArgumentException" nillable="true" 
type="ax214:InvalidArgumentException"/>
+                        <xs:element minOccurs="0" name="autoscalePolicyId" 
nillable="true" type="xs:string"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="updateClusterMonitor">
+            <xs:element name="removeAutoScalingPolicyResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="clusterId" 
nillable="true" type="xs:string"/>
-                        <xs:element minOccurs="0" name="properties" 
nillable="true" type="ax26:Properties"/>
+                        <xs:element minOccurs="0" name="return" 
type="xs:boolean"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
             <xs:element name="AutoscalerServiceApplicationDefinitionException">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" 
name="ApplicationDefinitionException" nillable="true" 
type="ax217:ApplicationDefinitionException"/>
+                        <xs:element minOccurs="0" 
name="ApplicationDefinitionException" nillable="true" 
type="ax25:ApplicationDefinitionException"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
@@ -217,7 +208,7 @@
                 <xs:complexType>
                     <xs:sequence>
                         <xs:element minOccurs="0" name="applicationId" 
nillable="true" type="xs:string"/>
-                        <xs:element minOccurs="0" name="deploymentPolicy" 
nillable="true" type="ax218:DeploymentPolicy"/>
+                        <xs:element minOccurs="0" name="deploymentPolicy" 
nillable="true" type="ax27:DeploymentPolicy"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
@@ -228,50 +219,46 @@
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="getNetworkPartitions">
-                <xs:complexType>
-                    <xs:sequence/>
-                </xs:complexType>
-            </xs:element>
-            <xs:element name="getNetworkPartitionsResponse">
+            <xs:element name="undeployApplication">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element maxOccurs="unbounded" minOccurs="0" 
name="return" nillable="true" type="ax28:NetworkPartition"/>
+                        <xs:element minOccurs="0" name="applicationId" 
nillable="true" type="xs:string"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="getNetworkPartition">
+            <xs:element name="AutoscalerServiceInvalidArgumentException">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="networkPartitionId" 
nillable="true" type="xs:string"/>
+                        <xs:element minOccurs="0" 
name="InvalidArgumentException" nillable="true" 
type="ax214:InvalidArgumentException"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="getNetworkPartitionResponse">
+            <xs:element name="updateClusterMonitor">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="return" 
nillable="true" type="ax28:NetworkPartition"/>
+                        <xs:element minOccurs="0" name="clusterId" 
nillable="true" type="xs:string"/>
+                        <xs:element minOccurs="0" name="properties" 
nillable="true" type="ax29:Properties"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="removeNetworkPartition">
+            <xs:element name="AutoscalerServiceInvalidServiceGroupException">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="networkPartitionId" 
nillable="true" type="xs:string"/>
+                        <xs:element minOccurs="0" 
name="InvalidServiceGroupException" nillable="true" 
type="ax217:InvalidServiceGroupException"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="serviceGroupExist">
+            <xs:element name="addServiceGroup">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="serviceName" 
nillable="true" type="xs:string"/>
+                        <xs:element minOccurs="0" name="servicegroup" 
nillable="true" type="ax219:ServiceGroup"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="serviceGroupExistResponse">
+            <xs:element name="addNetworkPartition">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="return" 
type="xs:boolean"/>
+                        <xs:element minOccurs="0" name="networkPartition" 
nillable="true" type="ax28:NetworkPartition"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
@@ -282,62 +269,50 @@
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="getServiceGroups">
-                <xs:complexType>
-                    <xs:sequence/>
-                </xs:complexType>
-            </xs:element>
-            <xs:element name="getServiceGroupsResponse">
+            <xs:element name="undeployServiceGroup">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element maxOccurs="unbounded" minOccurs="0" 
name="return" nillable="true" type="ax212:ServiceGroup"/>
+                        <xs:element minOccurs="0" name="name" nillable="true" 
type="xs:string"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="removeServiceGroup">
+            <xs:element name="getApplication">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="groupName" 
nillable="true" type="xs:string"/>
+                        <xs:element minOccurs="0" name="applicationId" 
nillable="true" type="xs:string"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="getApplications">
-                <xs:complexType>
-                    <xs:sequence/>
-                </xs:complexType>
-            </xs:element>
-            <xs:element name="getApplicationsResponse">
+            <xs:element name="getApplicationResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element maxOccurs="unbounded" minOccurs="0" 
name="return" nillable="true" type="ax221:ApplicationContext"/>
+                        <xs:element minOccurs="0" name="return" 
nillable="true" type="ax221:ApplicationContext"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="addApplication">
+            <xs:element name="deleteApplication">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="applicationContext" 
nillable="true" type="ax221:ApplicationContext"/>
+                        <xs:element minOccurs="0" name="applicationId" 
nillable="true" type="xs:string"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="getApplication">
+            <xs:element name="getApplications">
                 <xs:complexType>
-                    <xs:sequence>
-                        <xs:element minOccurs="0" name="applicationId" 
nillable="true" type="xs:string"/>
-                    </xs:sequence>
+                    <xs:sequence/>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="getApplicationResponse">
+            <xs:element name="getApplicationsResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="return" 
nillable="true" type="ax221:ApplicationContext"/>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" 
name="return" nillable="true" type="ax221:ApplicationContext"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="deleteApplication">
+            <xs:element name="addApplication">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="applicationId" 
nillable="true" type="xs:string"/>
+                        <xs:element minOccurs="0" name="applicationContext" 
nillable="true" type="ax221:ApplicationContext"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
@@ -351,7 +326,7 @@
             <xs:element name="getServiceGroupResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="return" 
nillable="true" type="ax212:ServiceGroup"/>
+                        <xs:element minOccurs="0" name="return" 
nillable="true" type="ax219:ServiceGroup"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
@@ -365,7 +340,7 @@
             <xs:element name="getDeploymentPolicyResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="return" 
nillable="true" type="ax218:DeploymentPolicy"/>
+                        <xs:element minOccurs="0" name="return" 
nillable="true" type="ax27:DeploymentPolicy"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
@@ -383,54 +358,94 @@
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="getAutoScalingPolicies">
+            <xs:element name="getNetworkPartitions">
                 <xs:complexType>
                     <xs:sequence/>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="getAutoScalingPoliciesResponse">
+            <xs:element name="getNetworkPartitionsResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element maxOccurs="unbounded" minOccurs="0" 
name="return" nillable="true" type="ax23:AutoscalePolicy"/>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" 
name="return" nillable="true" type="ax28:NetworkPartition"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="updateAutoScalingPolicy">
+            <xs:element name="getNetworkPartition">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="autoscalePolicy" 
nillable="true" type="ax23:AutoscalePolicy"/>
+                        <xs:element minOccurs="0" name="networkPartitionId" 
nillable="true" type="xs:string"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="updateAutoScalingPolicyResponse">
+            <xs:element name="getNetworkPartitionResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="return" 
type="xs:boolean"/>
+                        <xs:element minOccurs="0" name="return" 
nillable="true" type="ax28:NetworkPartition"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="removeAutoScalingPolicy">
+            <xs:element name="removeNetworkPartition">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="autoscalePolicyId" 
nillable="true" type="xs:string"/>
+                        <xs:element minOccurs="0" name="networkPartitionId" 
nillable="true" type="xs:string"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="removeAutoScalingPolicyResponse">
+            <xs:element name="serviceGroupExist">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="serviceName" 
nillable="true" type="xs:string"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="serviceGroupExistResponse">
                 <xs:complexType>
                     <xs:sequence>
                         <xs:element minOccurs="0" name="return" 
type="xs:boolean"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
-            <xs:element name="undeployServiceGroup">
+            <xs:element name="getServiceGroups">
+                <xs:complexType>
+                    <xs:sequence/>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="getServiceGroupsResponse">
                 <xs:complexType>
                     <xs:sequence>
-                        <xs:element minOccurs="0" name="name" nillable="true" 
type="xs:string"/>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" 
name="return" nillable="true" type="ax219:ServiceGroup"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="removeServiceGroup">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="groupName" 
nillable="true" type="xs:string"/>
                     </xs:sequence>
                 </xs:complexType>
             </xs:element>
         </xs:schema>
+        <xs:schema 
xmlns:ax211="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";
 attributeFormDefault="qualified" elementFormDefault="qualified" 
targetNamespace="http://deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";>
+            <xs:import 
namespace="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd"/>
+            <xs:complexType name="DeploymentPolicy">
+                <xs:sequence>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="allPartitions" nillable="true" type="ax28:Partition"/>
+                    <xs:element minOccurs="0" name="applicationId" 
nillable="true" type="xs:string"/>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="applicationLevelNetworkPartitions" nillable="true" 
type="ax28:NetworkPartition"/>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="childLevelNetworkPartitions" nillable="true" 
type="ax28:ChildLevelNetworkPartition"/>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="childPolicies" nillable="true" type="ax27:ChildPolicy"/>
+                    <xs:element minOccurs="0" name="description" 
nillable="true" type="xs:string"/>
+                    <xs:element minOccurs="0" name="isPublic" 
type="xs:boolean"/>
+                    <xs:element minOccurs="0" name="tenantId" type="xs:int"/>
+                </xs:sequence>
+            </xs:complexType>
+            <xs:complexType name="ChildPolicy">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="alias" nillable="true" 
type="xs:string"/>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="childLevelNetworkPartitions" nillable="true" 
type="ax28:ChildLevelNetworkPartition"/>
+                </xs:sequence>
+            </xs:complexType>
+        </xs:schema>
         <xs:schema attributeFormDefault="qualified" 
elementFormDefault="qualified" 
targetNamespace="http://application.exception.autoscaler.stratos.apache.org/xsd";>
             <xs:complexType name="ApplicationDefinitionException">
                 <xs:sequence>
@@ -438,29 +453,29 @@
                 </xs:sequence>
             </xs:complexType>
         </xs:schema>
-        <xs:schema xmlns:ax27="http://common.stratos.apache.org/xsd"; 
attributeFormDefault="qualified" elementFormDefault="qualified" 
targetNamespace="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";>
+        <xs:schema xmlns:ax210="http://common.stratos.apache.org/xsd"; 
attributeFormDefault="qualified" elementFormDefault="qualified" 
targetNamespace="http://network.partition.deployment.policy.pojo.autoscaler.stratos.apache.org/xsd";>
             <xs:import namespace="http://common.stratos.apache.org/xsd"/>
-            <xs:complexType name="NetworkPartition">
+            <xs:complexType name="Partition">
                 <xs:sequence>
-                    <xs:element minOccurs="0" name="activeByDefault" 
type="xs:boolean"/>
+                    <xs:element minOccurs="0" name="description" 
nillable="true" type="xs:string"/>
                     <xs:element minOccurs="0" name="id" nillable="true" 
type="xs:string"/>
+                    <xs:element minOccurs="0" name="isPublic" 
type="xs:boolean"/>
                     <xs:element minOccurs="0" name="kubernetesClusterId" 
nillable="true" type="xs:string"/>
-                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="partitions" nillable="true" type="ax25:Partition"/>
+                    <xs:element minOccurs="0" name="properties" 
nillable="true" type="ax29:Properties"/>
+                    <xs:element minOccurs="0" name="provider" nillable="true" 
type="xs:string"/>
                 </xs:sequence>
             </xs:complexType>
-            <xs:complexType name="Partition">
+            <xs:complexType name="NetworkPartition">
                 <xs:sequence>
-                    <xs:element minOccurs="0" name="description" 
nillable="true" type="xs:string"/>
+                    <xs:element minOccurs="0" name="activeByDefault" 
type="xs:boolean"/>
                     <xs:element minOccurs="0" name="id" nillable="true" 
type="xs:string"/>
-                    <xs:element minOccurs="0" name="isPublic" 
type="xs:boolean"/>
                     <xs:element minOccurs="0" name="kubernetesClusterId" 
nillable="true" type="xs:string"/>
-                    <xs:element minOccurs="0" name="properties" 
nillable="true" type="ax27:Properties"/>
-                    <xs:element minOccurs="0" name="provider" nillable="true" 
type="xs:string"/>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="partitions" nillable="true" type="ax28:Partition"/>
                 </xs:sequence>
             </xs:complexType>
             <xs:complexType name="ChildLevelNetworkPartition">
                 <xs:sequence>
-                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="childLevelPartitions" nillable="true" type="ax25:ChildLevelPartition"/>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="childLevelPartitions" nillable="true" type="ax28:ChildLevelPartition"/>
                     <xs:element minOccurs="0" name="id" nillable="true" 
type="xs:string"/>
                     <xs:element minOccurs="0" name="min" type="xs:int"/>
                     <xs:element minOccurs="0" name="partitionAlgo" 
nillable="true" type="xs:string"/>
@@ -474,10 +489,17 @@
                 </xs:sequence>
             </xs:complexType>
         </xs:schema>
+        <xs:schema attributeFormDefault="qualified" 
elementFormDefault="qualified" 
targetNamespace="http://kubernetes.exception.autoscaler.stratos.apache.org/xsd";>
+            <xs:complexType name="InvalidServiceGroupException">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="message" nillable="true" 
type="xs:string"/>
+                </xs:sequence>
+            </xs:complexType>
+        </xs:schema>
         <xs:schema attributeFormDefault="qualified" 
elementFormDefault="qualified" 
targetNamespace="http://common.stratos.apache.org/xsd";>
             <xs:complexType name="Properties">
                 <xs:sequence>
-                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="properties" nillable="true" type="ax26:Property"/>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="properties" nillable="true" type="ax29:Property"/>
                 </xs:sequence>
             </xs:complexType>
             <xs:complexType name="Property">
@@ -487,13 +509,6 @@
                 </xs:sequence>
             </xs:complexType>
         </xs:schema>
-        <xs:schema attributeFormDefault="qualified" 
elementFormDefault="qualified" 
targetNamespace="http://kubernetes.exception.autoscaler.stratos.apache.org/xsd";>
-            <xs:complexType name="InvalidServiceGroupException">
-                <xs:sequence>
-                    <xs:element minOccurs="0" name="message" nillable="true" 
type="xs:string"/>
-                </xs:sequence>
-            </xs:complexType>
-        </xs:schema>
         <xs:schema attributeFormDefault="qualified" 
elementFormDefault="qualified" 
targetNamespace="http://policy.exception.autoscaler.stratos.apache.org/xsd";>
             <xs:complexType name="InvalidPolicyException">
                 <xs:sequence>

Reply via email to