Deployment policy deploy via registry

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

Branch: refs/heads/master
Commit: 7709385fa04727d86ca46361117ffcd4940e713c
Parents: 96ed75f
Author: Udara Liyanage <[email protected]>
Authored: Tue Dec 10 17:11:22 2013 -0500
Committer: Udara Liyanage <[email protected]>
Committed: Tue Dec 10 17:11:22 2013 -0500

----------------------------------------------------------------------
 .../autoscaler/api/AutoScalerServiceImpl.java   |  5 +--
 .../interfaces/AutoScalerServiceInterface.java  |  2 +-
 .../internal/AutoscalerServerComponent.java     | 44 ++++++++++++++++++--
 .../autoscaler/policy/PolicyManager.java        |  7 ++--
 4 files changed, 47 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7709385f/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 4067a6d..6ffb204 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
@@ -76,9 +76,8 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
        }
 
        @Override
-       public boolean addAutoScalingPolicy(AutoscalePolicy aspolicy) {
-               // TODO Auto-generated method stub
-               return false;
+       public boolean addAutoScalingPolicy(AutoscalePolicy aspolicy) throws 
InvalidPolicyException {
+               return 
PolicyManager.getInstance().deployAutoscalePolicy(aspolicy);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7709385f/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 d0deb75..49c0e9c 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
@@ -16,7 +16,7 @@ public interface AutoScalerServiceInterface {
        public boolean addDeploymentPolicy(DeploymentPolicy depPolicy) throws 
InvalidPolicyException;
        
        public AutoscalePolicy[] getAllAutoScalingPolicy();
-       public boolean addAutoScalingPolicy(AutoscalePolicy aspolicy);
+       public boolean addAutoScalingPolicy(AutoscalePolicy aspolicy) throws 
InvalidPolicyException;
        
        public DeploymentPolicy[] getValidDeploymentPoliciesforCartridge(String 
cartridgeType) throws  PartitionValidationException;
        

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7709385f/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
index ef872a0..c4f4ae0 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
@@ -23,6 +23,7 @@ import java.util.Iterator;
 
 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.message.receiver.health.HealthEventMessageDelegator;
 import 
org.apache.stratos.autoscaler.message.receiver.health.HealthEventMessageReceiver;
@@ -120,9 +121,16 @@ public class AutoscalerServerComponent {
                        Iterator<AutoscalePolicy> asItr = asPolicies.iterator();
                        while (asItr.hasNext()) {
                                AutoscalePolicy asPolicy = asItr.next();
-                               
PolicyManager.getInstance().addASPolicyToInformationModel(
-                                               asPolicy);
+                               
PolicyManager.getInstance().addASPolicyToInformationModel(asPolicy);
                        }
+                       
+                       ArrayList<DeploymentPolicy> depPolicies = 
this.retreiveDeploymentPolicies();
+                       Iterator<DeploymentPolicy> depItr = 
depPolicies.iterator();
+                       while (depItr.hasNext()) {
+                               DeploymentPolicy depPolicy = depItr.next();
+                               
PolicyManager.getInstance().addDeploymentPolicyToInformationModel(depPolicy);
+                       }
+                       
                        if (log.isInfoEnabled()) {
                                log.info("Autoscaler Server Component 
activated");
                        }
@@ -170,7 +178,7 @@ public class AutoscalerServerComponent {
                                                                return null;
                                                        }
                                                } catch (Exception e) {
-                                                       String msg = "Unable to 
retrieve data from Registry. Hence, any historical data will not get 
reflected.";
+                                                       String msg = "Unable to 
retrieve data from Registry. Hence, any historical partitions will not get 
reflected.";
                                                        log.warn(msg, e);
                                                }
                                        }
@@ -198,7 +206,7 @@ public class AutoscalerServerComponent {
                                                                return null;
                                                        }
                                                } catch (Exception e) {
-                                                       String msg = "Unable to 
retrieve data from Registry. Hence, any historical data will not get 
reflected.";
+                                                       String msg = "Unable to 
retrieve data from Registry. Hence, any historical autoscaler policies will not 
get reflected.";
                                                        log.warn(msg, e);
                                                }
                                        }
@@ -207,6 +215,34 @@ public class AutoscalerServerComponent {
                        return asPolicyList;            
        }
        
+       private ArrayList<DeploymentPolicy> retreiveDeploymentPolicies(){
+               ArrayList<DeploymentPolicy> depPolicyList = new 
ArrayList<DeploymentPolicy>();
+                String [] depPolicyResourceList = (String 
[])registryManager.retrieve(AutoScalerConstants.AUTOSCALER_RESOURCE + 
AutoScalerConstants.DEPLOYMENT_POLICY_RESOURCE);
+                
+               if (depPolicyResourceList != null) {
+                               for (String resourcePath : 
depPolicyResourceList) {
+                                       Object asPolicy = 
registryManager.retrieve(resourcePath);
+
+                                       if (asPolicy != null) {
+                                               try {
+
+                                                       Object dataObj = 
Deserializer
+                                                                       
.deserializeFromByteArray((byte[]) asPolicy);
+                                                       if (dataObj instanceof 
DeploymentPolicy) {
+                                                               
depPolicyList.add((DeploymentPolicy) dataObj);
+                                                       } else {
+                                                               return null;
+                                                       }
+                                               } catch (Exception e) {
+                                                       String msg = "Unable to 
retrieve data from Registry. Hence, any historical deployment policies will not 
get reflected.";
+                                                       log.warn(msg, e);
+                                               }
+                                       }
+                               }
+                       }
+                       return depPolicyList;           
+       }
+       
        
        
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7709385f/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 0084cf9..d0de31c 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
@@ -68,9 +68,10 @@ public class PolicyManager {
     }
     
     // Add the policy to information model and persist.
-       public void deployAutoscalePolicy(AutoscalePolicy policy) throws 
InvalidPolicyException {       
+       public boolean deployAutoscalePolicy(AutoscalePolicy policy) throws 
InvalidPolicyException {    
                this.addASPolicyToInformationModel(policy);
-               this.persitASPolicy(asResourcePath+policy.getId(), policy);     
        
+               this.persitASPolicy(asResourcePath+ policy.getId(), policy);    
+               return true;
        }
        
        // Add the policy to information model and persist.
@@ -102,7 +103,7 @@ public class PolicyManager {
        
        private void persitDeploymentPolicy(String depResourcePath, 
DeploymentPolicy policy){           
                try {
-                       RegistryManager.getInstance().persist(policy, 
asResourcePath);
+                       RegistryManager.getInstance().persist(policy, 
depResourcePath);
                } catch (RegistryException e) {
                        throw new AutoScalerException(e);
                }

Reply via email to