You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2013/12/13 13:37:10 UTC
git commit: Fixes needed for correct Network partition - Partition
relation
Updated Branches:
refs/heads/master 6baf7daaf -> 0e2aaba49
Fixes needed for correct Network partition - Partition relation
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/0e2aaba4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/0e2aaba4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/0e2aaba4
Branch: refs/heads/master
Commit: 0e2aaba4920401eb436aaf25d2a44050dd0c9582
Parents: 6baf7da
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Fri Dec 13 18:11:43 2013 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Fri Dec 13 18:11:43 2013 +0530
----------------------------------------------------------------------
.../autoscaler/api/AutoScalerServiceImpl.java | 76 +++++++++-----------
.../autoscaler/partition/PartitionManager.java | 22 +++---
.../partition/deployers/PartitionDeployer.java | 2 +-
.../topology/AutoscalerTopologyReceiver.java | 12 +---
4 files changed, 50 insertions(+), 62 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0e2aaba4/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 eb179a1..f590364 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
@@ -42,9 +42,9 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{
private static final Log log = LogFactory.getLog(AutoScalerServiceImpl.class);
PartitionManager partitionManager = PartitionManager.getInstance();
-
+
public Partition[] getAllAvailablePartitions(){
- return PartitionManager.getInstance().getAllPartitions();
+ return partitionManager.getAllPartitions();
}
public DeploymentPolicy[] getAllDeploymentPolicies(){
@@ -70,7 +70,7 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{
@Override
public boolean addPartition(Partition partition) {
- return PartitionManager.getInstance().deployNewPartiotion(partition);
+ return partitionManager.addNewPartition(partition);
}
@Override
@@ -85,7 +85,7 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{
@Override
public Partition getPartition(String partitionId) {
- return PartitionManager.getInstance().getPartitionById(partitionId);
+ return partitionManager.getPartitionById(partitionId);
}
@Override
@@ -131,16 +131,13 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{
public void checkLBExistenceAgainstPolicy(String lbClusterId, String deploymentPolicyId) throws NonExistingLBException {
boolean exist = false;
- Partition[] partitions = getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-
- for (Partition partition : partitions) {
- if (partition != null) {
- NetworkPartitionContext nwPartitionCtxt =
- partitionManager.getNetworkPartitionOfPartition(partition.getId());
- if (nwPartitionCtxt.isLBExist(lbClusterId)) {
- exist = true;
- break;
- }
+ for (PartitionGroup partitionGroup : PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups()) {
+
+ NetworkPartitionContext nwPartitionCtxt = partitionManager.getNetworkPartition(partitionGroup.getId());
+
+ if (nwPartitionCtxt.isLBExist(lbClusterId)) {
+ exist = true;
+ break;
}
}
@@ -153,22 +150,21 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{
}
public boolean checkDefaultLBExistenceAgainstPolicy(String deploymentPolicyId) {
- Partition[] partitions = getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-
- for (Partition partition : partitions) {
- if (partition != null) {
- NetworkPartitionContext nwPartitionCtxt =
- partitionManager.getNetworkPartitionOfPartition(partition.getId());
- if (!nwPartitionCtxt.isDefaultLBExist()) {
- if (log.isDebugEnabled()) {
- log.debug("Default LB does not exist in [network partition] " +
- nwPartitionCtxt.getId() + " of [Deployment Policy] " +
- deploymentPolicyId);
- }
- return false;
+ for (PartitionGroup partitionGroup : PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups()) {
+
+ NetworkPartitionContext nwPartitionCtxt = partitionManager.getNetworkPartition(partitionGroup.getId());
+
+ if (!nwPartitionCtxt.isDefaultLBExist()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Default LB does not exist in [network partition] " +
+ nwPartitionCtxt.getId() + " of [Deployment Policy] " +
+ deploymentPolicyId);
+
}
+ return false;
}
+
}
return true;
@@ -176,12 +172,11 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{
}
public boolean checkServiceLBExistenceAgainstPolicy(String serviceName, String deploymentPolicyId) {
- Partition[] partitions = getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-
- for (Partition partition : partitions) {
- if (partition != null) {
- NetworkPartitionContext nwPartitionCtxt =
- partitionManager.getNetworkPartitionOfPartition(partition.getId());
+
+ for (PartitionGroup partitionGroup : PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups()) {
+
+ NetworkPartitionContext nwPartitionCtxt = partitionManager.getNetworkPartition(partitionGroup.getId());
+
if (!nwPartitionCtxt.isServiceLBExist(serviceName)) {
if (log.isDebugEnabled()) {
log.debug("Service LB [service name] "+serviceName+" does not exist in [network partition] " +
@@ -191,7 +186,7 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{
}
return false;
}
- }
+
}
return true;
@@ -199,12 +194,11 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{
}
public boolean checkClusterLBExistenceAgainstPolicy(String clusterId, String deploymentPolicyId) {
- Partition[] partitions = getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-
- for (Partition partition : partitions) {
- if (partition != null) {
- NetworkPartitionContext nwPartitionCtxt =
- partitionManager.getNetworkPartitionOfPartition(partition.getId());
+
+ for (PartitionGroup partitionGroup : PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups()) {
+
+ NetworkPartitionContext nwPartitionCtxt = partitionManager.getNetworkPartition(partitionGroup.getId());
+
if (!nwPartitionCtxt.isClusterLBExist(clusterId)) {
if (log.isDebugEnabled()) {
log.debug("Cluster LB [cluster id] "+clusterId+" does not exist in [network partition] " +
@@ -214,7 +208,7 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{
}
return false;
}
- }
+
}
return true;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0e2aaba4/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 e73b6db..a199715 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
@@ -43,7 +43,7 @@ public class PartitionManager {
private static final Log log = LogFactory.getLog(PartitionManager.class);
// Partitions against partitionID
- private static Map<String,Partition> partitionListMap = new HashMap<String, Partition>();
+ private static Map<String,Partition> partitions = new HashMap<String, Partition>();
private List<NetworkPartitionContext> networkPartitions;
@@ -51,7 +51,7 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
* Key - partition id
* Value - reference to NetworkPartition
*/
- private Map<String, NetworkPartitionContext> partitionIdToNetworkPartition;
+// private Map<String, NetworkPartitionContext> partitionIdToNetworkPartition;
/*
@@ -79,13 +79,13 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
}
public boolean partitionExist(String partitionId){
- return partitionListMap.containsKey(partitionId);
+ return partitions.containsKey(partitionId);
}
/*
* Deploy a new partition to Auto Scaler.
*/
- public boolean deployNewPartiotion(Partition partition) throws AutoScalerException{
+ 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.");
@@ -118,12 +118,12 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
public void addPartitionToInformationModel(Partition partition) {
- partitionListMap.put(partition.getId(), partition);
+ partitions.put(partition.getId(), partition);
}
- public NetworkPartitionContext getNetworkPartitionOfPartition(String partitionId) {
- return this.partitionIdToNetworkPartition.get(partitionId);
- }
+// public NetworkPartitionContext getNetworkPartitionOfPartition(String partitionId) {
+// return this.partitionIdToNetworkPartition.get(partitionId);
+// }
public NetworkPartitionContext getNetworkPartition(String networkPartitionId) {
return this.networkPartitionContexts.get(networkPartitionId);
@@ -166,14 +166,14 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
public Partition getPartitionById(String partitionId){
if(partitionExist(partitionId))
- return partitionListMap.get(partitionId);
+ return partitions.get(partitionId);
else
return null;
}
public Partition[] getAllPartitions(){
- //return Collections.unmodifiableList(new ArrayList<Partition>(partitionListMap.values()));
- return partitionListMap.values().toArray(new Partition[0]);
+ //return Collections.unmodifiableList(new ArrayList<Partition>(partitions.values()));
+ return partitions.values().toArray(new Partition[0]);
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0e2aaba4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
index 53d7f6d..c8dced0 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
@@ -84,7 +84,7 @@ public class PartitionDeployer extends AbstractDeployer {
while (it.hasNext()) {
Partition partition = it.next();
try {
- PartitionManager.getInstance().deployNewPartiotion(partition);
+ PartitionManager.getInstance().addNewPartition(partition);
} catch (Exception e) {
String msg =
"Invalid partition: " + partition.getId() + " in file: " +
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0e2aaba4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java
index 7609718..be0e7af 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java
@@ -21,14 +21,9 @@ package org.apache.stratos.autoscaler.topology;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.AutoscalerContext;
-import org.apache.stratos.autoscaler.ClusterMonitor;
-import org.apache.stratos.autoscaler.LbClusterMonitor;
-import org.apache.stratos.autoscaler.MemberStatsContext;
-import org.apache.stratos.autoscaler.PartitionContext;
+import org.apache.stratos.autoscaler.*;
import org.apache.stratos.autoscaler.exception.PartitionValidationException;
import org.apache.stratos.autoscaler.exception.PolicyValidationException;
-import org.apache.stratos.autoscaler.partition.PartitionManager;
import org.apache.stratos.autoscaler.util.AutoscalerUtil;
import org.apache.stratos.messaging.domain.topology.Cluster;
import org.apache.stratos.messaging.domain.topology.Service;
@@ -160,7 +155,7 @@ public class AutoscalerTopologyReceiver implements Runnable {
try {
TopologyManager.acquireReadLock();
MemberTerminatedEvent e = (MemberTerminatedEvent) event;
- String networkPartitionId = PartitionManager.getInstance().getNetworkPartitionOfPartition(e.getPartitionId()).getId() ;
+ String networkPartitionId = e.getNetworkPartitionId();
AutoscalerContext.getInstance().getMonitor(e.getClusterId())
.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(e.getPartitionId())
.removeMemberStatsContext(e.getMemberId());
@@ -188,9 +183,8 @@ public class AutoscalerTopologyReceiver implements Runnable {
MemberActivatedEvent e = (MemberActivatedEvent)event;
String memberId = e.getMemberId();
String partitionId = e.getPartitionId();
+ String networkPartitionId = e.getNetworkPartitionId();
- String networkPartitionId = PartitionManager.getInstance().getNetworkPartitionOfPartition(e.getPartitionId()).getId() ;
-
PartitionContext partitionContext;
String clusterId = e.getClusterId();
ClusterMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId);