You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2013/12/14 05:23:41 UTC
[1/3] git commit: Refactored autoscaler service component,
partition manager, policy manager and registry manager - revision 1
Updated Branches:
refs/heads/master 68dcc68e0 -> 723f3397e
Refactored autoscaler service component, partition manager, policy manager and registry manager - revision 1
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/0091a767
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/0091a767
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/0091a767
Branch: refs/heads/master
Commit: 0091a767af458b095f4974f218952c2da2356d77
Parents: 0a4f798
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sat Dec 14 09:39:19 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Dec 14 09:39:19 2013 +0530
----------------------------------------------------------------------
.../internal/AutoscalerServerComponent.java | 259 +++++----------
.../autoscaler/partition/PartitionManager.java | 46 +--
.../autoscaler/policy/PolicyManager.java | 317 +++++++++----------
.../autoscaler/registry/RegistryManager.java | 154 ++++++++-
4 files changed, 378 insertions(+), 398 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0091a767/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 cdcee85..e5c7964 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
@@ -41,208 +41,93 @@ import org.wso2.carbon.registry.core.service.RegistryService;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
/**
-* @scr.component name=org.apache.stratos.autoscaler.internal.AutoscalerServerComponent"
-* immediate="true"
-*
-* @scr.reference name="registry.service"
-* interface=
-* "org.wso2.carbon.registry.core.service.RegistryService"
-* cardinality="1..1" policy="dynamic" bind="setRegistryService"
-* unbind="unsetRegistryService"
-*/
+ * @scr.component name=org.apache.stratos.autoscaler.internal.AutoscalerServerComponent"
+ * immediate="true"
+ * @scr.reference name="registry.service"
+ * interface=
+ * "org.wso2.carbon.registry.core.service.RegistryService"
+ * cardinality="1..1" policy="dynamic" bind="setRegistryService"
+ * unbind="unsetRegistryService"
+ */
public class AutoscalerServerComponent {
private static final Log log = LogFactory.getLog(AutoscalerServerComponent.class);
- private RegistryManager registryManager;
protected void activate(ComponentContext componentContext) throws Exception {
-
- // Subscribe to all topics
-// TopicSubscriber topologyTopicSubscriber = new TopicSubscriber(Constants.TOPOLOGY_TOPIC);
-// topologyTopicSubscriber.setMessageListener(new TopologyEventMessageReceiver());
-// Thread topologyTopicSubscriberThread = new Thread(topologyTopicSubscriber);
-// topologyTopicSubscriberThread.start();
-// if (log.isDebugEnabled()) {
-// log.debug("Topology event message receiver thread started");
-// }
-//
-// TopologyEventMessageDelegator tropologyEventMessageDelegator = new TopologyEventMessageDelegator();
-// Thread tropologyDelegatorThread = new Thread(tropologyEventMessageDelegator);
-// tropologyDelegatorThread.start();
-
-
-
- // Adding the registry stored AS policies to the information model.
-
try {
- Thread topologyTopicSubscriberThread = new Thread(new AutoscalerTopologyReceiver());
- topologyTopicSubscriberThread.start();
- if (log.isDebugEnabled()) {
- log.debug("Topology message processor thread started");
- }
-
- TopicSubscriber healthStatTopicSubscriber = new TopicSubscriber(
- Constants.HEALTH_STAT_TOPIC);
- healthStatTopicSubscriber
- .setMessageListener(new HealthEventMessageReceiver());
- Thread healthStatTopicSubscriberThread = new Thread(
- healthStatTopicSubscriber);
- healthStatTopicSubscriberThread.start();
- if (log.isDebugEnabled()) {
- log.debug("Health Stat event message receiver thread started");
- }
- HealthEventMessageDelegator healthEventMessageDelegator = new HealthEventMessageDelegator();
- Thread healthDelegatorThread = new Thread(
- healthEventMessageDelegator);
- healthDelegatorThread.start();
- if (log.isDebugEnabled()) {
- log.debug("Health message processor thread started");
- }
- // Start scheduler for running rules
-// ExecutorTaskScheduler executor = new ExecutorTaskScheduler();
-// Thread executorThread = new Thread(executor);
-// executorThread.start();
-// if (log.isDebugEnabled()) {
-// log.debug("Rules executor thread started");
-// }
- this.registryManager = RegistryManager.getInstance();
- // Adding the registry stored partitions to the information model.
- ArrayList<Partition> partitions = this.retreivePartitions();
- Iterator<Partition> it = partitions.iterator();
- while (it.hasNext()) {
- Partition par = it.next();
- PartitionManager.getInstance().addPartitionToInformationModel(
- par);
- }
- ArrayList<AutoscalePolicy> asPolicies = this.retreiveASPolicies();
- Iterator<AutoscalePolicy> asItr = asPolicies.iterator();
- while (asItr.hasNext()) {
- AutoscalePolicy asPolicy = asItr.next();
- 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");
- }
- } catch (Throwable e) {
- log.error("Error in activating the autoscaler component ", e);
- }
+ // Start topology receiver
+ Thread topologyTopicSubscriberThread = new Thread(new AutoscalerTopologyReceiver());
+ topologyTopicSubscriberThread.start();
+ if (log.isDebugEnabled()) {
+ log.debug("Topology receiver thread started");
+ }
+
+ // Start health stat receiver
+ TopicSubscriber healthStatTopicSubscriber = new TopicSubscriber(Constants.HEALTH_STAT_TOPIC);
+ healthStatTopicSubscriber.setMessageListener(new HealthEventMessageReceiver());
+ Thread healthStatTopicSubscriberThread = new Thread(healthStatTopicSubscriber);
+ healthStatTopicSubscriberThread.start();
+ if (log.isDebugEnabled()) {
+ log.debug("Health event message receiver thread started");
+ }
+
+ HealthEventMessageDelegator healthEventMessageDelegator = new HealthEventMessageDelegator();
+ Thread healthDelegatorThread = new Thread(healthEventMessageDelegator);
+ healthDelegatorThread.start();
+ if (log.isDebugEnabled()) {
+ log.debug("Health message processor thread started");
+ }
+
+ // Adding the registry stored partitions to the information model
+ List<Partition> partitions = RegistryManager.getInstance().retrievePartitions();
+ Iterator<Partition> partitionIterator = partitions.iterator();
+ while (partitionIterator.hasNext()) {
+ Partition partition = partitionIterator.next();
+ PartitionManager.getInstance().addPartitionToInformationModel(partition);
+ }
+ List<AutoscalePolicy> asPolicies = RegistryManager.getInstance().retrieveASPolicies();
+ Iterator<AutoscalePolicy> asPolicyIterator = asPolicies.iterator();
+ while (asPolicyIterator.hasNext()) {
+ AutoscalePolicy asPolicy = asPolicyIterator.next();
+ PolicyManager.getInstance().addASPolicyToInformationModel(asPolicy);
+ }
+
+ List<DeploymentPolicy> depPolicies = RegistryManager.getInstance().retrieveDeploymentPolicies();
+ Iterator<DeploymentPolicy> depPolicyIterator = depPolicies.iterator();
+ while (depPolicyIterator.hasNext()) {
+ DeploymentPolicy depPolicy = depPolicyIterator.next();
+ PolicyManager.getInstance().addDeploymentPolicyToInformationModel(depPolicy);
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("Autoscaler Server Component activated");
+ }
+ } catch (Throwable e) {
+ log.error("Error in activating the autoscaler component ", e);
+ }
}
-
+
protected void setRegistryService(RegistryService registryService) {
- if (log.isDebugEnabled()) {
- log.debug("Setting the Registry Service");
- }
- try {
- ServiceReferenceHolder.getInstance().setRegistry(registryService.getGovernanceSystemRegistry());
+ if (log.isDebugEnabled()) {
+ log.debug("Setting the Registry Service");
+ }
+ try {
+ ServiceReferenceHolder.getInstance().setRegistry(registryService.getGovernanceSystemRegistry());
} catch (RegistryException e) {
- String msg = "Failed when retrieving Governance System Registry.";
- log.error(msg, e);
- throw new AutoScalerException(msg, e);
+ String msg = "Failed when retrieving Governance System Registry.";
+ log.error(msg, e);
+ throw new AutoScalerException(msg, e);
}
- }
+ }
- protected void unsetRegistryService(RegistryService registryService) {
- if (log.isDebugEnabled()) {
+ protected void unsetRegistryService(RegistryService registryService) {
+ if (log.isDebugEnabled()) {
log.debug("Unsetting the Registry Service");
}
ServiceReferenceHolder.getInstance().setRegistry(null);
- }
-
- private ArrayList<Partition> retreivePartitions(){
- ArrayList<Partition> partitionList = new ArrayList<Partition>();
- String [] partitionsResourceList = (String [])registryManager.retrieve(AutoScalerConstants.AUTOSCALER_RESOURCE + AutoScalerConstants.PARTITION_RESOURCE);
-
- if (partitionsResourceList != null) {
- for (String resourcePath : partitionsResourceList) {
- Object partition = registryManager.retrieve(resourcePath);
-
- if (partition != null) {
- try {
-
- Object dataObj = Deserializer
- .deserializeFromByteArray((byte[]) partition);
- if (dataObj instanceof Partition) {
- partitionList.add((Partition) dataObj);
- } else {
- return null;
- }
- } catch (Exception e) {
- String msg = "Unable to retrieve data from Registry. Hence, any historical partitions will not get reflected.";
- log.warn(msg, e);
- }
- }
- }
- }
- return partitionList;
- }
-
- private ArrayList<AutoscalePolicy> retreiveASPolicies(){
- ArrayList<AutoscalePolicy> asPolicyList = new ArrayList<AutoscalePolicy>();
- String [] partitionsResourceList = (String [])registryManager.retrieve(AutoScalerConstants.AUTOSCALER_RESOURCE + AutoScalerConstants.AS_POLICY_RESOURCE);
-
- if (partitionsResourceList != null) {
- for (String resourcePath : partitionsResourceList) {
- Object asPolicy = registryManager.retrieve(resourcePath);
-
- if (asPolicy != null) {
- try {
-
- Object dataObj = Deserializer
- .deserializeFromByteArray((byte[]) asPolicy);
- if (dataObj instanceof AutoscalePolicy) {
- asPolicyList.add((AutoscalePolicy) dataObj);
- } else {
- return null;
- }
- } catch (Exception e) {
- String msg = "Unable to retrieve data from Registry. Hence, any historical autoscaler policies will not get reflected.";
- log.warn(msg, e);
- }
- }
- }
- }
- 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/0091a767/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
index a199715..379a055 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
@@ -62,9 +62,6 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
private static PartitionManager instance;
- private String partitionResourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE
- + AutoScalerConstants.PARTITION_RESOURCE + "/";
-
private PartitionManager(){
networkPartitionContexts = new HashMap<String, NetworkPartitionContext>();
// networkPartitions = new ArrayList<NetworkPartitionContext>();
@@ -86,34 +83,21 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
* Deploy a new partition to Auto Scaler.
*/
public boolean addNewPartition(Partition partition) throws AutoScalerException{
- String partitionId = partition.getId();
- if(this.partitionExist(partition.getId()))
- throw new AutoScalerException("A parition with the ID " + partitionId + " already exist.");
-
- String resourcePath= this.partitionResourcePath + partition.getId();
-
- RegistryManager regManager = RegistryManager.getInstance();
-
- try {
- this.validatePartition(partition);
-
- regManager.persist(partition, resourcePath);
- addPartitionToInformationModel(partition);
-
- // register network partition
-// NetworkPartitionContext nwPartition = getOrAddNetworkPartition(partition);
-// this.partitionIdToNetworkPartition.put(partitionId, nwPartition);
-// this.networkPartitionIdToNetworkPartition.put(nwPartition.getId(), nwPartition);
-
+ if(this.partitionExist(partition.getId())) {
+ throw new AutoScalerException(String.format("Partition already exist in partition manager: [id] %s", partition.getId()));
+ }
- } catch (RegistryException e) {
- throw new AutoScalerException(e);
- } catch(PartitionValidationException e){
+ try {
+ validatePartition(partition);
+ RegistryManager.getInstance().persistPartition(partition);
+ addPartitionToInformationModel(partition);
+ if(log.isInfoEnabled()) {
+ log.info(String.format("Partition is deployed successfully: [id] %s", partition.getId()));
+ }
+ return true;
+ } catch(Exception e){
throw new AutoScalerException(e);
}
-
- log.info("Partition :" + partition.getId() + " is deployed successfully.");
- return true;
}
@@ -177,7 +161,10 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
}
- public boolean validatePartition(Partition partition) throws PartitionValidationException{
+ public boolean validatePartition(Partition partition) throws PartitionValidationException {
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("Validating partition via cloud controller: [id] %s", partition.getId()));
+ }
return CloudControllerClient.getInstance().validatePartition(partition);
}
@@ -185,7 +172,6 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
for(PartitionGroup partitionGroup: depPolicy.getPartitionGroups()){
NetworkPartitionContext networkPartitionContext = new NetworkPartitionContext(partitionGroup.getId());
networkPartitionContexts.put(partitionGroup.getId(), networkPartitionContext);
-
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0091a767/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 43c8336..49ee34b 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
@@ -19,7 +19,6 @@
package org.apache.stratos.autoscaler.policy;
-import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -29,40 +28,35 @@ import java.util.Map;
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.exception.InvalidPartitionException;
import org.apache.stratos.autoscaler.exception.InvalidPolicyException;
-import org.apache.stratos.autoscaler.exception.PolicyValidationException;
import org.apache.stratos.autoscaler.partition.PartitionManager;
import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
import org.apache.stratos.autoscaler.registry.RegistryManager;
import org.apache.stratos.autoscaler.util.AutoScalerConstants;
import org.apache.stratos.cloud.controller.deployment.partition.Partition;
-import org.wso2.carbon.registry.core.exceptions.RegistryException;
/**
- *
- * Manager class for the purpose of managing Autoscale/Deployment policy definitions.
+ * Manager class for the purpose of managing Autoscale/Deployment policy definitions.
*/
public class PolicyManager {
-
- private static final Log log = LogFactory.getLog(PolicyManager.class);
-
- private static final String asResourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE+ AutoScalerConstants.AS_POLICY_RESOURCE + "/";
- private static final String deploymentPolicyResourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE+ AutoScalerConstants.DEPLOYMENT_POLICY_RESOURCE + "/";
-
- private static Map<String,AutoscalePolicy> autoscalePolicyListMap = new HashMap<String, AutoscalePolicy>();
-
- private static Map<String,DeploymentPolicy> deploymentPolicyListMap = new HashMap<String, DeploymentPolicy>();
-
- private static PolicyManager instance = null;
-
+
+ private static final Log log = LogFactory.getLog(PolicyManager.class);
+
+ private static final String asResourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE + AutoScalerConstants.AS_POLICY_RESOURCE + "/";
+
+ private static Map<String, AutoscalePolicy> autoscalePolicyListMap = new HashMap<String, AutoscalePolicy>();
+
+ private static Map<String, DeploymentPolicy> deploymentPolicyListMap = new HashMap<String, DeploymentPolicy>();
+
+ private static PolicyManager instance = null;
+
private PolicyManager() {
}
public static PolicyManager getInstance() {
if (instance == null) {
- synchronized (PolicyManager.class){
+ synchronized (PolicyManager.class) {
if (instance == null) {
instance = new PolicyManager();
}
@@ -70,167 +64,158 @@ public class PolicyManager {
}
return instance;
}
-
+
// Add the policy to information model and persist.
- public boolean deployAutoscalePolicy(AutoscalePolicy policy) throws InvalidPolicyException {
- this.addASPolicyToInformationModel(policy);
- this.persitASPolicy(asResourcePath+ policy.getId(), policy);
-
- log.info("AutoScaling policy :" + policy.getId() + " is deployed successfully.");
- return true;
- }
-
- // Add the deployment policy to information model and persist.
- public boolean deployDeploymentPolicy(DeploymentPolicy policy) throws InvalidPolicyException {
- try {
- Partition[] allPartitions = policy.getAllPartitions();
- validateExistenceOfPartions(allPartitions);
-
+ public boolean deployAutoscalePolicy(AutoscalePolicy policy) throws InvalidPolicyException {
+ this.addASPolicyToInformationModel(policy);
+ RegistryManager.getInstance().persistAutoscalerPolicy(policy);
+ if (log.isInfoEnabled()) {
+ log.info(String.format("AutoScaling policy is deployed successfully: [id] %s", policy.getId()));
+ }
+ return true;
+ }
+
+ // Add the deployment policy to information model and persist.
+ public boolean deployDeploymentPolicy(DeploymentPolicy policy) throws InvalidPolicyException {
+ try {
+ if(log.isInfoEnabled()) {
+ log.info(String.format("Deploying deployment policy: [id] %s", policy.getId()));
+ }
+ fillPartitions(policy);
} catch (InvalidPartitionException e) {
- String msg = "Deployment Policy is invalid. Policy name: " + policy.getId();
- log.error(msg, e);
- throw new InvalidPolicyException(msg, e);
+ throw new InvalidPolicyException(String.format("Deployment policy is invalid: [id] %s", policy.getId()), e);
+ }
+
+ this.addDeploymentPolicyToInformationModel(policy);
+ RegistryManager.getInstance().persistDeploymentPolicy(policy);
+
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Deployment policy is deployed successfully: [id] %s", policy.getId()));
}
-
- this.addDeploymentPolicyToInformationModel(policy);
- this.persitDeploymentPolicy(deploymentPolicyResourcePath+ policy.getId(), policy);
-
- log.info("Deployment policy :" + policy.getId() + " is deployed successfully.");
- return true;
- }
-
- private static void validateExistenceOfPartions(Partition[] partitions) throws InvalidPartitionException {
+ return true;
+ }
+
+ private void fillPartitions(DeploymentPolicy deploymentPolicy) throws InvalidPartitionException {
PartitionManager partitionMgr = PartitionManager.getInstance();
- for (Partition partition : partitions) {
+ for (Partition partition : deploymentPolicy.getAllPartitions()) {
String partitionId = partition.getId();
- if (partitionId == null || !partitionMgr.partitionExist(partitionId)) {
- String msg =
- "Non existing Partition defined. Partition id: " + partitionId + ". " +
- "Please define the partition in the partition definition file.";
- log.error(msg);
+ if ((partitionId == null) || (!partitionMgr.partitionExist(partitionId))) {
+ String msg = "Could not find partition: [id] " + partitionId + ". " +
+ "Please deploy the partitions before deploying the deployment policies.";
throw new InvalidPartitionException(msg);
}
- fillPartition(partition, partitionMgr.getPartitionById(partitionId));
+ fillPartition(partition, PartitionManager.getInstance().getPartitionById(deploymentPolicy.getId()));
}
}
private static void fillPartition(Partition destPartition, Partition srcPartition) {
- if(log.isDebugEnabled())
- log.debug("Settting provider for Partition " + destPartition.getId() + " provider "+ srcPartition.getProvider());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Setting provider for partition: [id] %s [provider] %s", destPartition.getId(), srcPartition.getProvider()));
+ }
destPartition.setProvider(srcPartition.getProvider());
-
- if(log.isDebugEnabled())
- log.info("Settting properties for Partition " + destPartition.getId() + " provider "+ srcPartition.getProperties());
+
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Setting properties for partition: [id] %s [properties] %s", destPartition.getId(), srcPartition.getProperties()));
+ }
destPartition.setProperties(srcPartition.getProperties());
+ }
+
+ public void addASPolicyToInformationModel(AutoscalePolicy asPolicy) throws InvalidPolicyException {
+ if (!autoscalePolicyListMap.containsKey(asPolicy.getId())) {
+ if (log.isDebugEnabled()) {
+ log.debug("Adding policy :" + asPolicy.getId());
+ }
+ autoscalePolicyListMap.put(asPolicy.getId(), asPolicy);
+ } else {
+ throw new InvalidPolicyException("Specified policy [" + asPolicy.getId()
+ + "] already exists");
+ }
+ }
+
+ /**
+ * Removes the specified policy
+ *
+ * @param policy
+ * @throws InvalidPolicyException
+ */
+ public void removeAutoscalePolicy(String policy) throws InvalidPolicyException {
+ if (autoscalePolicyListMap.containsKey(policy)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Removing policy :" + policy);
+ }
+ autoscalePolicyListMap.remove(policy);
+ } else {
+ throw new InvalidPolicyException("No such policy [" + policy + "] exists");
+ }
+ }
+
+ /**
+ * Returns a List of the Autoscale policies contained in this manager.
+ *
+ * @return
+ */
+ public List<AutoscalePolicy> getAutoscalePolicyList() {
+ return Collections.unmodifiableList(new ArrayList<AutoscalePolicy>(autoscalePolicyListMap.values()));
+ }
+
+ /**
+ * Returns the autoscale policy to which the specified id is mapped or null
+ *
+ * @param id
+ * @return
+ */
+ public AutoscalePolicy getAutoscalePolicy(String id) {
+ return autoscalePolicyListMap.get(id);
+ }
+
+ // Add the deployment policy to As in memmory information model. Does not persist.
+ public void addDeploymentPolicyToInformationModel(DeploymentPolicy policy) throws InvalidPolicyException {
+ if (!deploymentPolicyListMap.containsKey(policy.getId())) {
+ if (log.isDebugEnabled()) {
+ log.debug("Adding policy :" + policy.getId());
+ }
+ PartitionManager.getInstance().deployNewNetworkPartitions(policy);
+ deploymentPolicyListMap.put(policy.getId(), policy);
+ } else {
+ throw new InvalidPolicyException("Specified policy [" + policy.getId()
+ + "] already exists");
+ }
+ }
+
+ /**
+ * Removes the specified policy
+ *
+ * @param policy
+ * @throws InvalidPolicyException
+ */
+ public void removeDeploymentPolicy(String policy) throws InvalidPolicyException {
+ if (deploymentPolicyListMap.containsKey(policy)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Removing policy :" + policy);
+ }
+ deploymentPolicyListMap.remove(policy);
+ } else {
+ throw new InvalidPolicyException("No such policy [" + policy + "] exists");
+ }
+ }
+
+ /**
+ * Returns a List of the Deployment policies contained in this manager.
+ *
+ * @return
+ */
+ public List<DeploymentPolicy> getDeploymentPolicyList() {
+ return Collections.unmodifiableList(new ArrayList<DeploymentPolicy>(deploymentPolicyListMap.values()));
+ }
+ /**
+ * Returns the deployment policy to which the specified id is mapped or null
+ *
+ * @param id
+ * @return
+ */
+ public DeploymentPolicy getDeploymentPolicy(String id) {
+ return deploymentPolicyListMap.get(id);
}
-
- public void addASPolicyToInformationModel(AutoscalePolicy asPolicy) throws InvalidPolicyException{
- if (!autoscalePolicyListMap.containsKey(asPolicy.getId())) {
- if(log.isDebugEnabled()){
- log.debug("Adding policy :" + asPolicy.getId());
- }
- autoscalePolicyListMap.put(asPolicy.getId(), asPolicy);
- } else {
- throw new InvalidPolicyException("Specified policy [" + asPolicy.getId()
- + "] already exists");
- }
- }
-
- private void persitASPolicy(String asResourcePath, AutoscalePolicy policy){
- try {
- RegistryManager.getInstance().persist(policy, asResourcePath);
- } catch (RegistryException e) {
- throw new AutoScalerException(e);
- }
- }
-
- private void persitDeploymentPolicy(String depResourcePath, DeploymentPolicy policy){
- try {
- RegistryManager.getInstance().persist(policy, depResourcePath);
- } catch (RegistryException e) {
- throw new AutoScalerException(e);
- }
- }
-
- /**
- * Removes the specified policy
- * @param policy
- * @throws InvalidPolicyException
- */
- public void removeAutoscalePolicy(String policy) throws InvalidPolicyException {
- if (autoscalePolicyListMap.containsKey(policy)) {
- if(log.isDebugEnabled()){
- log.debug("Removing policy :" + policy);
- }
- autoscalePolicyListMap.remove(policy);
- } else {
- throw new InvalidPolicyException("No such policy [" + policy + "] exists");
- }
- }
-
- /**
- * Returns a List of the Autoscale policies contained in this manager.
- * @return
- */
- public List<AutoscalePolicy> getAutoscalePolicyList() {
- return Collections.unmodifiableList(new ArrayList<AutoscalePolicy>(autoscalePolicyListMap.values()));
- }
-
- /**
- * Returns the autoscale policy to which the specified id is mapped or null
- * @param id
- * @return
- */
- public AutoscalePolicy getAutoscalePolicy(String id) {
- return autoscalePolicyListMap.get(id);
- }
-
- // Add the deployment policy to As in memmory information model. Does not persist.
- public void addDeploymentPolicyToInformationModel(DeploymentPolicy policy) throws InvalidPolicyException {
- if (!deploymentPolicyListMap.containsKey(policy.getId())) {
- if(log.isDebugEnabled()){
- log.debug("Adding policy :" + policy.getId());
- }
- PartitionManager.getInstance().deployNewNetworkPartitions(policy);
- deploymentPolicyListMap.put(policy.getId(), policy);
- } else {
- throw new InvalidPolicyException("Specified policy [" + policy.getId()
- + "] already exists");
- }
- }
-
- /**
- * Removes the specified policy
- * @param policy
- * @throws InvalidPolicyException
- */
- public void removeDeploymentPolicy(String policy) throws InvalidPolicyException {
- if (deploymentPolicyListMap.containsKey(policy)) {
- if(log.isDebugEnabled()){
- log.debug("Removing policy :" + policy);
- }
- deploymentPolicyListMap.remove(policy);
- } else {
- throw new InvalidPolicyException("No such policy [" + policy + "] exists");
- }
- }
-
- /**
- * Returns a List of the Deployment policies contained in this manager.
- * @return
- */
- public List<DeploymentPolicy> getDeploymentPolicyList() {
- return Collections.unmodifiableList(new ArrayList<DeploymentPolicy>(deploymentPolicyListMap.values()));
- }
-
- /**
- * Returns the deployment policy to which the specified id is mapped or null
- * @param id
- * @return
- */
- public DeploymentPolicy getDeploymentPolicy(String id) {
- return deploymentPolicyListMap.get(id);
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0091a767/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
index 5be5fd4..ba1afdf 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
@@ -2,6 +2,10 @@ package org.apache.stratos.autoscaler.registry;
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.policy.model.AutoscalePolicy;
+import org.apache.stratos.autoscaler.util.Deserializer;
+import org.apache.stratos.cloud.controller.deployment.partition.Partition;
import org.wso2.carbon.registry.core.Registry;
import org.wso2.carbon.registry.core.Resource;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
@@ -11,6 +15,9 @@ import org.apache.stratos.autoscaler.util.AutoScalerConstants;
import org.apache.stratos.autoscaler.util.ServiceReferenceHolder;
import org.apache.stratos.autoscaler.util.Serializer;
+import java.util.ArrayList;
+import java.util.List;
+
public class RegistryManager {
private final static Log log = LogFactory.getLog(RegistryManager.class);
@@ -54,13 +61,9 @@ public class RegistryManager {
* @param dataObj object to be persisted.
* @param resourcePath resource path to be persisted.
*/
- public void persist(Object dataObj, String resourcePath) throws RegistryException {
+ private void persist(Object dataObj, String resourcePath) throws AutoScalerException {
try {
- /*
- if (registryService.resourceExists(resourcePath)) {
- throw new AutoScalerException("Resource already exist in the registry: " + resourcePath);
- }*/
registryService.beginTransaction();
Resource nodeResource = registryService.newResource();
@@ -68,21 +71,46 @@ public class RegistryManager {
registryService.put(resourcePath, nodeResource);
registryService.commitTransaction();
-
- if(log.isDebugEnabled()){
-
- }
-
} catch (Exception e) {
- String msg = "Failed to persist the Autoscaler data in registry.";
- registryService.rollbackTransaction();
- log.error(msg, e);
- throw new AutoScalerException(msg, e);
+ try {
+ registryService.rollbackTransaction();
+ } catch (RegistryException e1) {
+ if(log.isErrorEnabled()) {
+ log.error("Could not rollback transaction", e);
+ }
+ }
+ throw new AutoScalerException("Could not persist data in registry", e);
+ }
+ }
+ public void persistPartition(Partition partition) {
+ String resourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE + AutoScalerConstants.PARTITION_RESOURCE + "/";
+ persist(partition, resourcePath);
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("Partition written to registry: [id] %s [provider] %s [min] %d [max] %d",
+ partition.getId(), partition.getProvider(), partition.getPartitionMin(), partition.getPartitionMax()));
+ }
+ }
+
+ public void persistAutoscalerPolicy(AutoscalePolicy autoscalePolicy) {
+ String resourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE + AutoScalerConstants.AS_POLICY_RESOURCE + "/" + autoscalePolicy.getId();
+ persist(autoscalePolicy, resourcePath);
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("Autoscaler policy written to registry: [id] %s [name] %s [description] %s",
+ autoscalePolicy.getId(), autoscalePolicy.getDisplayName(), autoscalePolicy.getDescription()));
+ }
+ }
+
+ public void persistDeploymentPolicy(DeploymentPolicy deploymentPolicy) {
+ String resourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE + AutoScalerConstants.DEPLOYMENT_POLICY_RESOURCE + "/" + deploymentPolicy.getId();
+ persist(deploymentPolicy, resourcePath);
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("Deployment policy written to registry: [id] %s [partitions] %s",
+ deploymentPolicy.getId(), deploymentPolicy.getAllPartitions()));
}
}
- public Object retrieve(String resourcePath) {
+ private Object retrieve(String resourcePath) {
try {
Resource resource = registryService.get(resourcePath);
@@ -96,6 +124,102 @@ public class RegistryManager {
log.error(msg, e);
throw new AutoScalerException(msg, e);
}
+ }
+
+ public List<Partition> retrievePartitions() {
+ List<Partition> partitionList = new ArrayList<Partition>();
+ RegistryManager registryManager = RegistryManager.getInstance();
+ String[] partitionsResourceList = (String[]) registryManager.retrieve(AutoScalerConstants.AUTOSCALER_RESOURCE + AutoScalerConstants.PARTITION_RESOURCE);
+ if (partitionsResourceList != null) {
+ Partition partition;
+ for (String resourcePath : partitionsResourceList) {
+ Object serializedObj = registryManager.retrieve(resourcePath);
+ if (serializedObj != null) {
+ try {
+
+ Object dataObj = Deserializer.deserializeFromByteArray((byte[]) serializedObj);
+ if (dataObj instanceof Partition) {
+ partition = (Partition) dataObj;
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("Partition read from registry: [id] %s [provider] %s [min] %d [max] %d",
+ partition.getId(), partition.getProvider(), partition.getPartitionMin(), partition.getPartitionMax()));
+ }
+ partitionList.add(partition);
+ } else {
+ return null;
+ }
+ } catch (Exception e) {
+ String msg = "Unable to retrieve data from Registry. Hence, any historical partitions will not get reflected.";
+ log.warn(msg, e);
+ }
+ }
+ }
+ }
+ return partitionList;
+ }
+
+ public List<AutoscalePolicy> retrieveASPolicies() {
+ List<AutoscalePolicy> asPolicyList = new ArrayList<AutoscalePolicy>();
+ RegistryManager registryManager = RegistryManager.getInstance();
+ String[] partitionsResourceList = (String[]) registryManager.retrieve(AutoScalerConstants.AUTOSCALER_RESOURCE + AutoScalerConstants.AS_POLICY_RESOURCE);
+
+ if (partitionsResourceList != null) {
+ AutoscalePolicy asPolicy;
+ for (String resourcePath : partitionsResourceList) {
+ Object serializedObj = registryManager.retrieve(resourcePath);
+ if (serializedObj != null) {
+ try {
+ Object dataObj = Deserializer.deserializeFromByteArray((byte[]) serializedObj);
+ if (dataObj instanceof AutoscalePolicy) {
+ asPolicy = (AutoscalePolicy) dataObj;
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("Autoscaler policy read from registry: [id] %s [name] %s [description] %s",
+ asPolicy.getId(), asPolicy.getDisplayName(), asPolicy.getDescription()));
+ }
+ asPolicyList.add(asPolicy);
+ } else {
+ return null;
+ }
+ } catch (Exception e) {
+ String msg = "Unable to retrieve data from Registry. Hence, any historical autoscaler policies will not get reflected.";
+ log.warn(msg, e);
+ }
+ }
+ }
+ }
+ return asPolicyList;
+ }
+
+ public List<DeploymentPolicy> retrieveDeploymentPolicies() {
+ List<DeploymentPolicy> depPolicyList = new ArrayList<DeploymentPolicy>();
+ RegistryManager registryManager = RegistryManager.getInstance();
+ String[] depPolicyResourceList = (String[]) registryManager.retrieve(AutoScalerConstants.AUTOSCALER_RESOURCE + AutoScalerConstants.DEPLOYMENT_POLICY_RESOURCE);
+
+ if (depPolicyResourceList != null) {
+ DeploymentPolicy depPolicy;
+ for (String resourcePath : depPolicyResourceList) {
+ Object serializedObj = registryManager.retrieve(resourcePath);
+ if (serializedObj != null) {
+ try {
+ Object dataObj = Deserializer.deserializeFromByteArray((byte[]) serializedObj);
+ if (dataObj instanceof DeploymentPolicy) {
+ depPolicy = (DeploymentPolicy) dataObj;
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("Deployment policy read from registry: [id] %s [partitions] %s",
+ depPolicy.getId(), depPolicy.getAllPartitions()));
+ }
+ depPolicyList.add(depPolicy);
+ } 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;
}
}
[3/3] git commit: Merged changes missed from previous commit due to
conflicts
Posted by im...@apache.org.
Merged changes missed from previous commit due to conflicts
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/723f3397
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/723f3397
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/723f3397
Branch: refs/heads/master
Commit: 723f3397e0bbda79558752cf23779a8eb8b6ff10
Parents: a8bba54
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sat Dec 14 09:53:20 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Dec 14 09:53:20 2013 +0530
----------------------------------------------------------------------
.../autoscaler/partition/PartitionManager.java | 21 ++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/723f3397/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
index 1f86b4f..d8daead 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
@@ -30,7 +30,6 @@ import org.apache.stratos.autoscaler.exception.PartitionValidationException;
import org.apache.stratos.autoscaler.registry.RegistryManager;
import org.apache.stratos.autoscaler.util.AutoScalerConstants;
import org.apache.stratos.cloud.controller.deployment.partition.Partition;
-import org.wso2.carbon.registry.core.exceptions.RegistryException;
import java.util.HashMap;
import java.util.List;
@@ -86,13 +85,16 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
/*
* Deploy a new partition to Auto Scaler.
*/
- public boolean addNewPartition(Partition partition) throws AutoScalerException{
- if(this.partitionExist(partition.getId())) {
- throw new AutoScalerException(String.format("Partition already exist in partition manager: [id] %s", partition.getId()));
- }
-
+ public boolean addNewPartition(Partition partition) throws AutoScalerException, InvalidPartitionException {
try {
- validatePartition(partition);
+ if(this.partitionExist(partition.getId())) {
+ throw new AutoScalerException(String.format("Partition already exist in partition manager: [id] %s", partition.getId()));
+ }
+ if(null == partition.getProvider()) {
+ throw new InvalidPartitionException("Mandatory field provider has not be set for partition "+ partition.getId());
+ }
+
+ validatePartitionViaCloudController(partition);
RegistryManager.getInstance().persistPartition(partition);
addPartitionToInformationModel(partition);
if(log.isInfoEnabled()) {
@@ -165,7 +167,10 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
}
- public boolean validatePartition(Partition partition) throws PartitionValidationException{
+ public boolean validatePartitionViaCloudController(Partition partition) throws PartitionValidationException {
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("Validating partition via cloud controller: [id] %s", partition.getId()));
+ }
return CloudControllerClient.getInstance().validatePartition(partition);
}
[2/3] git commit: Merge remote-tracking branch 'origin/master'
Posted by im...@apache.org.
Merge remote-tracking branch 'origin/master'
Conflicts:
components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/a8bba54b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/a8bba54b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/a8bba54b
Branch: refs/heads/master
Commit: a8bba54bf11b961d2ddad02668fd4bb1fcb4a89a
Parents: 0091a76 68dcc68
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sat Dec 14 09:46:31 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Dec 14 09:46:31 2013 +0530
----------------------------------------------------------------------
.../stratos/autoscaler/api/AutoScalerServiceImpl.java | 4 +++-
.../autoscaler/interfaces/AutoScalerServiceInterface.java | 4 +++-
.../stratos/autoscaler/partition/PartitionManager.java | 10 ++++++----
.../apache/stratos/autoscaler/policy/PolicyManager.java | 3 +++
4 files changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/a8bba54b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/a8bba54b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
index 49ee34b,bc3f0f4..51cc8e0
--- 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
@@@ -109,113 -115,125 +109,116 @@@ public class PolicyManager
}
private static void fillPartition(Partition destPartition, Partition srcPartition) {
- if(null == srcPartition.getProvider())
- throw new RuntimeException("Provider is not set for the deployed partition.");
-
- if(log.isDebugEnabled())
- log.debug("Settting provider for Partition " + destPartition.getId() + " provider "+ srcPartition.getProvider());
++ if(srcPartition.getProvider() == null)
++ throw new RuntimeException("Provider is not set in the deployed partition");
++
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Setting provider for partition: [id] %s [provider] %s", destPartition.getId(), srcPartition.getProvider()));
+ }
destPartition.setProvider(srcPartition.getProvider());
-
- if(log.isDebugEnabled())
- log.info("Settting properties for Partition " + destPartition.getId() + " provider "+ srcPartition.getProperties());
+
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Setting properties for partition: [id] %s [properties] %s", destPartition.getId(), srcPartition.getProperties()));
+ }
destPartition.setProperties(srcPartition.getProperties());
+ }
+
+ public void addASPolicyToInformationModel(AutoscalePolicy asPolicy) throws InvalidPolicyException {
+ if (!autoscalePolicyListMap.containsKey(asPolicy.getId())) {
+ if (log.isDebugEnabled()) {
+ log.debug("Adding policy :" + asPolicy.getId());
+ }
+ autoscalePolicyListMap.put(asPolicy.getId(), asPolicy);
+ } else {
+ throw new InvalidPolicyException("Specified policy [" + asPolicy.getId()
+ + "] already exists");
+ }
+ }
+
+ /**
+ * Removes the specified policy
+ *
+ * @param policy
+ * @throws InvalidPolicyException
+ */
+ public void removeAutoscalePolicy(String policy) throws InvalidPolicyException {
+ if (autoscalePolicyListMap.containsKey(policy)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Removing policy :" + policy);
+ }
+ autoscalePolicyListMap.remove(policy);
+ } else {
+ throw new InvalidPolicyException("No such policy [" + policy + "] exists");
+ }
+ }
+
+ /**
+ * Returns a List of the Autoscale policies contained in this manager.
+ *
+ * @return
+ */
+ public List<AutoscalePolicy> getAutoscalePolicyList() {
+ return Collections.unmodifiableList(new ArrayList<AutoscalePolicy>(autoscalePolicyListMap.values()));
+ }
+
+ /**
+ * Returns the autoscale policy to which the specified id is mapped or null
+ *
+ * @param id
+ * @return
+ */
+ public AutoscalePolicy getAutoscalePolicy(String id) {
+ return autoscalePolicyListMap.get(id);
+ }
+
+ // Add the deployment policy to As in memmory information model. Does not persist.
+ public void addDeploymentPolicyToInformationModel(DeploymentPolicy policy) throws InvalidPolicyException {
+ if (!deploymentPolicyListMap.containsKey(policy.getId())) {
+ if (log.isDebugEnabled()) {
+ log.debug("Adding policy :" + policy.getId());
+ }
+ PartitionManager.getInstance().deployNewNetworkPartitions(policy);
+ deploymentPolicyListMap.put(policy.getId(), policy);
+ } else {
+ throw new InvalidPolicyException("Specified policy [" + policy.getId()
+ + "] already exists");
+ }
+ }
+
+ /**
+ * Removes the specified policy
+ *
+ * @param policy
+ * @throws InvalidPolicyException
+ */
+ public void removeDeploymentPolicy(String policy) throws InvalidPolicyException {
+ if (deploymentPolicyListMap.containsKey(policy)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Removing policy :" + policy);
+ }
+ deploymentPolicyListMap.remove(policy);
+ } else {
+ throw new InvalidPolicyException("No such policy [" + policy + "] exists");
+ }
+ }
+
+ /**
+ * Returns a List of the Deployment policies contained in this manager.
+ *
+ * @return
+ */
+ public List<DeploymentPolicy> getDeploymentPolicyList() {
+ return Collections.unmodifiableList(new ArrayList<DeploymentPolicy>(deploymentPolicyListMap.values()));
+ }
+ /**
+ * Returns the deployment policy to which the specified id is mapped or null
+ *
+ * @param id
+ * @return
+ */
+ public DeploymentPolicy getDeploymentPolicy(String id) {
+ return deploymentPolicyListMap.get(id);
}
-
- public void addASPolicyToInformationModel(AutoscalePolicy asPolicy) throws InvalidPolicyException{
- if (!autoscalePolicyListMap.containsKey(asPolicy.getId())) {
- if(log.isDebugEnabled()){
- log.debug("Adding policy :" + asPolicy.getId());
- }
- autoscalePolicyListMap.put(asPolicy.getId(), asPolicy);
- } else {
- throw new InvalidPolicyException("Specified policy [" + asPolicy.getId()
- + "] already exists");
- }
- }
-
- private void persitASPolicy(String asResourcePath, AutoscalePolicy policy){
- try {
- RegistryManager.getInstance().persist(policy, asResourcePath);
- } catch (RegistryException e) {
- throw new AutoScalerException(e);
- }
- }
-
- private void persitDeploymentPolicy(String depResourcePath, DeploymentPolicy policy){
- try {
- RegistryManager.getInstance().persist(policy, depResourcePath);
- } catch (RegistryException e) {
- throw new AutoScalerException(e);
- }
- }
-
- /**
- * Removes the specified policy
- * @param policy
- * @throws InvalidPolicyException
- */
- public void removeAutoscalePolicy(String policy) throws InvalidPolicyException {
- if (autoscalePolicyListMap.containsKey(policy)) {
- if(log.isDebugEnabled()){
- log.debug("Removing policy :" + policy);
- }
- autoscalePolicyListMap.remove(policy);
- } else {
- throw new InvalidPolicyException("No such policy [" + policy + "] exists");
- }
- }
-
- /**
- * Returns a List of the Autoscale policies contained in this manager.
- * @return
- */
- public List<AutoscalePolicy> getAutoscalePolicyList() {
- return Collections.unmodifiableList(new ArrayList<AutoscalePolicy>(autoscalePolicyListMap.values()));
- }
-
- /**
- * Returns the autoscale policy to which the specified id is mapped or null
- * @param id
- * @return
- */
- public AutoscalePolicy getAutoscalePolicy(String id) {
- return autoscalePolicyListMap.get(id);
- }
-
- // Add the deployment policy to As in memmory information model. Does not persist.
- public void addDeploymentPolicyToInformationModel(DeploymentPolicy policy) throws InvalidPolicyException {
- if (!deploymentPolicyListMap.containsKey(policy.getId())) {
- if(log.isDebugEnabled()){
- log.debug("Adding policy :" + policy.getId());
- }
- PartitionManager.getInstance().deployNewNetworkPartitions(policy);
- deploymentPolicyListMap.put(policy.getId(), policy);
- } else {
- throw new InvalidPolicyException("Specified policy [" + policy.getId()
- + "] already exists");
- }
- }
-
- /**
- * Removes the specified policy
- * @param policy
- * @throws InvalidPolicyException
- */
- public void removeDeploymentPolicy(String policy) throws InvalidPolicyException {
- if (deploymentPolicyListMap.containsKey(policy)) {
- if(log.isDebugEnabled()){
- log.debug("Removing policy :" + policy);
- }
- deploymentPolicyListMap.remove(policy);
- } else {
- throw new InvalidPolicyException("No such policy [" + policy + "] exists");
- }
- }
-
- /**
- * Returns a List of the Deployment policies contained in this manager.
- * @return
- */
- public List<DeploymentPolicy> getDeploymentPolicyList() {
- return Collections.unmodifiableList(new ArrayList<DeploymentPolicy>(deploymentPolicyListMap.values()));
- }
-
- /**
- * Returns the deployment policy to which the specified id is mapped or null
- * @param id
- * @return
- */
- public DeploymentPolicy getDeploymentPolicy(String id) {
- return deploymentPolicyListMap.get(id);
- }
}