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 {
