SLIDER-320 rename activeContainers in appState (and all related methods) to 
ownedContainers ... differentiates from livecontainers better


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/7e2ce276
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/7e2ce276
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/7e2ce276

Branch: refs/heads/feature/SLIDER-151_REST_API
Commit: 7e2ce2764153fea9a586d809fcf1ebd4f593255e
Parents: 41e0c5b
Author: Steve Loughran <ste...@apache.org>
Authored: Fri Aug 15 14:29:32 2014 +0100
Committer: Steve Loughran <ste...@apache.org>
Committed: Fri Aug 15 14:29:32 2014 +0100

----------------------------------------------------------------------
 .../server/appmaster/SliderAppMaster.java       |  2 +-
 .../slider/server/appmaster/state/AppState.java | 72 +++++++++++++-------
 .../appmaster/state/ProviderAppState.java       | 12 ++--
 .../state/StateAccessForProviders.java          |  6 +-
 .../appmaster/web/view/ContainerStatsBlock.java |  2 +-
 .../server/appmaster/web/view/IndexBlock.java   |  3 +-
 6 files changed, 61 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/7e2ce276/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
index acd6870..9a16188 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
@@ -1565,7 +1565,7 @@ public class SliderAppMaster extends 
AbstractSliderLaunchedService
       throws SliderException {
     log.info("containerLostContactWithProvider: container {} lost",
         containerId);
-    RoleInstance activeContainer = appState.getActiveContainer(containerId);
+    RoleInstance activeContainer = appState.getOwnedContainer(containerId);
     if (activeContainer != null) {
       executeRMOperations(appState.releaseContainer(containerId));
       // ask for more containers if needed

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/7e2ce276/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
index 0d2afcc..2f2eadd 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
@@ -163,7 +163,7 @@ public class AppState {
    * Hash map of the containers we have. This includes things that have
    * been allocated but are not live; it is a superset of the live list
    */
-  private final ConcurrentMap<ContainerId, RoleInstance> activeContainers =
+  private final ConcurrentMap<ContainerId, RoleInstance> ownedContainers =
     new ConcurrentHashMap<ContainerId, RoleInstance>();
 
   /**
@@ -792,23 +792,49 @@ public class AppState {
   }
 
 
-  public synchronized List<RoleInstance> cloneActiveContainerList() {
-    Collection<RoleInstance> values = activeContainers.values();
+  /**
+   * Clone the list of active (==owned) containers
+   * @return the list of role instances representing all owned containers
+   */
+  public synchronized List<RoleInstance> cloneOwnedContainerList() {
+    Collection<RoleInstance> values = ownedContainers.values();
     return new ArrayList<RoleInstance>(values);
   }
-  
 
-  public int getNumActiveContainers() {
-    return activeContainers.size();
+  /**
+   * Get the number of active (==owned) containers
+   * @return
+   */
+  public int getNumOwnedContainers() {
+    return ownedContainers.size();
   }
   
+  /**
+   * Look up an active container: any container that the AM has, even
+   * if it is not currently running/live
+   */
+  public RoleInstance getOwnedContainer(ContainerId id) {
+    return ownedContainers.get(id);
+  }
 
-  public RoleInstance getActiveContainer(ContainerId id) {
-    return activeContainers.get(id);
+  /**
+   * Remove an owned container
+   * @param id container ID
+   * @return the instance removed
+   */
+  private RoleInstance removeOwnedContainer(ContainerId id) {
+    return ownedContainers.remove(id);
   }
-  
-  private RoleInstance removeActiveContainer(ContainerId id) {
-    return activeContainers.remove(id);
+
+  /**
+   * set/update an owned container
+   * @param id container ID
+   * @param instance
+   * @return
+   */
+  private RoleInstance putOwnedContainer(ContainerId id,
+      RoleInstance instance) {
+    return ownedContainers.put(id, instance);
   }
 
   /**
@@ -885,7 +911,7 @@ public class AppState {
       boolean active) {
     List<RoleInstance> nodes = new ArrayList<RoleInstance>();
     Collection<RoleInstance> allRoleInstances;
-    allRoleInstances = active? activeContainers.values() : liveNodes.values();
+    allRoleInstances = active? ownedContainers.values() : liveNodes.values();
     for (RoleInstance node : allRoleInstances) {
       if (node.roleId == roleId) {
         nodes.add(node);
@@ -943,7 +969,7 @@ public class AppState {
     instance.container = container;
     instance.createTime = now();
     getStartingNodes().put(container.getId(), instance);
-    activeContainers.put(container.getId(), instance);
+    putOwnedContainer(container.getId(), instance);
     roleHistory.onContainerStartSubmitted(container, instance);
   }
 
@@ -960,7 +986,7 @@ public class AppState {
       throws SliderInternalStateException {
     ContainerId id = container.getId();
     //look up the container
-    RoleInstance instance = getActiveContainer(id);
+    RoleInstance instance = getOwnedContainer(id);
     if (instance == null) {
       throw new SliderInternalStateException(
         "No active container with ID " + id);
@@ -1110,7 +1136,7 @@ public class AppState {
   @VisibleForTesting
   public RoleInstance innerOnNodeManagerContainerStarted(ContainerId 
containerId) {
     incStartedCountainerCount();
-    RoleInstance instance = activeContainers.get(containerId);
+    RoleInstance instance = getOwnedContainer(containerId);
     if (instance == null) {
       //serious problem
       throw new YarnRuntimeException("Container not in active containers start 
"+
@@ -1146,7 +1172,7 @@ public class AppState {
    */
   public synchronized void onNodeManagerContainerStartFailed(ContainerId 
containerId,
                                                              Throwable thrown) 
{
-    activeContainers.remove(containerId);
+    removeOwnedContainer(containerId);
     incFailedCountainerCount();
     incStartFailedCountainerCount();
     RoleInstance instance = getStartingNodes().remove(containerId);
@@ -1246,7 +1272,7 @@ public class AppState {
     } else {
       //a container has failed 
       result.containerFailed = true;
-      roleInstance = activeContainers.remove(containerId);
+      roleInstance = removeOwnedContainer(containerId);
       if (roleInstance != null) {
         //it was active, move it to failed 
         incFailedCountainerCount();
@@ -1320,14 +1346,14 @@ public class AppState {
     }
     
     // and the active node list if present
-    removeActiveContainer(containerId);
+    removeOwnedContainer(containerId);
     
     // finally, verify the node doesn't exist any more
     assert !containersBeingReleased.containsKey(
         containerId) : "container still in release queue";
     assert !getLiveNodes().containsKey(
         containerId) : " container still in live nodes";
-    assert getActiveContainer(containerId) ==
+    assert getOwnedContainer(containerId) ==
            null : "Container still in active container list";
 
     return result;
@@ -1623,7 +1649,7 @@ public class AppState {
   public List<AbstractRMOperation> releaseContainer(ContainerId containerId)
       throws SliderInternalStateException {
     List<AbstractRMOperation> operations = new 
ArrayList<AbstractRMOperation>();
-    List<RoleInstance> activeRoleInstances = cloneActiveContainerList();
+    List<RoleInstance> activeRoleInstances = cloneOwnedContainerList();
     for (RoleInstance role : activeRoleInstances) {
       if (role.container.getId().equals(containerId)) {
         containerReleaseSubmitted(role.container);
@@ -1645,7 +1671,7 @@ public class AppState {
    * that can be released.
    */
   private RoleInstance findRoleInstanceOnHost(NodeInstance node, int roleId) {
-    Collection<RoleInstance> targets = cloneActiveContainerList();
+    Collection<RoleInstance> targets = cloneOwnedContainerList();
     String hostname = node.hostname;
     for (RoleInstance ri : targets) {
       if (hostname.equals(RoleHistoryUtils.hostnameOf(ri.container))
@@ -1663,7 +1689,7 @@ public class AppState {
    */
   public synchronized List<AbstractRMOperation> releaseAllContainers() {
 
-    Collection<RoleInstance> targets = cloneActiveContainerList();
+    Collection<RoleInstance> targets = cloneOwnedContainerList();
     log.info("Releasing {} containers", targets.size());
     List<AbstractRMOperation> operations =
       new ArrayList<AbstractRMOperation>(targets.size());
@@ -1817,7 +1843,7 @@ public class AppState {
     instance.container = container;
     instance.createTime = now();
     instance.state = ClusterDescription.STATE_LIVE;
-    activeContainers.put(cid, instance);
+    putOwnedContainer(cid, instance);
     //role history gets told
     roleHistory.onContainerAssigned(container);
     // pretend the container has just had its start actions submitted

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/7e2ce276/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
index a5b36d4..e7384c8 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
@@ -164,18 +164,18 @@ public class ProviderAppState implements 
StateAccessForProviders {
   }
 
   @Override
-  public List<RoleInstance> cloneActiveContainerList() {
-    return appState.cloneActiveContainerList();
+  public List<RoleInstance> cloneOwnedContainerList() {
+    return appState.cloneOwnedContainerList();
   }
 
   @Override
-  public int getNumActiveContainers() {
-    return appState.getNumActiveContainers();
+  public int getNumOwnedContainers() {
+    return appState.getNumOwnedContainers();
   }
 
   @Override
-  public RoleInstance getActiveContainer(ContainerId id) {
-    return appState.getActiveContainer(id);
+  public RoleInstance getOwnedContainer(ContainerId id) {
+    return appState.getOwnedContainer(id);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/7e2ce276/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
index acba8cc..b236dfc 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
@@ -144,20 +144,20 @@ public interface StateAccessForProviders {
    * @return the active containers at the time
    * the call was made
    */
-  List<RoleInstance> cloneActiveContainerList();
+  List<RoleInstance> cloneOwnedContainerList();
 
   /**
    * Get the number of active containers
    * @return the number of active containers the time the call was made
    */
-  int getNumActiveContainers();
+  int getNumOwnedContainers();
 
   /**
    * Get any active container with the given ID
    * @param id container Id
    * @return the active container or null if it is not found
    */
-  RoleInstance getActiveContainer(ContainerId id);
+  RoleInstance getOwnedContainer(ContainerId id);
 
   /**
    * Create a clone of the list of live cluster nodes.

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/7e2ce276/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/ContainerStatsBlock.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/ContainerStatsBlock.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/ContainerStatsBlock.java
index 5645e0e..95f0417 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/ContainerStatsBlock.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/ContainerStatsBlock.java
@@ -96,7 +96,7 @@ public class ContainerStatsBlock extends HtmlBlock {
   protected void render(Block html) {
     // TODO Probably better to just get a copy of this list for us to avoid 
the repeated synchronization?
     // does this change if we have 50 node, 100node, 500 node clusters?
-    final Map<String,RoleInstance> containerInstances = 
getContainerInstances(slider.getAppState().cloneActiveContainerList());
+    final Map<String,RoleInstance> containerInstances = 
getContainerInstances(slider.getAppState().cloneOwnedContainerList());
 
     for (Entry<String,RoleStatus> entry : 
slider.getRoleStatusByName().entrySet()) {
       final String name = entry.getKey();

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/7e2ce276/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
index 90a3ee7..54bdb09 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
@@ -30,7 +30,6 @@ import org.apache.slider.server.appmaster.web.WebAppApi;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.net.URL;
 import java.util.Map;
 import java.util.Map.Entry;
 
@@ -63,7 +62,7 @@ public class IndexBlock extends HtmlBlock {
 
     UL<DIV<Hamlet>> ul = div.ul();
 
-    ul.li("Total number of containers for cluster: " + 
appState.getNumActiveContainers());
+    ul.li("Total number of containers for cluster: " + 
appState.getNumOwnedContainers());
     ul.li("Cluster created: " + 
getInfoAvoidingNulls(StatusKeys.INFO_CREATE_TIME_HUMAN));
     ul.li("Cluster last flexed: " + 
getInfoAvoidingNulls(StatusKeys.INFO_FLEX_TIME_HUMAN));
     ul.li("Cluster running since: " + 
getInfoAvoidingNulls(StatusKeys.INFO_LIVE_TIME_HUMAN));

Reply via email to