Added partition validation

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

Branch: refs/heads/master
Commit: 9199018bc765bd475cbf59c62ca60d0be79fadb5
Parents: 0a06ba2
Author: Udara Liyanage <[email protected]>
Authored: Sat Nov 30 09:35:45 2013 -0500
Committer: Udara Liyanage <[email protected]>
Committed: Sat Nov 30 09:35:45 2013 -0500

----------------------------------------------------------------------
 .../cloud/controller/CloudControllerClient.java     | 16 ++++++++++++++++
 .../partition/deployers/PartitionDeployer.java      |  7 +++++++
 .../partition/deployers/PartitionReader.java        |  4 ++--
 3 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9199018b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java
index 17ad1c7..3da8269 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java
@@ -23,6 +23,7 @@ import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.Constants;
+import org.apache.stratos.autoscaler.exception.InvalidPartitionException;
 import org.apache.stratos.autoscaler.exception.PolicyValidationException;
 import org.apache.stratos.autoscaler.exception.SpawningException;
 import org.apache.stratos.autoscaler.exception.TerminationException;
@@ -101,6 +102,21 @@ public class CloudControllerClient {
             throw new PolicyValidationException(e);
         }
     }
+    
+    /*
+     * Calls the CC to validate the partition.
+     */
+    public boolean validatePartition(Partition partition) throws 
InvalidPartitionException{
+        
+        try {
+            return stub.validatePartition(partition);
+        } catch (RemoteException e) {
+            log.error(e.getMessage());
+            throw new InvalidPartitionException(e);
+        } catch (CloudControllerServiceInvalidPartitionExceptionException e) {
+               throw new InvalidPartitionException(e);
+               }
+    }
 
     public void spawnAnInstance(Partition partition, String clusterId) throws 
SpawningException {
         try {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9199018b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
index e14f332..df8ae29 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
@@ -20,6 +20,7 @@
 package org.apache.stratos.autoscaler.partition.deployers;
 
 import java.io.File;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.axis2.context.ConfigurationContext;
@@ -28,6 +29,7 @@ import org.apache.axis2.deployment.DeploymentException;
 import org.apache.axis2.deployment.repository.util.DeploymentFileData;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import 
org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
 import org.apache.stratos.cloud.controller.deployment.partition.Partition;
 
 /**
@@ -77,7 +79,12 @@ public class PartitionDeployer extends AbstractDeployer {
                        PartitionReader reader = new 
PartitionReader(partitionFile);
                        
                        List<Partition> partitionList = 
reader.getPartitionList();
+                       Iterator<Partition> it = partitionList.iterator();
                        
+                       while(it.hasNext()){
+                               // validate the partition with CC
+                               
CloudControllerClient.getInstance().validatePartition(it.next());
+                       }                       
 
                        log.info("Successfully deployed the partition specified 
at "
                                        + deploymentFileData.getAbsolutePath());

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9199018b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionReader.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionReader.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionReader.java
index 4f635e7..2246e56 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionReader.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionReader.java
@@ -52,7 +52,7 @@ public class PartitionReader{
                this.partitionFIle = partitionFile;
        }
        
-       public List<Partition> getPartitionList() throws 
InvalidPartitionException{
+       public List<Partition> getPartitionList(){
                        this.parse(this.partitionFIle);
                        String partitionXpath = 
AutoScalerConstants.PARTITIONS_ELEMENT + 
"/"+AutoScalerConstants.PARTITION_ELEMENT;
                        List<OMNode> partitionXMLNodes = 
getMatchingNodes(partitionXpath);
@@ -103,7 +103,7 @@ public class PartitionReader{
         return partition;
     }
        
-       public void parse(File xmlSource) {
+       public void parse(File xmlSource){
 
         if (xmlSource.exists()) {
             try {

Reply via email to