You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2013/12/11 05:21:59 UTC

[5/9] git commit: Deployment policy deploy via registry

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 <ud...@wso2.com>
Authored: Tue Dec 10 17:11:22 2013 -0500
Committer: Udara Liyanage <ud...@wso2.com>
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);
 		}