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); }
