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