You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2013/12/12 18:20:08 UTC
git commit: fixing deployment policy persistence logic
Updated Branches:
refs/heads/master 3e2d598a5 -> bbe57a008
fixing deployment policy persistence logic
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/bbe57a00
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/bbe57a00
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/bbe57a00
Branch: refs/heads/master
Commit: bbe57a008b075ce2aafabe94621237b7b5b654ba
Parents: 3e2d598
Author: Nirmal Fernando <ni...@apache.org>
Authored: Thu Dec 12 22:49:34 2013 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Thu Dec 12 22:49:48 2013 +0530
----------------------------------------------------------------------
.../autoscaler/policy/PolicyManager.java | 46 ++++++++++++++++++++
.../stratos/autoscaler/util/AutoscalerUtil.java | 39 -----------------
2 files changed, 46 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/bbe57a00/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
index c7d4605..ecbfd0d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
@@ -30,10 +30,14 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
import org.apache.stratos.autoscaler.exception.AutoScalerException;
+import org.apache.stratos.autoscaler.exception.InvalidPartitionException;
import org.apache.stratos.autoscaler.exception.InvalidPolicyException;
+import org.apache.stratos.autoscaler.exception.PolicyValidationException;
+import org.apache.stratos.autoscaler.partition.PartitionManager;
import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
import org.apache.stratos.autoscaler.registry.RegistryManager;
import org.apache.stratos.autoscaler.util.AutoScalerConstants;
+import org.apache.stratos.cloud.controller.deployment.partition.Partition;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
/**
@@ -78,12 +82,53 @@ public class PolicyManager {
// Add the policy to information model and persist.
public boolean deployDeploymentscalePolicy(DeploymentPolicy policy) throws InvalidPolicyException {
+ try {
+ Partition[] allPartitions = policy.getAllPartitions();
+ validateExistenceOfPartions(allPartitions);
+
+ } catch (InvalidPartitionException e) {
+ String msg = "Deployment Policy is invalid. Policy name: " + policy.getId();
+ log.error(msg, e);
+ throw new InvalidPolicyException(msg, e);
+ }
+
this.addDeploymentPolicyToInformationModel(policy);
this.persitDeploymentPolicy(deploymentPolicyResourcePath+ policy.getId(), policy);
log.info("Deployment policy :" + policy.getId() + " is deployed successfully.");
return true;
}
+
+ private static void validateExistenceOfPartions(Partition[] partitions) throws InvalidPartitionException {
+ PartitionManager partitionMgr = PartitionManager.getInstance();
+ for (Partition partition : partitions) {
+ String partitionId = partition.getId();
+ if (partitionId == null || !partitionMgr.partitionExist(partitionId)) {
+ String msg =
+ "Non existing Partition defined. Partition id: " + partitionId + ". " +
+ "Please define the partition in the partition definition file.";
+ log.error(msg);
+ throw new InvalidPartitionException(msg);
+ }
+ fillPartition(partition, partitionMgr.getPartitionById(partitionId));
+ }
+ }
+
+ private static void fillPartition(Partition destPartition, Partition srcPartition) {
+
+ if (!destPartition.isProviderSpecified()) {
+ destPartition.setProvider(srcPartition.getProvider());
+ }
+ if (!destPartition.isPartitionMaxSpecified()) {
+ destPartition.setPartitionMax(srcPartition.getPartitionMax());
+ }
+ if (!destPartition.isPartitionMinSpecified()) {
+ destPartition.setPartitionMin(srcPartition.getPartitionMin());
+ }
+ if (!destPartition.isPropertiesSpecified()) {
+ destPartition.setProperties(srcPartition.getProperties());
+ }
+ }
public void addASPolicyToInformationModel(AutoscalePolicy asPolicy) throws InvalidPolicyException{
if (!autoscalePolicyListMap.containsKey(asPolicy.getId())) {
@@ -152,6 +197,7 @@ public class PolicyManager {
if(log.isDebugEnabled()){
log.debug("Adding policy :" + policy.getId());
}
+ PartitionManager.getInstance().deployNewNetworkPartitions(policy);
deploymentPolicyListMap.put(policy.getId(), policy);
} else {
throw new InvalidPolicyException("Specified policy [" + policy.getId()
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/bbe57a00/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 7feda4b..44de2a8 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
@@ -104,14 +104,6 @@ public class AutoscalerUtil {
throw new PolicyValidationException(msg);
}
- try {
- validateExistenceOfPartions(allPartitions);
- } catch (InvalidPartitionException e) {
- String msg = "Deployment Policy is invalid. Policy name: " + deploymentPolicyName;
- log.error(msg, e);
- throw new PolicyValidationException(msg, e);
- }
-
CloudControllerClient.getInstance()
.validatePartitionsOfPolicy(cluster.getServiceName(),
allPartitions);
@@ -261,37 +253,6 @@ public class AutoscalerUtil {
return clusterMonitor;
}
- private static void validateExistenceOfPartions(Partition[] partitions) throws InvalidPartitionException {
- PartitionManager partitionMgr = PartitionManager.getInstance();
- for (Partition partition : partitions) {
- String partitionId = partition.getId();
- if (partitionId == null || !partitionMgr.partitionExist(partitionId)) {
- String msg =
- "Non existing Partition defined. Partition id: " + partitionId + ". " +
- "Please define the partition in the partition definition file.";
- log.error(msg);
- throw new InvalidPartitionException(msg);
- }
- fillPartition(partition, partitionMgr.getPartitionById(partitionId));
- }
- }
-
- private static void fillPartition(Partition destPartition, Partition srcPartition) {
-
- if (!destPartition.isProviderSpecified()) {
- destPartition.setProvider(srcPartition.getProvider());
- }
- if (!destPartition.isPartitionMaxSpecified()) {
- destPartition.setPartitionMax(srcPartition.getPartitionMax());
- }
- if (!destPartition.isPartitionMinSpecified()) {
- destPartition.setPartitionMin(srcPartition.getPartitionMin());
- }
- if (!destPartition.isPropertiesSpecified()) {
- destPartition.setProperties(srcPartition.getProperties());
- }
- }
-
public static Properties getProperties(final OMElement elt) {
Iterator<?> it = elt.getChildrenWithName(new QName(AutoScalerConstants.PROPERTY_ELEMENT));