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 <[email protected]>
Authored: Thu Dec 12 22:49:34 2013 +0530
Committer: Nirmal Fernando <[email protected]>
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));

Reply via email to