Repository: stratos
Updated Branches:
  refs/heads/master 8caae55b1 -> d39f5f7f1


Adding autoscaling/deployment policy update methods to autoscaler service


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

Branch: refs/heads/master
Commit: 5260f3fe840a50287fe2a0bca29c7158853375f9
Parents: 5dd6374
Author: Imesh Gunaratne <[email protected]>
Authored: Fri Oct 24 18:58:16 2014 +0530
Committer: Imesh Gunaratne <[email protected]>
Committed: Fri Oct 24 18:58:16 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/api/AutoScalerServiceImpl.java   | 18 ++++--
 .../interfaces/AutoScalerServiceInterface.java  |  4 ++
 .../autoscaler/policy/PolicyManager.java        | 67 +++++++++++++++++---
 3 files changed, 77 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/5260f3fe/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
index 4b6b897..7748c09 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
@@ -88,13 +88,23 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface {
     }
 
     @Override
-    public boolean addDeploymentPolicy(DeploymentPolicy depPolicy) throws 
InvalidPolicyException {
-        return PolicyManager.getInstance().deployDeploymentPolicy(depPolicy);
+    public boolean addDeploymentPolicy(DeploymentPolicy deploymentPolicy) 
throws InvalidPolicyException {
+        return 
PolicyManager.getInstance().deployDeploymentPolicy(deploymentPolicy);
     }
 
     @Override
-    public boolean addAutoScalingPolicy(AutoscalePolicy aspolicy) throws 
InvalidPolicyException {
-        return PolicyManager.getInstance().deployAutoscalePolicy(aspolicy);
+    public boolean updateDeploymentPolicy(DeploymentPolicy deploymentPolicy) 
throws InvalidPolicyException {
+        return 
PolicyManager.getInstance().updateDeploymentPolicy(deploymentPolicy);
+    }
+
+    @Override
+    public boolean addAutoScalingPolicy(AutoscalePolicy autoscalePolicy) 
throws InvalidPolicyException {
+        return 
PolicyManager.getInstance().deployAutoscalePolicy(autoscalePolicy);
+    }
+
+    @Override
+    public boolean updateAutoScalingPolicy(AutoscalePolicy autoscalePolicy) 
throws InvalidPolicyException {
+        return 
PolicyManager.getInstance().updateAutoscalePolicy(autoscalePolicy);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/stratos/blob/5260f3fe/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
index 2f88581..2cc5fb7 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
@@ -41,10 +41,14 @@ public interface AutoScalerServiceInterface {
 
     public boolean addDeploymentPolicy(DeploymentPolicy depPolicy) throws 
InvalidPolicyException;
 
+    public boolean updateDeploymentPolicy(DeploymentPolicy depPolicy) throws 
InvalidPolicyException;
+
     public AutoscalePolicy[] getAllAutoScalingPolicy();
 
     public boolean addAutoScalingPolicy(AutoscalePolicy aspolicy) throws 
InvalidPolicyException;
 
+    public boolean updateAutoScalingPolicy(AutoscalePolicy aspolicy) throws 
InvalidPolicyException;
+
     public DeploymentPolicy[] getValidDeploymentPoliciesforCartridge(String 
cartridgeType);
 
     public Partition getPartition(String partitionId);

http://git-wip-us.apache.org/repos/asf/stratos/blob/5260f3fe/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 3c3521a..6a91817 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
@@ -64,12 +64,24 @@ public class PolicyManager {
     // Add the policy to information model and persist.
     public boolean deployAutoscalePolicy(AutoscalePolicy policy) throws 
InvalidPolicyException {
         if(StringUtils.isEmpty(policy.getId())){
-            throw new AutoScalerException("AutoScaling policy id can not be 
empty");
+            throw new AutoScalerException("Autoscaling policy id cannot be 
empty");
         }
         this.addASPolicyToInformationModel(policy);
         RegistryManager.getInstance().persistAutoscalerPolicy(policy);
         if (log.isInfoEnabled()) {
-            log.info(String.format("AutoScaling policy is deployed 
successfully: [id] %s", policy.getId()));
+            log.info(String.format("Autoscaling policy is deployed 
successfully: [id] %s", policy.getId()));
+        }
+        return true;
+    }
+
+    public boolean updateAutoscalePolicy(AutoscalePolicy policy) throws 
InvalidPolicyException {
+        if(StringUtils.isEmpty(policy.getId())){
+            throw new AutoScalerException("Autoscaling policy id cannot be 
empty");
+        }
+        this.updateASPolicyInInformationModel(policy);
+        RegistryManager.getInstance().persistAutoscalerPolicy(policy);
+        if (log.isInfoEnabled()) {
+            log.info(String.format("Autoscaling policy is updated 
successfully: [id] %s", policy.getId()));
         }
         return true;
     }
@@ -77,7 +89,7 @@ public class PolicyManager {
     // Add the deployment policy to information model and persist.
     public boolean deployDeploymentPolicy(DeploymentPolicy policy) throws 
InvalidPolicyException {
         if(StringUtils.isEmpty(policy.getId())){
-            throw new AutoScalerException("Deploying policy id can not be 
empty");
+            throw new AutoScalerException("Deploying policy id cannot be 
empty");
         }
         try {
             if(log.isInfoEnabled()) {
@@ -89,7 +101,7 @@ public class PolicyManager {
             throw new InvalidPolicyException(String.format("Deployment policy 
is invalid: [id] %s", policy.getId()), e);
         }
 
-        this.addDeploymentPolicyToInformationModel(policy);
+        addDeploymentPolicyToInformationModel(policy);
         RegistryManager.getInstance().persistDeploymentPolicy(policy);
 
         if (log.isInfoEnabled()) {
@@ -98,6 +110,29 @@ public class PolicyManager {
         return true;
     }
 
+    public boolean updateDeploymentPolicy(DeploymentPolicy policy) throws 
InvalidPolicyException {
+        if(StringUtils.isEmpty(policy.getId())){
+            throw new AutoScalerException("Deploying policy id cannot be 
empty");
+        }
+        try {
+            if(log.isInfoEnabled()) {
+                log.info(String.format("Updating deployment policy: [id] %s", 
policy.getId()));
+            }
+            fillPartitions(policy);
+        } catch (InvalidPartitionException e) {
+            log.error(e);
+            throw new InvalidPolicyException(String.format("Deployment policy 
is invalid: [id] %s", policy.getId()), e);
+        }
+
+        updateDeploymentPolicyToInformationModel(policy);
+        RegistryManager.getInstance().persistDeploymentPolicy(policy);
+
+        if (log.isInfoEnabled()) {
+            log.info(String.format("Deployment policy is updated successfully: 
[id] %s", policy.getId()));
+        }
+        return true;
+    }
+
     private void fillPartitions(DeploymentPolicy deploymentPolicy) throws 
InvalidPartitionException {
         PartitionManager partitionMgr = PartitionManager.getInstance();
         for (Partition partition : deploymentPolicy.getAllPartitions()) {
@@ -130,16 +165,25 @@ public class PolicyManager {
     public void addASPolicyToInformationModel(AutoscalePolicy asPolicy) throws 
InvalidPolicyException {
         if (!autoscalePolicyListMap.containsKey(asPolicy.getId())) {
             if (log.isDebugEnabled()) {
-                log.debug("Adding policy :" + asPolicy.getId());
+                log.debug("Adding autoscaling policy: " + asPolicy.getId());
             }
             autoscalePolicyListMap.put(asPolicy.getId(), asPolicy);
         } else {
-               String errMsg = "Specified policy [" + asPolicy.getId() + "] 
already exists";
+               String errMsg = "Specified autoscaling policy [" + 
asPolicy.getId() + "] already exists";
                log.error(errMsg);
             throw new InvalidPolicyException(errMsg);
         }
     }
 
+    public void updateASPolicyInInformationModel(AutoscalePolicy asPolicy) 
throws InvalidPolicyException {
+        if (autoscalePolicyListMap.containsKey(asPolicy.getId())) {
+            if (log.isDebugEnabled()) {
+                log.debug("Updating autoscaling policy: " + asPolicy.getId());
+            }
+            autoscalePolicyListMap.put(asPolicy.getId(), asPolicy);
+        }
+    }
+
     /**
      * Removes the specified policy
      *
@@ -181,17 +225,24 @@ public class PolicyManager {
     public void addDeploymentPolicyToInformationModel(DeploymentPolicy policy) 
throws InvalidPolicyException {
         if (!deploymentPolicyListMap.containsKey(policy.getId())) {
             if (log.isDebugEnabled()) {
-                log.debug("Adding policy :" + policy.getId());
+                log.debug("Adding deployment policy: " + policy.getId());
             }
             PartitionManager.getInstance().deployNewNetworkPartitions(policy);
             deploymentPolicyListMap.put(policy.getId(), policy);
         } else {
-               String errMsg = "Specified policy [" + policy.getId()+ "] 
already exists";
+               String errMsg = "Specified deployment policy [" + 
policy.getId()+ "] already exists";
                log.error(errMsg);
             throw new InvalidPolicyException(errMsg);
         }
     }
 
+    public void updateDeploymentPolicyToInformationModel(DeploymentPolicy 
policy) throws InvalidPolicyException {
+        if (log.isDebugEnabled()) {
+            log.debug("Updating deployment policy: " + policy.getId());
+        }
+        deploymentPolicyListMap.put(policy.getId(), policy);
+    }
+
     /**
      * Removes the specified policy
      *

Reply via email to