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 2015/05/19 12:01:10 UTC

[3/6] stratos git commit: Move lists which has group instance status to GroupLevelNetworkPartitionContext and ApplicationLevelNetworkPartitionContext

Move lists which has group instance status to GroupLevelNetworkPartitionContext and ApplicationLevelNetworkPartitionContext


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/baed9aab
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/baed9aab
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/baed9aab

Branch: refs/heads/master
Commit: baed9aabe7b0a26ccb47d1032642d63fd27e5b43
Parents: 75d55a0
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue May 19 13:16:01 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue May 19 15:30:57 2015 +0530

----------------------------------------------------------------------
 ...ApplicationLevelNetworkPartitionContext.java | 174 ++++++++++++++++++
 .../GroupLevelNetworkPartitionContext.java      | 177 ++++++++++++++++++-
 .../network/NetworkPartitionContext.java        | 173 +-----------------
 3 files changed, 351 insertions(+), 173 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/baed9aab/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ApplicationLevelNetworkPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ApplicationLevelNetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ApplicationLevelNetworkPartitionContext.java
index 0370ccb..c2a999a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ApplicationLevelNetworkPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ApplicationLevelNetworkPartitionContext.java
@@ -20,8 +20,11 @@ package org.apache.stratos.autoscaler.context.partition.network;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.context.InstanceContext;
 
 import java.io.Serializable;
+import java.util.Iterator;
+import java.util.List;
 
 /**
  * Holds runtime data of a network partition.
@@ -29,6 +32,15 @@ import java.io.Serializable;
 public class ApplicationLevelNetworkPartitionContext extends NetworkPartitionContext implements Serializable {
     private static final Log log = LogFactory.getLog(ApplicationLevelNetworkPartitionContext.class);
     private boolean createdOnBurst;
+    //active instances
+    private List<InstanceContext> activeInstances;
+    //pending instances
+    private List<InstanceContext> pendingInstances;
+    //terminating pending instances
+    private List<InstanceContext> terminatingPending;
+    private String partitionAlgorithm;
+    private int pendingMembersFailureCount = 0;
+
 
     public ApplicationLevelNetworkPartitionContext(String id) {
         super(id);
@@ -82,4 +94,166 @@ public class ApplicationLevelNetworkPartitionContext extends NetworkPartitionCon
         this.createdOnBurst = createdOnBurst;
     }
 
+
+    public List<InstanceContext> getActiveInstances() {
+        return activeInstances;
+    }
+
+    public void setActiveInstances(List<InstanceContext> activeInstances) {
+        this.activeInstances = activeInstances;
+    }
+
+    public List<InstanceContext> getPendingInstances() {
+        return pendingInstances;
+    }
+
+    public void setPendingInstances(List<InstanceContext> pendingInstances) {
+        this.pendingInstances = pendingInstances;
+    }
+
+    public void addPendingInstance(InstanceContext context) {
+        this.pendingInstances.add(context);
+    }
+
+    public int getPendingInstancesCount() {
+        return this.pendingInstances.size();
+    }
+
+    public int getActiveInstancesCount() {
+        return this.activeInstances.size();
+    }
+
+    public InstanceContext getActiveInstance(String instanceId) {
+        for (InstanceContext instanceContext : activeInstances) {
+            if (instanceId.equals(instanceContext.getId())) {
+                return instanceContext;
+            }
+        }
+        return null;
+    }
+
+    public InstanceContext getPendingInstance(String instanceId) {
+        for (InstanceContext instanceContext : pendingInstances) {
+            if (instanceId.equals(instanceContext.getId())) {
+                return instanceContext;
+            }
+        }
+        return null;
+    }
+
+
+    public void movePendingInstanceToActiveInstances(String instanceId) {
+        if (instanceId == null) {
+            return;
+        }
+        synchronized (pendingInstances) {
+            Iterator<InstanceContext> iterator = pendingInstances.listIterator();
+            while (iterator.hasNext()) {
+                InstanceContext pendingInstance = iterator.next();
+                if (pendingInstance == null) {
+                    iterator.remove();
+                    continue;
+                }
+                if (instanceId.equals(pendingInstance.getId())) {
+                    // member is activated
+                    // remove from pending list
+                    iterator.remove();
+                    // add to the activated list
+                    this.activeInstances.add(pendingInstance);
+                    pendingMembersFailureCount = 0;
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Pending instance is removed and added to the " +
+                                "activated instance list. [Instance Id] %s", instanceId));
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    public void moveActiveInstanceToTerminationPendingInstances(String instanceId) {
+        if (instanceId == null) {
+            return;
+        }
+        synchronized (activeInstances) {
+            Iterator<InstanceContext> iterator = activeInstances.listIterator();
+            while (iterator.hasNext()) {
+                InstanceContext activeInstance = iterator.next();
+                if (activeInstance == null) {
+                    iterator.remove();
+                    continue;
+                }
+                if (instanceId.equals(activeInstance.getId())) {
+                    // member is activated
+                    // remove from pending list
+                    iterator.remove();
+                    // add to the activated list
+                    this.terminatingPending.add(activeInstance);
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Active instance is removed and added to the " +
+                                "termination pending instance list. [Instance Id] %s", instanceId));
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    public void movePendingInstanceToTerminationPendingInstances(String instanceId) {
+        if (instanceId == null) {
+            return;
+        }
+        synchronized (pendingInstances) {
+            Iterator<InstanceContext> iterator = pendingInstances.listIterator();
+            while (iterator.hasNext()) {
+                InstanceContext pendingInstance = iterator.next();
+                if (pendingInstance == null) {
+                    iterator.remove();
+                    continue;
+                }
+                if (instanceId.equals(pendingInstance.getId())) {
+                    // member is activated
+                    // remove from pending list
+                    iterator.remove();
+                    // add to the activated list
+                    this.terminatingPending.add(pendingInstance);
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Pending instance is removed and added to the " +
+                                "termination pending instance list. [Instance Id] %s", instanceId));
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    public int getNonTerminatedInstancesCount() {
+        return this.activeInstances.size() + this.pendingInstances.size();
+    }
+
+    public List<InstanceContext> getTerminatingPending() {
+        return terminatingPending;
+    }
+
+    public void setTerminatingPending(List<InstanceContext> terminatingPending) {
+        this.terminatingPending = terminatingPending;
+    }
+
+    public boolean removeTerminationPendingInstance(String instanceId) {
+        if (id == null) {
+            return false;
+        }
+        synchronized (pendingInstances) {
+            for (Iterator<InstanceContext> iterator = pendingInstances.iterator(); iterator.hasNext(); ) {
+                InstanceContext pendingInstance = iterator.next();
+                if (id.equals(pendingInstance.getId())) {
+                    iterator.remove();
+                    return true;
+                }
+
+            }
+        }
+        return false;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/baed9aab/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java
index 6e174ad..85a0236 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java
@@ -20,10 +20,12 @@ package org.apache.stratos.autoscaler.context.partition.network;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.context.InstanceContext;
 import org.apache.stratos.autoscaler.context.partition.GroupLevelPartitionContext;
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -33,11 +35,18 @@ public class GroupLevelNetworkPartitionContext extends NetworkPartitionContext i
     private static final Log log = LogFactory.getLog(GroupLevelNetworkPartitionContext.class);
     private int scaleDownRequestsCount = 0;
     private float averageRequestsServedPerInstance;
+    private int pendingMembersFailureCount = 0;
 
     private int minInstanceCount = 0, maxInstanceCount = 0;
     private int requiredInstanceCountBasedOnStats;
     private int requiredInstanceCountBasedOnDependencies;
 
+    //active instances
+    private List<InstanceContext> activeInstances;
+    //pending instances
+    private List<InstanceContext> pendingInstances;
+    //terminating pending instances
+    private List<InstanceContext> terminatingPending;
     private String partitionAlgorithm;
 
     //Group level partition contexts
@@ -53,7 +62,9 @@ public class GroupLevelNetworkPartitionContext extends NetworkPartitionContext i
         partitionContexts = new ArrayList<GroupLevelPartitionContext>();
         requiredInstanceCountBasedOnStats = minInstanceCount;
         requiredInstanceCountBasedOnDependencies = minInstanceCount;
-
+        pendingInstances = new ArrayList<InstanceContext>();
+        activeInstances = new ArrayList<InstanceContext>();
+        terminatingPending = new ArrayList<InstanceContext>();
 
     }
 
@@ -62,6 +73,9 @@ public class GroupLevelNetworkPartitionContext extends NetworkPartitionContext i
         partitionContexts = new ArrayList<GroupLevelPartitionContext>();
         requiredInstanceCountBasedOnStats = minInstanceCount;
         requiredInstanceCountBasedOnDependencies = minInstanceCount;
+        pendingInstances = new ArrayList<InstanceContext>();
+        activeInstances = new ArrayList<InstanceContext>();
+        terminatingPending = new ArrayList<InstanceContext>();
     }
 
 
@@ -211,5 +225,166 @@ public class GroupLevelNetworkPartitionContext extends NetworkPartitionContext i
         return null;
     }
 
+    public List<InstanceContext> getActiveInstances() {
+        return activeInstances;
+    }
+
+    public void setActiveInstances(List<InstanceContext> activeInstances) {
+        this.activeInstances = activeInstances;
+    }
+
+    public List<InstanceContext> getPendingInstances() {
+        return pendingInstances;
+    }
+
+    public void setPendingInstances(List<InstanceContext> pendingInstances) {
+        this.pendingInstances = pendingInstances;
+    }
+
+    public void addPendingInstance(InstanceContext context) {
+        this.pendingInstances.add(context);
+    }
+
+    public int getPendingInstancesCount() {
+        return this.pendingInstances.size();
+    }
+
+    public int getActiveInstancesCount() {
+        return this.activeInstances.size();
+    }
+
+    public InstanceContext getActiveInstance(String instanceId) {
+        for (InstanceContext instanceContext : activeInstances) {
+            if (instanceId.equals(instanceContext.getId())) {
+                return instanceContext;
+            }
+        }
+        return null;
+    }
+
+    public InstanceContext getPendingInstance(String instanceId) {
+        for (InstanceContext instanceContext : pendingInstances) {
+            if (instanceId.equals(instanceContext.getId())) {
+                return instanceContext;
+            }
+        }
+        return null;
+    }
+
+
+    public void movePendingInstanceToActiveInstances(String instanceId) {
+        if (instanceId == null) {
+            return;
+        }
+        synchronized (pendingInstances) {
+            Iterator<InstanceContext> iterator = pendingInstances.listIterator();
+            while (iterator.hasNext()) {
+                InstanceContext pendingInstance = iterator.next();
+                if (pendingInstance == null) {
+                    iterator.remove();
+                    continue;
+                }
+                if (instanceId.equals(pendingInstance.getId())) {
+                    // member is activated
+                    // remove from pending list
+                    iterator.remove();
+                    // add to the activated list
+                    this.activeInstances.add(pendingInstance);
+                    pendingMembersFailureCount = 0;
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Pending instance is removed and added to the " +
+                                "activated instance list. [Instance Id] %s", instanceId));
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    public void moveActiveInstanceToTerminationPendingInstances(String instanceId) {
+        if (instanceId == null) {
+            return;
+        }
+        synchronized (activeInstances) {
+            Iterator<InstanceContext> iterator = activeInstances.listIterator();
+            while (iterator.hasNext()) {
+                InstanceContext activeInstance = iterator.next();
+                if (activeInstance == null) {
+                    iterator.remove();
+                    continue;
+                }
+                if (instanceId.equals(activeInstance.getId())) {
+                    // member is activated
+                    // remove from pending list
+                    iterator.remove();
+                    // add to the activated list
+                    this.terminatingPending.add(activeInstance);
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Active instance is removed and added to the " +
+                                "termination pending instance list. [Instance Id] %s", instanceId));
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    public void movePendingInstanceToTerminationPendingInstances(String instanceId) {
+        if (instanceId == null) {
+            return;
+        }
+        synchronized (pendingInstances) {
+            Iterator<InstanceContext> iterator = pendingInstances.listIterator();
+            while (iterator.hasNext()) {
+                InstanceContext pendingInstance = iterator.next();
+                if (pendingInstance == null) {
+                    iterator.remove();
+                    continue;
+                }
+                if (instanceId.equals(pendingInstance.getId())) {
+                    // member is activated
+                    // remove from pending list
+                    iterator.remove();
+                    // add to the activated list
+                    this.terminatingPending.add(pendingInstance);
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Pending instance is removed and added to the " +
+                                "termination pending instance list. [Instance Id] %s", instanceId));
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    public int getNonTerminatedInstancesCount() {
+        return this.activeInstances.size() + this.pendingInstances.size();
+    }
+
+    public List<InstanceContext> getTerminatingPending() {
+        return terminatingPending;
+    }
+
+    public void setTerminatingPending(List<InstanceContext> terminatingPending) {
+        this.terminatingPending = terminatingPending;
+    }
+
+    public boolean removeTerminationPendingInstance(String instanceId) {
+        if (id == null) {
+            return false;
+        }
+        synchronized (pendingInstances) {
+            for (Iterator<InstanceContext> iterator = pendingInstances.iterator(); iterator.hasNext(); ) {
+                InstanceContext pendingInstance = iterator.next();
+                if (id.equals(pendingInstance.getId())) {
+                    iterator.remove();
+                    return true;
+                }
+
+            }
+        }
+        return false;
+    }
+
 
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/baed9aab/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java
index f7384d6..563c415 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java
@@ -30,23 +30,14 @@ import java.util.*;
 public abstract class NetworkPartitionContext {
     private static final Log log = LogFactory.getLog(NetworkPartitionContext.class);
     //id of the network partition context
-    private final String id;
+    protected final String id;
     //group instances kept inside a partition
     private Map<String, InstanceContext> instanceIdToInstanceContextMap;
-    //active instances
-    private List<InstanceContext> activeInstances;
-    //pending instances
-    private List<InstanceContext> pendingInstances;
-    //terminating pending instances
-    private List<InstanceContext> terminatingPending;
     private int pendingMembersFailureCount = 0;
 
     protected NetworkPartitionContext(String id) {
         this.id = id;
         instanceIdToInstanceContextMap = new HashMap<String, InstanceContext>();
-        pendingInstances = new ArrayList<InstanceContext>();
-        activeInstances = new ArrayList<InstanceContext>();
-        terminatingPending = new ArrayList<InstanceContext>();
 
     }
 
@@ -78,166 +69,4 @@ public abstract class NetworkPartitionContext {
     public boolean containsInstanceContext(String instanceId) {
         return this.instanceIdToInstanceContextMap.containsKey(instanceId);
     }
-
-    public List<InstanceContext> getActiveInstances() {
-        return activeInstances;
-    }
-
-    public void setActiveInstances(List<InstanceContext> activeInstances) {
-        this.activeInstances = activeInstances;
-    }
-
-    public List<InstanceContext> getPendingInstances() {
-        return pendingInstances;
-    }
-
-    public void setPendingInstances(List<InstanceContext> pendingInstances) {
-        this.pendingInstances = pendingInstances;
-    }
-
-    public void addPendingInstance(InstanceContext context) {
-        this.pendingInstances.add(context);
-    }
-
-    public int getPendingInstancesCount() {
-        return this.pendingInstances.size();
-    }
-
-    public int getActiveInstancesCount() {
-        return this.activeInstances.size();
-    }
-
-    public InstanceContext getActiveInstance(String instanceId) {
-        for (InstanceContext instanceContext : activeInstances) {
-            if (instanceId.equals(instanceContext.getId())) {
-                return instanceContext;
-            }
-        }
-        return null;
-    }
-
-    public InstanceContext getPendingInstance(String instanceId) {
-        for (InstanceContext instanceContext : pendingInstances) {
-            if (instanceId.equals(instanceContext.getId())) {
-                return instanceContext;
-            }
-        }
-        return null;
-    }
-
-
-    public void movePendingInstanceToActiveInstances(String instanceId) {
-        if (instanceId == null) {
-            return;
-        }
-        synchronized (pendingInstances) {
-            Iterator<InstanceContext> iterator = pendingInstances.listIterator();
-            while (iterator.hasNext()) {
-                InstanceContext pendingInstance = iterator.next();
-                if (pendingInstance == null) {
-                    iterator.remove();
-                    continue;
-                }
-                if (instanceId.equals(pendingInstance.getId())) {
-                    // member is activated
-                    // remove from pending list
-                    iterator.remove();
-                    // add to the activated list
-                    this.activeInstances.add(pendingInstance);
-                    pendingMembersFailureCount = 0;
-                    if (log.isDebugEnabled()) {
-                        log.debug(String.format("Pending instance is removed and added to the " +
-                                "activated instance list. [Instance Id] %s", instanceId));
-                    }
-                    break;
-                }
-            }
-        }
-    }
-
-    public void moveActiveInstanceToTerminationPendingInstances(String instanceId) {
-        if (instanceId == null) {
-            return;
-        }
-        synchronized (activeInstances) {
-            Iterator<InstanceContext> iterator = activeInstances.listIterator();
-            while (iterator.hasNext()) {
-                InstanceContext activeInstance = iterator.next();
-                if (activeInstance == null) {
-                    iterator.remove();
-                    continue;
-                }
-                if (instanceId.equals(activeInstance.getId())) {
-                    // member is activated
-                    // remove from pending list
-                    iterator.remove();
-                    // add to the activated list
-                    this.terminatingPending.add(activeInstance);
-                    if (log.isDebugEnabled()) {
-                        log.debug(String.format("Active instance is removed and added to the " +
-                                "termination pending instance list. [Instance Id] %s", instanceId));
-                    }
-                    break;
-                }
-            }
-        }
-    }
-
-    public void movePendingInstanceToTerminationPendingInstances(String instanceId) {
-        if (instanceId == null) {
-            return;
-        }
-        synchronized (pendingInstances) {
-            Iterator<InstanceContext> iterator = pendingInstances.listIterator();
-            while (iterator.hasNext()) {
-                InstanceContext pendingInstance = iterator.next();
-                if (pendingInstance == null) {
-                    iterator.remove();
-                    continue;
-                }
-                if (instanceId.equals(pendingInstance.getId())) {
-                    // member is activated
-                    // remove from pending list
-                    iterator.remove();
-                    // add to the activated list
-                    this.terminatingPending.add(pendingInstance);
-                    if (log.isDebugEnabled()) {
-                        log.debug(String.format("Pending instance is removed and added to the " +
-                                "termination pending instance list. [Instance Id] %s", instanceId));
-                    }
-                    break;
-                }
-            }
-        }
-    }
-
-    public int getNonTerminatedInstancesCount() {
-        return this.activeInstances.size() + this.pendingInstances.size();
-    }
-
-    public List<InstanceContext> getTerminatingPending() {
-        return terminatingPending;
-    }
-
-    public void setTerminatingPending(List<InstanceContext> terminatingPending) {
-        this.terminatingPending = terminatingPending;
-    }
-
-    public boolean removeTerminationPendingInstance(String instanceId) {
-        if (id == null) {
-            return false;
-        }
-        synchronized (pendingInstances) {
-            for (Iterator<InstanceContext> iterator = pendingInstances.iterator(); iterator.hasNext(); ) {
-                InstanceContext pendingInstance = iterator.next();
-                if (id.equals(pendingInstance.getId())) {
-                    iterator.remove();
-                    return true;
-                }
-
-            }
-        }
-        return false;
-    }
-
 }