You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ji...@apache.org on 2017/09/05 05:10:33 UTC

[09/51] [abbrv] hadoop git commit: YARN-7050. Post cleanup after YARN-6903, removal of org.apache.slider package. Contributed by Jian He

http://git-wip-us.apache.org/repos/asf/hadoop/blob/bf581071/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAAPlacement.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAAPlacement.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAAPlacement.java
deleted file mode 100644
index 395ff22..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAAPlacement.java
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.model.appstate;
-
-import org.apache.hadoop.yarn.api.records.Container;
-import org.apache.hadoop.yarn.api.records.NodeState;
-import org.apache.hadoop.yarn.client.api.AMRMClient;
-import org.apache.hadoop.yarn.client.api.AMRMClient.ContainerRequest;
-import org.apache.slider.api.types.NodeInformation;
-import org.apache.slider.common.tools.SliderUtils;
-import org.apache.slider.providers.PlacementPolicy;
-import org.apache.slider.server.appmaster.model.mock.MockAppState;
-import org.apache.slider.server.appmaster.model.mock.MockFactory;
-import org.apache.slider.server.appmaster.model.mock.MockRoles;
-import org.apache.slider.server.appmaster.model.mock.MockYarnEngine;
-import org.apache.slider.server.appmaster.operations.AbstractRMOperation;
-import org.apache.slider.server.appmaster.state.AppState;
-import org.apache.slider.server.appmaster.state.AppState.NodeUpdatedOutcome;
-import org.apache.slider.server.appmaster.state.AppStateBindingInfo;
-import org.apache.slider.server.appmaster.state.ContainerAssignment;
-import org.apache.slider.server.appmaster.state.NodeInstance;
-import org.apache.slider.server.appmaster.state.RoleInstance;
-import org.apache.slider.server.appmaster.state.RoleStatus;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import static org.apache.slider.api.ResourceKeys.COMPONENT_PLACEMENT_POLICY;
-import static org.apache.slider.server.appmaster.model.mock.MockFactory.AAROLE_2;
-
-/**
- * Test Anti-affine placement.
- */
-public class TestMockAppStateAAPlacement extends BaseMockAppStateAATest
-    implements MockRoles {
-  private static final Logger LOG =
-      LoggerFactory.getLogger(TestMockAppStateAAPlacement.class);
-
-  private static final int NODES = 3;
-
-  /**
-   * The YARN engine has a cluster with very few nodes (3) and lots of
-   * containers, so if AA placement isn't working, there will be affine
-   * placements surfacing.
-   * @return
-   */
-  @Override
-  public MockYarnEngine createYarnEngine() {
-    return new MockYarnEngine(NODES, 8);
-  }
-
-  /**
-   * This is the simplest AA allocation: no labels, so allocate anywhere.
-   * @throws Throwable
-   */
-  //@Test
-  public void testAllocateAANoLabel() throws Throwable {
-    RoleStatus aaRole = getAaRole();
-
-    assertTrue(cloneNodemap().size() > 0);
-
-    // want multiple instances, so there will be iterations
-    aaRole.setDesired(2);
-
-    List<AbstractRMOperation> ops = appState.reviewRequestAndReleaseNodes();
-    AMRMClient.ContainerRequest request = getSingleRequest(ops);
-    assertFalse(request.getRelaxLocality());
-    assertEquals(request.getNodes().size(), engine.getCluster()
-        .getClusterSize());
-    assertNull(request.getRacks());
-    assertNotNull(request.getCapability());
-
-    Container allocated = engine.allocateContainer(request);
-
-    // notify the container ane expect
-    List<ContainerAssignment> assignments = new ArrayList<>();
-    List<AbstractRMOperation> operations = new ArrayList<>();
-    appState.onContainersAllocated(Arrays.asList(allocated), assignments,
-        operations);
-
-    String host = allocated.getNodeId().getHost();
-    NodeInstance hostInstance = cloneNodemap().get(host);
-    assertEquals(1, hostInstance.get(aaRole.getKey()).getStarting());
-    assertFalse(hostInstance.canHost(aaRole.getKey(), ""));
-    assertFalse(hostInstance.canHost(aaRole.getKey(), null));
-
-    // assignment
-    assertEquals(1, assignments.size());
-
-    // verify the release matches the allocation
-    assertEquals(2, operations.size());
-    assertNotNull(getCancel(operations, 0).getCapability().equals(allocated
-            .getResource()));
-
-    // we also expect a new allocation request to have been issued
-
-    ContainerRequest req2 = getRequest(operations, 1);
-    assertEquals(req2.getNodes().size(), engine.getCluster()
-        .getClusterSize() - 1);
-
-    assertFalse(req2.getNodes().contains(host));
-    assertFalse(request.getRelaxLocality());
-
-    // verify the pending couner is down
-    assertEquals(0L, aaRole.getAAPending());
-    Container allocated2 = engine.allocateContainer(req2);
-
-    // placement must be on a different host
-    assertNotEquals(allocated2.getNodeId(), allocated.getNodeId());
-
-    ContainerAssignment assigned = assignments.get(0);
-    Container container = assigned.container;
-    RoleInstance ri = roleInstance(assigned);
-    //tell the app it arrived
-    appState.containerStartSubmitted(container, ri);
-    assertNotNull(appState.onNodeManagerContainerStarted(container.getId()));
-    ops = appState.reviewRequestAndReleaseNodes();
-    assertEquals(0, ops.size());
-    assertAllContainersAA();
-
-    // identify those hosts with an aa role on
-    Map<Integer, String> naming = appState.buildNamingMap();
-    assertEquals(3, naming.size());
-
-    String name = aaRole.getName();
-    assertEquals(name, naming.get(aaRole.getKey()));
-    Map<String, NodeInformation> info =
-        appState.getRoleHistory().getNodeInformationSnapshot(naming);
-    assertTrue(SliderUtils.isNotEmpty(info));
-
-    NodeInformation nodeInformation = info.get(host);
-    assertNotNull(nodeInformation);
-    assertTrue(SliderUtils.isNotEmpty(nodeInformation.entries));
-    assertNotNull(nodeInformation.entries.get(name));
-    assertEquals(1, nodeInformation.entries.get(name).live);
-  }
-
-  //@Test
-  public void testAllocateFlexUp() throws Throwable {
-    RoleStatus aaRole = getAaRole();
-
-    // want multiple instances, so there will be iterations
-    aaRole.setDesired(2);
-    List<AbstractRMOperation> ops = appState.reviewRequestAndReleaseNodes();
-    getSingleRequest(ops);
-    assertEquals(1, aaRole.getRequested());
-    assertEquals(1, aaRole.getAAPending());
-    assertEquals(aaRole.getActualAndRequested() + aaRole
-            .getAAPending(), aaRole.getDesired());
-
-    // now trigger that flex up
-    aaRole.setDesired(3);
-
-    // expect: no new reqests, pending count ++
-    List<AbstractRMOperation> ops2 = appState.reviewRequestAndReleaseNodes();
-    assertTrue(ops2.isEmpty());
-    assertEquals(aaRole.getRunning() + aaRole.getAAPending() +
-            aaRole.getOutstandingAARequestCount(), aaRole.getDesired());
-
-    // 1 outstanding
-    assertEquals(0, aaRole.getRunning());
-    assertTrue(aaRole.isAARequestOutstanding());
-    // and one AA
-    assertEquals(2, aaRole.getAAPending());
-    assertAllContainersAA();
-
-    // next iter
-    assertEquals(1, submitOperations(ops, EMPTY_ID_LIST, ops2).size());
-    assertEquals(2, ops2.size());
-    assertEquals(1, aaRole.getAAPending());
-    assertAllContainersAA();
-
-    assertEquals(0, appState.reviewRequestAndReleaseNodes().size());
-    // now trigger the next execution cycle
-    List<AbstractRMOperation> ops3 = new ArrayList<>();
-    assertEquals(1, submitOperations(ops2, EMPTY_ID_LIST, ops3).size());
-    assertEquals(2, ops3.size());
-    assertEquals(0, aaRole.getAAPending());
-    assertAllContainersAA();
-
-  }
-
-  //@Test
-  public void testAllocateFlexDownDecrementsPending() throws Throwable {
-    RoleStatus aaRole = getAaRole();
-
-    // want multiple instances, so there will be iterations
-    aaRole.setDesired(2);
-    List<AbstractRMOperation> ops = appState.reviewRequestAndReleaseNodes();
-    getSingleRequest(ops);
-    assertEquals(1, aaRole.getAAPending());
-    assertTrue(aaRole.isAARequestOutstanding());
-
-    // flex down so that the next request should be cancelled
-    aaRole.setDesired(1);
-
-    // expect: no new requests, pending count --
-    List<AbstractRMOperation> ops2 = appState.reviewRequestAndReleaseNodes();
-    assertTrue(ops2.isEmpty());
-    assertTrue(aaRole.isAARequestOutstanding());
-    assertEquals(0, aaRole.getAAPending());
-    assertAllContainersAA();
-
-    // next iter
-    submitOperations(ops, EMPTY_ID_LIST, ops2).size();
-    assertEquals(1, ops2.size());
-    assertAllContainersAA();
-  }
-
-  /**
-   * Here flex down while there is only one outstanding request.
-   * The outstanding flex should be cancelled
-   * @throws Throwable
-   */
-  //@Test
-  public void testAllocateFlexDownForcesCancel() throws Throwable {
-    RoleStatus aaRole = getAaRole();
-
-    // want multiple instances, so there will be iterations
-    aaRole.setDesired(1);
-    List<AbstractRMOperation> ops = appState.reviewRequestAndReleaseNodes();
-    getSingleRequest(ops);
-    assertEquals(1, aaRole.getRequested());
-    assertEquals(0, aaRole.getAAPending());
-    assertTrue(aaRole.isAARequestOutstanding());
-
-    // flex down so that the next request should be cancelled
-    aaRole.setDesired(0);
-    // expect: no new requests, pending count --
-    List<AbstractRMOperation> ops2 = appState.reviewRequestAndReleaseNodes();
-    assertEquals(0, aaRole.getRequested());
-    assertEquals(0, aaRole.getAAPending());
-    assertFalse(aaRole.isAARequestOutstanding());
-    assertEquals(1, ops2.size());
-    getSingleCancel(ops2);
-
-    // next iter
-    submitOperations(ops, EMPTY_ID_LIST, ops2).size();
-    getSingleRelease(ops2);
-  }
-
-  void assertAllContainersAA() {
-    assertAllContainersAA(getAaRole().getKey());
-  }
-
-  /**
-   *
-   * @throws Throwable
-   */
-  //@Test
-  public void testAskForTooMany() throws Throwable {
-    RoleStatus aaRole = getAaRole();
-
-    describe("Ask for 1 more than the no of available nodes;" +
-        " expect the final request to be unsatisfied until the cluster " +
-        "changes size");
-    //more than expected
-    aaRole.setDesired(NODES + 1);
-    List<AbstractRMOperation > operations = appState
-        .reviewRequestAndReleaseNodes();
-    assertTrue(aaRole.isAARequestOutstanding());
-    assertEquals(NODES, aaRole.getAAPending());
-    for (int i = 0; i < NODES; i++) {
-      String iter = "Iteration " + i + " role = " + aaRole;
-      LOG.info(iter);
-      List<AbstractRMOperation > operationsOut = new ArrayList<>();
-      assertEquals(1, submitOperations(operations, EMPTY_ID_LIST,
-          operationsOut).size());
-      operations = operationsOut;
-      if (i + 1 < NODES) {
-        assertEquals(2, operations.size());
-      } else {
-        assertEquals(1, operations.size());
-      }
-      assertAllContainersAA();
-    }
-    // expect an outstanding AA request to be unsatisfied
-    assertTrue(aaRole.getRunning() < aaRole.getDesired());
-    assertEquals(0, aaRole.getRequested());
-    assertFalse(aaRole.isAARequestOutstanding());
-    List<Container> allocatedContainers = engine.execute(operations,
-        EMPTY_ID_LIST);
-    assertEquals(0, allocatedContainers.size());
-    // in a review now, no more requests can be generated, as there is no
-    // space for AA placements, even though there is cluster capacity
-    assertEquals(0, appState.reviewRequestAndReleaseNodes().size());
-
-    // now do a node update (this doesn't touch the YARN engine; the node
-    // isn't really there)
-    NodeUpdatedOutcome outcome = addNewNode();
-    assertEquals(cloneNodemap().size(), NODES + 1);
-    assertTrue(outcome.clusterChanged);
-    // no active calls to empty
-    assertTrue(outcome.operations.isEmpty());
-    assertEquals(1, appState.reviewRequestAndReleaseNodes().size());
-  }
-
-  protected AppState.NodeUpdatedOutcome addNewNode() {
-    return updateNodes(MockFactory.INSTANCE.newNodeReport("4", NodeState
-        .RUNNING, "gpu"));
-  }
-
-  //@Test
-  public void testClusterSizeChangesDuringRequestSequence() throws Throwable {
-    RoleStatus aaRole = getAaRole();
-    describe("Change the cluster size where the cluster size changes during " +
-        "a test sequence.");
-    aaRole.setDesired(NODES + 1);
-    appState.reviewRequestAndReleaseNodes();
-    assertTrue(aaRole.isAARequestOutstanding());
-    assertEquals(NODES, aaRole.getAAPending());
-    NodeUpdatedOutcome outcome = addNewNode();
-    assertTrue(outcome.clusterChanged);
-    // one call to cancel
-    assertEquals(1, outcome.operations.size());
-    // and on a review, one more to rebuild
-    assertEquals(1, appState.reviewRequestAndReleaseNodes().size());
-  }
-
-  //@Test
-  public void testBindingInfoMustHaveNodeMap() throws Throwable {
-    AppStateBindingInfo bindingInfo = buildBindingInfo();
-    bindingInfo.nodeReports = null;
-    try {
-      MockAppState state = new MockAppState(bindingInfo);
-      fail("Expected an exception, got " + state);
-    } catch (IllegalArgumentException expected) {
-    }
-  }
-
-  //@Test
-  public void testAMRestart() throws Throwable {
-    int desiredAA = 3;
-    getAaRole().setDesired(desiredAA);
-    List<RoleInstance> instances = createAndStartNodes();
-    List<Container> containers = new ArrayList<>();
-    for (RoleInstance instance : instances) {
-      containers.add(instance.container);
-    }
-
-    // now destroy the app state
-    AppStateBindingInfo bindingInfo = buildBindingInfo();
-    bindingInfo.application = factory.newApplication(0, 0, desiredAA).name(
-        getValidTestName());
-    bindingInfo.application.getComponent(ROLE2)
-        .getConfiguration().setProperty(COMPONENT_PLACEMENT_POLICY,
-        Integer.toString(PlacementPolicy.ANTI_AFFINITY_REQUIRED));
-    bindingInfo.liveContainers = containers;
-    appState = new MockAppState(bindingInfo);
-
-    RoleStatus aaRole = lookupRole(AAROLE_2.name);
-    RoleStatus gpuRole = lookupRole(MockFactory.AAROLE_1_GPU.name);
-    appState.reviewRequestAndReleaseNodes();
-    assertTrue(aaRole.isAntiAffinePlacement());
-    assertTrue(aaRole.isAARequestOutstanding());
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/bf581071/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateContainerFailure.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateContainerFailure.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateContainerFailure.java
deleted file mode 100644
index 41ff0fa..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateContainerFailure.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.model.appstate;
-
-import org.apache.hadoop.yarn.api.records.ContainerId;
-import org.apache.slider.api.ResourceKeys;
-import org.apache.slider.api.resource.Application;
-import org.apache.slider.core.exceptions.SliderException;
-import org.apache.slider.core.exceptions.TriggerClusterTeardownException;
-import org.apache.slider.server.appmaster.actions.ResetFailureWindow;
-import org.apache.slider.server.appmaster.model.mock.BaseMockAppStateTest;
-import org.apache.slider.server.appmaster.model.mock.MockAM;
-import org.apache.slider.server.appmaster.model.mock.MockAppState;
-import org.apache.slider.server.appmaster.model.mock.MockRMOperationHandler;
-import org.apache.slider.server.appmaster.model.mock.MockRoles;
-import org.apache.slider.server.appmaster.model.mock.MockYarnEngine;
-import org.apache.slider.server.appmaster.state.AppState;
-import org.apache.slider.server.appmaster.state.AppStateBindingInfo;
-import org.apache.slider.server.appmaster.state.ContainerOutcome;
-import org.apache.slider.server.appmaster.state.NodeEntry;
-import org.apache.slider.server.appmaster.state.NodeInstance;
-import org.apache.slider.server.appmaster.state.RoleHistory;
-import org.apache.slider.server.appmaster.state.RoleInstance;
-import org.apache.slider.server.appmaster.state.RoleStatus;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-
-/**
- * Test that if you have >1 role, the right roles are chosen for release.
- */
-public class TestMockAppStateContainerFailure extends BaseMockAppStateTest
-    implements MockRoles {
-  private static final Logger LOG =
-      LoggerFactory.getLogger(TestMockAppStateContainerFailure.class);
-
-  private MockRMOperationHandler operationHandler = new
-      MockRMOperationHandler();
-  private MockAM mockAM = new MockAM();
-
-  @Override
-  public String getTestName() {
-    return "TestMockAppStateContainerFailure";
-  }
-
-  /**
-   * Small cluster with multiple containers per node,
-   * to guarantee many container allocations on each node.
-   * @return
-   */
-  @Override
-  public MockYarnEngine createYarnEngine() {
-    return new MockYarnEngine(4, 8000);
-  }
-
-  @Override
-  public Application buildApplication() {
-    Application application = super.buildApplication();
-    application.getConfiguration().setProperty(
-        ResourceKeys.CONTAINER_FAILURE_THRESHOLD, "10");
-    return application;
-  }
-
-  //@Test
-  public void testShortLivedFail() throws Throwable {
-
-    getRole0Status().setDesired(1);
-    List<RoleInstance> instances = createAndStartNodes();
-    assertEquals(1, instances.size());
-
-    RoleInstance instance = instances.get(0);
-    long created = instance.createTime;
-    long started = instance.startTime;
-    assertTrue(created > 0);
-    assertTrue(started >= created);
-    List<ContainerId> ids = extractContainerIds(instances, ROLE0);
-
-    ContainerId cid = ids.get(0);
-    assertTrue(appState.isShortLived(instance));
-    AppState.NodeCompletionResult result = appState.onCompletedContainer(
-        containerStatus(cid, 1));
-    assertNotNull(result.roleInstance);
-    assertTrue(result.containerFailed);
-    RoleStatus status = getRole0Status();
-    assertEquals(1, status.getFailed());
-//    assertEquals(1, status.getStartFailed());
-
-    //view the world
-    appState.getRoleHistory().dump();
-    List<NodeInstance> queue = appState.getRoleHistory().cloneRecentNodeList(
-        getRole0Status().getKey());
-    assertEquals(0, queue.size());
-
-  }
-
-  //@Test
-  public void testLongLivedFail() throws Throwable {
-
-    getRole0Status().setDesired(1);
-    List<RoleInstance> instances = createAndStartNodes();
-    assertEquals(1, instances.size());
-
-    RoleInstance instance = instances.get(0);
-    instance.startTime = System.currentTimeMillis() - 60 * 60 * 1000;
-    assertFalse(appState.isShortLived(instance));
-    List<ContainerId> ids = extractContainerIds(instances, ROLE0);
-
-    ContainerId cid = ids.get(0);
-    AppState.NodeCompletionResult result = appState.onCompletedContainer(
-        containerStatus(cid, 1));
-    assertNotNull(result.roleInstance);
-    assertTrue(result.containerFailed);
-    RoleStatus status = getRole0Status();
-    assertEquals(1, status.getFailed());
-//    assertEquals(0, status.getStartFailed());
-
-    //view the world
-    appState.getRoleHistory().dump();
-    List<NodeInstance> queue = appState.getRoleHistory().cloneRecentNodeList(
-        getRole0Status().getKey());
-    assertEquals(1, queue.size());
-
-  }
-
-  //@Test
-  public void testNodeStartFailure() throws Throwable {
-
-    getRole0Status().setDesired(1);
-    List<RoleInstance> instances = createAndSubmitNodes();
-    assertEquals(1, instances.size());
-
-    RoleInstance instance = instances.get(0);
-
-    List<ContainerId> ids = extractContainerIds(instances, ROLE0);
-
-    ContainerId cid = ids.get(0);
-    appState.onNodeManagerContainerStartFailed(cid, new SliderException(
-        "oops"));
-    RoleStatus status = getRole0Status();
-    assertEquals(1, status.getFailed());
-//    assertEquals(1, status.getStartFailed());
-
-
-    RoleHistory history = appState.getRoleHistory();
-    history.dump();
-    List<NodeInstance> queue = history.cloneRecentNodeList(getRole0Status()
-        .getKey());
-    assertEquals(0, queue.size());
-
-    NodeInstance ni = history.getOrCreateNodeInstance(instance.container);
-    NodeEntry re = ni.get(getRole0Status().getKey());
-    assertEquals(1, re.getFailed());
-    assertEquals(1, re.getStartFailed());
-  }
-
-  //@Test
-  public void testRecurrentStartupFailure() throws Throwable {
-
-    getRole0Status().setDesired(1);
-    try {
-      for (int i = 0; i< 100; i++) {
-        List<RoleInstance> instances = createAndSubmitNodes();
-        assertEquals(1, instances.size());
-
-        List<ContainerId> ids = extractContainerIds(instances, ROLE0);
-
-        ContainerId cid = ids.get(0);
-        LOG.info("{} instance {} {}", i, instances.get(0), cid);
-        assertNotNull(cid);
-        appState.onNodeManagerContainerStartFailed(cid,
-            new SliderException("failure #" + i));
-        AppState.NodeCompletionResult result = appState.onCompletedContainer(
-            containerStatus(cid));
-        assertTrue(result.containerFailed);
-      }
-      fail("Cluster did not fail from too many startup failures");
-    } catch (TriggerClusterTeardownException teardown) {
-      LOG.info("Exception {} : {}", teardown.getExitCode(), teardown);
-    }
-  }
-
-  //@Test
-  public void testRecurrentStartupFailureWithUnlimitedFailures() throws
-      Throwable {
-    // Update instance definition to allow containers to fail any number of
-    // times
-    AppStateBindingInfo bindingInfo = buildBindingInfo();
-    bindingInfo.application.getComponent(ROLE0).getConfiguration().setProperty(
-        ResourceKeys.CONTAINER_FAILURE_THRESHOLD, "0");
-    appState = new MockAppState(bindingInfo);
-
-    getRole0Status().setDesired(1);
-    try {
-      for (int i = 0; i < 100; i++) {
-        List<RoleInstance> instances = createAndSubmitNodes();
-        assertEquals(1, instances.size());
-
-        List<ContainerId> ids = extractContainerIds(instances, ROLE0);
-
-        ContainerId cid = ids.get(0);
-        LOG.info("{} instance {} {}", i, instances.get(0), cid);
-        assertNotNull(cid);
-        appState.onNodeManagerContainerStartFailed(cid,
-            new SliderException("failure #" + i));
-        AppState.NodeCompletionResult result = appState.onCompletedContainer(
-            containerStatus(cid));
-        assertTrue(result.containerFailed);
-      }
-    } catch (TriggerClusterTeardownException teardown) {
-      LOG.info("Exception {} : {}", teardown.getExitCode(), teardown);
-      fail("Cluster failed despite " + ResourceKeys
-          .CONTAINER_FAILURE_THRESHOLD + " = 0");
-    }
-  }
-
-  //@Test
-  public void testRoleStatusFailureWindow() throws Throwable {
-
-    ResetFailureWindow resetter = new ResetFailureWindow(operationHandler);
-
-    // initial reset
-    resetter.execute(mockAM, null, appState);
-
-    getRole0Status().setDesired(1);
-    for (int i = 0; i < 100; i++) {
-      resetter.execute(mockAM, null, appState);
-      List<RoleInstance> instances = createAndSubmitNodes();
-      assertEquals(1, instances.size());
-
-      List<ContainerId> ids = extractContainerIds(instances, ROLE0);
-
-      ContainerId cid = ids.get(0);
-      LOG.info("{} instance {} {}", i, instances.get(0), cid);
-      assertNotNull(cid);
-      appState.onNodeManagerContainerStartFailed(
-          cid,
-          new SliderException("failure #" + i));
-      AppState.NodeCompletionResult result = appState.onCompletedContainer(
-          containerStatus(cid));
-      assertTrue(result.containerFailed);
-    }
-  }
-
-  //@Test
-  public void testRoleStatusFailed() throws Throwable {
-    RoleStatus status = getRole0Status();
-    // limits exceeded
-    appState.incFailedContainers(status, ContainerOutcome.Failed);
-    assertEquals(1, status.getFailed());
-    assertEquals(1L, status.getFailedRecently());
-    assertEquals(0L, status.getLimitsExceeded());
-    assertEquals(0L, status.getPreempted());
-    assertEquals(0L, status.getDiskFailed());
-
-    ResetFailureWindow resetter = new ResetFailureWindow(operationHandler);
-    resetter.execute(mockAM, null, appState);
-    assertEquals(1, status.getFailed());
-    assertEquals(0L, status.getFailedRecently());
-  }
-
-  //@Test
-  public void testRoleStatusFailedLimitsExceeded() throws Throwable {
-    RoleStatus status = getRole0Status();
-    // limits exceeded
-    appState.incFailedContainers(status, ContainerOutcome
-        .Failed_limits_exceeded);
-    assertEquals(1, status.getFailed());
-    assertEquals(1L, status.getFailedRecently());
-    assertEquals(1L, status.getLimitsExceeded());
-    assertEquals(0L, status.getPreempted());
-    assertEquals(0L, status.getDiskFailed());
-
-    ResetFailureWindow resetter = new ResetFailureWindow(operationHandler);
-    resetter.execute(mockAM, null, appState);
-    assertEquals(1, status.getFailed());
-    assertEquals(0L, status.getFailedRecently());
-    assertEquals(1L, status.getLimitsExceeded());
-  }
-
-
-  //@Test
-  public void testRoleStatusFailedPrempted() throws Throwable {
-    RoleStatus status = getRole0Status();
-    // limits exceeded
-    appState.incFailedContainers(status, ContainerOutcome.Preempted);
-    assertEquals(0, status.getFailed());
-    assertEquals(1L, status.getPreempted());
-    assertEquals(0L, status.getFailedRecently());
-    assertEquals(0L, status.getDiskFailed());
-
-    ResetFailureWindow resetter = new ResetFailureWindow(operationHandler);
-    resetter.execute(mockAM, null, appState);
-    assertEquals(1L, status.getPreempted());
-  }
-
-
-  //@Test
-  public void testRoleStatusFailedNode() throws Throwable {
-    RoleStatus status = getRole0Status();
-    // limits exceeded
-    appState.incFailedContainers(status, ContainerOutcome.Disk_failure);
-    assertEquals(1, status.getFailed());
-    assertEquals(0L, status.getFailedRecently());
-    assertEquals(0L, status.getLimitsExceeded());
-    assertEquals(0L, status.getPreempted());
-    assertEquals(1L, status.getDiskFailed());
-  }
-
-  //@Test
-  public void testNodeEntryCompleted() throws Throwable {
-    NodeEntry nodeEntry = new NodeEntry(1);
-    nodeEntry.containerCompleted(true, ContainerOutcome.Completed);
-    assertEquals(0, nodeEntry.getFailed());
-    assertEquals(0, nodeEntry.getFailedRecently());
-    assertEquals(0, nodeEntry.getStartFailed());
-    assertEquals(0, nodeEntry.getPreempted());
-    assertEquals(0, nodeEntry.getActive());
-    assertTrue(nodeEntry.isAvailable());
-  }
-
-  //@Test
-  public void testNodeEntryFailed() throws Throwable {
-    NodeEntry nodeEntry = new NodeEntry(1);
-    nodeEntry.containerCompleted(false, ContainerOutcome.Failed);
-    assertEquals(1, nodeEntry.getFailed());
-    assertEquals(1, nodeEntry.getFailedRecently());
-    assertEquals(0, nodeEntry.getStartFailed());
-    assertEquals(0, nodeEntry.getPreempted());
-    assertEquals(0, nodeEntry.getActive());
-    assertTrue(nodeEntry.isAvailable());
-    nodeEntry.resetFailedRecently();
-    assertEquals(1, nodeEntry.getFailed());
-    assertEquals(0, nodeEntry.getFailedRecently());
-  }
-
-  //@Test
-  public void testNodeEntryLimitsExceeded() throws Throwable {
-    NodeEntry nodeEntry = new NodeEntry(1);
-    nodeEntry.containerCompleted(false, ContainerOutcome
-        .Failed_limits_exceeded);
-    assertEquals(0, nodeEntry.getFailed());
-    assertEquals(0, nodeEntry.getFailedRecently());
-    assertEquals(0, nodeEntry.getStartFailed());
-    assertEquals(0, nodeEntry.getPreempted());
-  }
-
-  //@Test
-  public void testNodeEntryPreempted() throws Throwable {
-    NodeEntry nodeEntry = new NodeEntry(1);
-    nodeEntry.containerCompleted(false, ContainerOutcome.Preempted);
-    assertEquals(0, nodeEntry.getFailed());
-    assertEquals(0, nodeEntry.getFailedRecently());
-    assertEquals(0, nodeEntry.getStartFailed());
-    assertEquals(1, nodeEntry.getPreempted());
-  }
-
-  //@Test
-  public void testNodeEntryNodeFailure() throws Throwable {
-    NodeEntry nodeEntry = new NodeEntry(1);
-    nodeEntry.containerCompleted(false, ContainerOutcome.Disk_failure);
-    assertEquals(1, nodeEntry.getFailed());
-    assertEquals(1, nodeEntry.getFailedRecently());
-    assertEquals(0, nodeEntry.getStartFailed());
-    assertEquals(0, nodeEntry.getPreempted());
-  }
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/bf581071/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDependencies.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDependencies.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDependencies.java
deleted file mode 100644
index cbef2be..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDependencies.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.slider.server.appmaster.model.appstate;
-
-import org.apache.hadoop.yarn.api.records.Container;
-import org.apache.hadoop.yarn.service.compinstance.ComponentInstance;
-import org.apache.slider.api.types.ApplicationLivenessInformation;
-import org.apache.slider.server.appmaster.model.mock.BaseMockAppStateTest;
-import org.apache.slider.server.appmaster.model.mock.MockRoles;
-import org.apache.slider.server.appmaster.operations.AbstractRMOperation;
-import org.apache.slider.server.appmaster.state.ContainerAssignment;
-import org.apache.slider.server.appmaster.state.RoleInstance;
-import org.apache.slider.server.appmaster.state.RoleStatus;
-import org.apache.slider.server.servicemonitor.ProbeStatus;
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Test for postponing container requests until dependencies are ready.
- */
-public class TestMockAppStateDependencies extends BaseMockAppStateTest
-    implements MockRoles {
-
-  private org.apache.slider.server.servicemonitor.Probe successProbe =
-      new org.apache.slider.server.servicemonitor.Probe("success", null) {
-        @Override
-        public ProbeStatus ping(ComponentInstance roleInstance) {
-          ProbeStatus status = new ProbeStatus();
-          status.succeed(this);
-          return status;
-        }
-      };
-
-  private org.apache.slider.server.servicemonitor.Probe failureProbe =
-      new org.apache.slider.server.servicemonitor.Probe("failure", null) {
-        @Override
-        public ProbeStatus ping(ComponentInstance roleInstance) {
-          ProbeStatus status = new ProbeStatus();
-          status.fail(this, new Exception());
-          return status;
-        }
-      };
-
-  @Override
-  public String getTestName() {
-    return "TestMockAppStateDependencies";
-  }
-
-  //@Test
-  public void testDependencies() throws Throwable {
-    RoleStatus role0Status = getRole0Status();
-    RoleStatus role1Status = getRole1Status();
-
-    // set desired instances for role0 to 1
-    role0Status.setDesired(1);
-    // set probe for role0 to use a ping that will always succeed
-    role0Status.getProviderRole().probe = successProbe;
-
-    // set desired instances for role1 to 1
-    role1Status.setDesired(1);
-    // set role0 as a dependency of role1
-    role1Status.getProviderRole().component.setDependencies(Collections
-        .singletonList(ROLE0));
-
-    // role0 has no dependencies, so its dependencies are ready
-    assertTrue(appState.areDependenciesReady(role0Status));
-    // role1 dependency (role0) is not ready yet
-    assertFalse(appState.areDependenciesReady(role1Status));
-    // start the single requested instance for role0
-    review(ROLE0, 2);
-
-    // role0 is still not ready because a ping has not been issued
-    assertFalse(appState.areDependenciesReady(role1Status));
-    // issue pings
-    appState.monitorComponentInstances();
-    // now role0 is ready
-    assertTrue(appState.areDependenciesReady(role1Status));
-    // increase the desired containers for role0
-    role0Status.setDesired(2);
-    // role0 is no longer ready
-    assertFalse(appState.areDependenciesReady(role1Status));
-    // start a second instance for role0
-    review(ROLE0, 2);
-
-    // role0 is not ready because ping has not been issued for the new instance
-    assertFalse(appState.areDependenciesReady(role1Status));
-    // issue pings
-    appState.monitorComponentInstances();
-    // role0 is ready
-    assertTrue(appState.areDependenciesReady(role1Status));
-
-    // set probe for role0 to use a ping that will always fail
-    role0Status.getProviderRole().probe = failureProbe;
-    // issue pings
-    appState.monitorComponentInstances();
-    // role0 is not ready (failure probe works)
-    assertFalse(appState.areDependenciesReady(role1Status));
-    // set probe for role0 to use a ping that will always succeed
-    role0Status.getProviderRole().probe = successProbe;
-    // issue pings
-    appState.monitorComponentInstances();
-    // role0 is ready
-    assertTrue(appState.areDependenciesReady(role1Status));
-
-    // now role1 instances can be started
-    review(ROLE1, 1);
-  }
-
-  public void review(String expectedRole, int outstanding) throws Exception {
-    List<AbstractRMOperation> ops = appState.reviewRequestAndReleaseNodes();
-
-    // expect one request in the list
-    assertEquals(1, ops.size());
-    // and in a liveness check, expected outstanding
-    ApplicationLivenessInformation liveness =
-        appState.getApplicationLivenessInformation();
-    assertEquals(outstanding, liveness.requestsOutstanding);
-    assertFalse(liveness.allRequestsSatisfied);
-
-    // record container allocated and verify it has the expected role
-    List<Container> allocations = engine.execute(ops);
-    List<ContainerAssignment> assignments = new ArrayList<>();
-    List<AbstractRMOperation> releases = new ArrayList<>();
-    appState.onContainersAllocated(allocations, assignments, releases);
-    assertEquals(1, assignments.size());
-    ContainerAssignment assigned = assignments.get(0);
-    Container target = assigned.container;
-    RoleInstance ri = roleInstance(assigned);
-    assertEquals(expectedRole, ri.role);
-
-    // one fewer request outstanding
-    liveness = appState.getApplicationLivenessInformation();
-    assertEquals(outstanding - 1, liveness.requestsOutstanding);
-
-    // record container start submitted
-    appState.containerStartSubmitted(target, ri);
-
-    // additional review results in no additional requests
-    ops = appState.reviewRequestAndReleaseNodes();
-    assertTrue(ops.isEmpty());
-
-    // record container start
-    appState.innerOnNodeManagerContainerStarted(target.getId());
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/bf581071/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDynamicHistory.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDynamicHistory.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDynamicHistory.java
deleted file mode 100644
index 76f3f37..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDynamicHistory.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.model.appstate;
-
-import org.apache.hadoop.yarn.api.records.ContainerId;
-import org.apache.hadoop.yarn.client.api.AMRMClient.ContainerRequest;
-import org.apache.slider.api.ResourceKeys;
-import org.apache.slider.api.resource.Application;
-import org.apache.slider.api.resource.Component;
-import org.apache.slider.common.tools.SliderUtils;
-import org.apache.slider.core.exceptions.BadConfigException;
-import org.apache.slider.providers.PlacementPolicy;
-import org.apache.slider.providers.ProviderRole;
-import org.apache.slider.server.appmaster.model.mock.BaseMockAppStateTest;
-import org.apache.slider.server.appmaster.model.mock.MockRoleHistory;
-import org.apache.slider.server.appmaster.model.mock.MockRoles;
-import org.apache.slider.server.appmaster.model.mock.MockYarnEngine;
-import org.apache.slider.server.appmaster.operations.AbstractRMOperation;
-import org.apache.slider.server.appmaster.operations.ContainerRequestOperation;
-import org.apache.slider.server.appmaster.state.AppState;
-import org.apache.slider.server.appmaster.state.NodeEntry;
-import org.apache.slider.server.appmaster.state.NodeInstance;
-import org.apache.slider.server.appmaster.state.RoleHistory;
-import org.apache.slider.server.appmaster.state.RoleInstance;
-import org.apache.slider.server.appmaster.state.RoleStatus;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Test that if you have >1 role, the right roles are chosen for release.
- */
-public class TestMockAppStateDynamicHistory extends BaseMockAppStateTest
-    implements MockRoles {
-  private static final Logger LOG =
-      LoggerFactory.getLogger(TestMockAppStateDynamicHistory.class);
-
-  /**
-   * Small cluster with multiple containers per node,
-   * to guarantee many container allocations on each node.
-   * @return
-   */
-  @Override
-  public MockYarnEngine createYarnEngine() {
-    return new MockYarnEngine(8, 1);
-  }
-
-  // TODO does not support adding new components dynamically
-  public void testDynamicRoleHistory() throws Throwable {
-
-    String dynamic = "dynamicRole";
-    long desired = 1;
-    int placementPolicy = PlacementPolicy.DEFAULT;
-    // snapshot and patch existing spec
-    Application application = appState.getClusterStatus();
-    Component component = new Component().name(dynamic).numberOfContainers(
-        desired);
-    component.getConfiguration().setProperty(ResourceKeys
-        .COMPONENT_PLACEMENT_POLICY, "" + placementPolicy);
-    application.getComponents().add(component);
-
-    appState.updateComponents(
-        Collections.singletonMap(dynamic, desired));
-
-    // now look at the role map
-    assertNotNull(appState.getRoleMap().get(dynamic));
-    ProviderRole mappedRole = appState.getRoleMap().get(dynamic);
-    int rolePriority = mappedRole.id;
-
-    Map<Integer, ProviderRole> priorityMap = appState.getRolePriorityMap();
-    assertEquals(priorityMap.size(), 4);
-    ProviderRole dynamicProviderRole = priorityMap.get(rolePriority);
-    assertNotNull(dynamicProviderRole);
-    assertEquals(dynamicProviderRole.id, rolePriority);
-
-    assertNotNull(appState.getRoleStatusMap().get(rolePriority));
-    RoleStatus dynamicRoleStatus =
-        appState.getRoleStatusMap().get(rolePriority);
-    assertEquals(dynamicRoleStatus.getDesired(), desired);
-
-
-    // before allocating the nodes, fill up the capacity of some of the
-    // hosts
-    engine.getAllocator().nextIndex();
-
-    int targetNode = 2;
-    assertEquals(targetNode, engine.getAllocator().nextIndex());
-    String targetHostname = engine.getCluster().nodeAt(targetNode)
-        .getHostname();
-
-    // clock is set to a small value
-    appState.setTime(100000);
-
-    // allocate the nodes
-    List<AbstractRMOperation> actions = appState.reviewRequestAndReleaseNodes();
-    assertEquals(1, actions.size());
-    ContainerRequestOperation action0 = (ContainerRequestOperation)actions
-        .get(0);
-
-    ContainerRequest request = action0.getRequest();
-    assertTrue(SliderUtils.isEmpty(request.getNodes()));
-
-    List<ContainerId> released = new ArrayList<>();
-    List<RoleInstance> allocations = submitOperations(actions, released);
-    processSubmissionOperations(allocations, new ArrayList<>(), released);
-    assertEquals(1, allocations.size());
-    RoleInstance ri = allocations.get(0);
-
-    assertEquals(ri.role, dynamic);
-    assertEquals(ri.roleId, rolePriority);
-    assertEquals(ri.host, targetHostname);
-
-    // now look at the role history
-
-    RoleHistory roleHistory = appState.getRoleHistory();
-    List<NodeInstance> activeNodes = roleHistory.listActiveNodes(
-        rolePriority);
-    assertEquals(activeNodes.size(), 1);
-    NodeInstance activeNode = activeNodes.get(0);
-    assertNotNull(activeNode.get(rolePriority));
-    NodeEntry entry8 = activeNode.get(rolePriority);
-    assertEquals(entry8.getActive(), 1);
-
-    assertEquals(activeNode.hostname, targetHostname);
-
-    NodeInstance activeNodeInstance =
-        roleHistory.getOrCreateNodeInstance(ri.container);
-
-    assertEquals(activeNode, activeNodeInstance);
-    NodeEntry entry = activeNodeInstance.get(rolePriority);
-    assertNotNull(entry);
-    assertTrue(entry.getActive() > 0);
-    assertTrue(entry.getLive() > 0);
-
-
-    // now trigger a termination event on that role
-
-    // increment time for a long-lived failure event
-    appState.incTime(100000);
-
-    LOG.debug("Triggering failure");
-    ContainerId cid = ri.getContainerId();
-    AppState.NodeCompletionResult result = appState.onCompletedContainer(
-        containerStatus(cid, 1));
-    assertEquals(result.roleInstance, ri);
-    assertTrue(result.containerFailed);
-
-    roleHistory.dump();
-    // values should have changed
-    assertEquals(1, entry.getFailed());
-    assertEquals(0, entry.getStartFailed());
-    assertEquals(0, entry.getActive());
-    assertEquals(0, entry.getLive());
-
-
-    List<NodeInstance> nodesForRoleId =
-        roleHistory.getRecentNodesForRoleId(rolePriority);
-    assertNotNull(nodesForRoleId);
-
-    // make sure new nodes will default to a different host in the engine
-    assertTrue(targetNode < engine.getAllocator().nextIndex());
-
-    actions = appState.reviewRequestAndReleaseNodes();
-    assertEquals(1, actions.size());
-    ContainerRequestOperation action1 = (ContainerRequestOperation) actions
-        .get(0);
-    ContainerRequest request1 = action1.getRequest();
-    assertTrue(SliderUtils.isNotEmpty(request1.getNodes()));
-  }
-
-  //@Test(expected = BadConfigException.class)
-  public void testRoleHistoryRoleAdditions() throws Throwable {
-    MockRoleHistory roleHistory = new MockRoleHistory(new ArrayList<>());
-    roleHistory.addNewRole(new RoleStatus(new ProviderRole("one", 1)));
-    roleHistory.addNewRole(new RoleStatus(new ProviderRole("two", 1)));
-    roleHistory.dump();
-  }
-
-  //@Test(expected = BadConfigException.class)
-  public void testRoleHistoryRoleStartupConflict() throws Throwable {
-    MockRoleHistory roleHistory = new MockRoleHistory(Arrays.asList(
-        new ProviderRole("one", 1), new ProviderRole("two", 1)
-    ));
-    roleHistory.dump();
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/bf581071/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDynamicRoles.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDynamicRoles.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDynamicRoles.java
deleted file mode 100644
index 5669d2d..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateDynamicRoles.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.model.appstate;
-
-import org.apache.slider.api.ResourceKeys;
-import org.apache.slider.api.resource.Application;
-import org.apache.slider.api.resource.Component;
-import org.apache.slider.providers.PlacementPolicy;
-import org.apache.slider.server.appmaster.model.mock.BaseMockAppStateTest;
-import org.apache.slider.server.appmaster.model.mock.MockRoles;
-import org.apache.slider.server.appmaster.model.mock.MockYarnEngine;
-import org.apache.slider.server.appmaster.operations.AbstractRMOperation;
-import org.apache.slider.server.appmaster.operations.ContainerRequestOperation;
-import org.apache.slider.server.appmaster.state.AppState.NodeCompletionResult;
-import org.apache.slider.server.appmaster.state.ContainerPriority;
-import org.apache.slider.server.appmaster.state.RoleHistoryUtils;
-import org.apache.slider.server.appmaster.state.RoleInstance;
-import org.apache.slider.server.appmaster.state.RoleStatus;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.apache.slider.server.appmaster.model.mock.MockFactory.NODE_FAILURE_THRESHOLD;
-
-/**
- * Test that if you have >1 role, the right roles are chosen for release.
- */
-public class TestMockAppStateDynamicRoles extends BaseMockAppStateTest
-    implements MockRoles {
-  private static final Logger LOG =
-      LoggerFactory.getLogger(TestMockAppStateDynamicRoles.class);
-  private static final String ROLE4 = "4";
-  private static final String ROLE5 = "5";
-
-  @Override
-  public String getTestName() {
-    return "TestMockAppStateDynamicRoles";
-  }
-
-  /**
-   * Small cluster with multiple containers per node,
-   * to guarantee many container allocations on each node.
-   * @return
-   */
-  @Override
-  public MockYarnEngine createYarnEngine() {
-    return new MockYarnEngine(8, 2);
-  }
-
-  @Override
-  public Application buildApplication() {
-    Application application = super.buildApplication();
-
-    Component component = new Component().name(ROLE4).numberOfContainers(1L);
-    component.getConfiguration().setProperty(ResourceKeys
-        .NODE_FAILURE_THRESHOLD, Integer.toString(3));
-    application.getComponents().add(component);
-
-    component = new Component().name(ROLE5).numberOfContainers(1L);
-    component.getConfiguration().setProperty(ResourceKeys
-        .COMPONENT_PLACEMENT_POLICY, Integer.toString(PlacementPolicy.STRICT));
-    application.getComponents().add(component);
-
-    return application;
-  }
-
-  //@Test
-  public void testAllocateReleaseRealloc() throws Throwable {
-
-    createAndStartNodes();
-    appState.reviewRequestAndReleaseNodes();
-    appState.getRoleHistory().dump();
-  }
-
-  /**
-   * Find all allocations for a specific role.
-   * @param role role Id/priority
-   * @param actions source list
-   * @return found list
-   */
-  List<ContainerRequestOperation> findAllocationsForRole(int role,
-      List<AbstractRMOperation> actions) {
-    List<ContainerRequestOperation> ops = new ArrayList<>();
-    for (AbstractRMOperation op : actions) {
-      if (op instanceof ContainerRequestOperation && role ==
-          ContainerPriority.extractRole(((ContainerRequestOperation) op)
-              .getRequest().getPriority())) {
-        ops.add((ContainerRequestOperation) op);
-      }
-    }
-    return ops;
-  }
-
-  //@Test
-  public void testStrictPlacementInitialRequest() throws Throwable {
-    LOG.info("Initial engine state = {}", engine);
-    List<AbstractRMOperation> actions = appState.reviewRequestAndReleaseNodes();
-    assertEquals(2, actions.size());
-
-    // neither have locality at this point
-    assertRelaxLocalityFlag(appState.lookupRoleStatus(ROLE4).getKey(), null,
-        true, actions);
-    assertRelaxLocalityFlag(appState.lookupRoleStatus(ROLE5).getKey(), null,
-        true, actions);
-  }
-
-  //@Test
-  public void testPolicyPropagation() throws Throwable {
-    assertEquals(0, (appState.lookupRoleStatus(ROLE4).getPlacementPolicy() &
-        PlacementPolicy.STRICT));
-    assertNotEquals(0, (appState.lookupRoleStatus(ROLE5).getPlacementPolicy() &
-        PlacementPolicy.STRICT));
-
-  }
-
-  //@Test
-  public void testNodeFailureThresholdPropagation() throws Throwable {
-    assertEquals(3, appState.lookupRoleStatus(ROLE4).getNodeFailureThreshold());
-    assertEquals(NODE_FAILURE_THRESHOLD, appState.lookupRoleStatus(ROLE5)
-        .getNodeFailureThreshold());
-  }
-
-  //@Test
-  public void testLaxPlacementSecondRequestRole4() throws Throwable {
-    LOG.info("Initial engine state = {}", engine);
-    RoleStatus role4 = appState.lookupRoleStatus(ROLE4);
-    RoleStatus role5 = appState.lookupRoleStatus(ROLE5);
-    role4.setDesired(1);
-    role5.setDesired(0);
-
-    List<RoleInstance> instances = createStartAndStopNodes(new ArrayList<>());
-    assertEquals(1, instances.size());
-
-    int id = appState.lookupRoleStatus(ROLE4).getKey();
-    RoleInstance instanceA = null;
-    for (RoleInstance instance : instances) {
-      if (instance.roleId == id) {
-        instanceA = instance;
-      }
-    }
-    assertNotNull(instanceA);
-    String hostname = RoleHistoryUtils.hostnameOf(instanceA.container);
-
-    LOG.info("Allocated engine state = {}", engine);
-    assertEquals(1, engine.containerCount());
-
-    assertEquals(1, role4.getRunning());
-    // shrinking cluster
-
-    role4.setDesired(0);
-    appState.lookupRoleStatus(ROLE4).setDesired(0);
-    List<NodeCompletionResult> completionResults = new ArrayList<>();
-    createStartAndStopNodes(completionResults);
-    assertEquals(0, engine.containerCount());
-    assertEquals(1, completionResults.size());
-
-    // expanding: expect hostnames  now
-    role4.setDesired(1);
-    List<AbstractRMOperation> actions = appState.reviewRequestAndReleaseNodes();
-    assertEquals(1, actions.size());
-
-    ContainerRequestOperation cro = (ContainerRequestOperation) actions.get(0);
-    List<String> nodes = cro.getRequest().getNodes();
-    assertEquals(1, nodes.size());
-    assertEquals(hostname, nodes.get(0));
-  }
-
-  //@Test
-  public void testStrictPlacementSecondRequestRole5() throws Throwable {
-    LOG.info("Initial engine state = {}", engine);
-    RoleStatus role4 = appState.lookupRoleStatus(ROLE4);
-    RoleStatus role5 = appState.lookupRoleStatus(ROLE5);
-    role4.setDesired(0);
-    role5.setDesired(1);
-
-    List<RoleInstance> instances = createStartAndStopNodes(new ArrayList<>());
-    assertEquals(1, instances.size());
-
-    int id = appState.lookupRoleStatus(ROLE5).getKey();
-    RoleInstance instanceA = null;
-    for (RoleInstance instance : instances) {
-      if (instance.roleId == id) {
-        instanceA = instance;
-      }
-    }
-    assertNotNull(instanceA);
-    String hostname = RoleHistoryUtils.hostnameOf(instanceA.container);
-
-    LOG.info("Allocated engine state = {}", engine);
-    assertEquals(1, engine.containerCount());
-
-    assertEquals(1, role5.getRunning());
-
-    // shrinking cluster
-    role5.setDesired(0);
-    List<NodeCompletionResult> completionResults = new ArrayList<>();
-    createStartAndStopNodes(completionResults);
-    assertEquals(0, engine.containerCount());
-    assertEquals(1, completionResults.size());
-    assertEquals(0, role5.getRunning());
-
-    role5.setDesired(1);
-    List<AbstractRMOperation> actions = appState.reviewRequestAndReleaseNodes();
-    assertEquals(1, actions.size());
-    assertRelaxLocalityFlag(id, "", false, actions);
-    ContainerRequestOperation cro = (ContainerRequestOperation) actions.get(0);
-    List<String> nodes = cro.getRequest().getNodes();
-    assertEquals(1, nodes.size());
-    assertEquals(hostname, nodes.get(0));
-  }
-
-  public void assertRelaxLocalityFlag(
-      int role,
-      String expectedHost,
-      boolean expectedRelaxFlag,
-      List<AbstractRMOperation> actions) {
-    List<ContainerRequestOperation> requests = findAllocationsForRole(
-        role, actions);
-    assertEquals(1, requests.size());
-    ContainerRequestOperation req = requests.get(0);
-    assertEquals(expectedRelaxFlag, req.getRequest().getRelaxLocality());
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/bf581071/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateFlexDynamicRoles.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateFlexDynamicRoles.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateFlexDynamicRoles.java
deleted file mode 100644
index 3304da1..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateFlexDynamicRoles.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.model.appstate;
-
-import org.apache.hadoop.fs.Path;
-import org.apache.slider.api.resource.Application;
-import org.apache.slider.api.resource.Component;
-import org.apache.slider.core.exceptions.SliderInternalStateException;
-import org.apache.slider.core.exceptions.TriggerClusterTeardownException;
-import org.apache.slider.server.appmaster.model.mock.BaseMockAppStateTest;
-import org.apache.slider.server.appmaster.model.mock.MockAppState;
-import org.apache.slider.server.appmaster.model.mock.MockRoles;
-import org.apache.slider.server.appmaster.model.mock.MockYarnEngine;
-import org.apache.slider.server.appmaster.state.AppStateBindingInfo;
-import org.apache.slider.server.appmaster.state.MostRecentContainerReleaseSelector;
-import org.apache.slider.server.appmaster.state.RoleHistory;
-import org.apache.slider.server.avro.LoadedRoleHistory;
-import org.apache.slider.server.avro.RoleHistoryWriter;
-import org.junit.Before;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-
-/**
- * Test that if you have more than one role, the right roles are chosen for
- * release.
- */
-public class TestMockAppStateFlexDynamicRoles extends BaseMockAppStateTest
-    implements MockRoles {
-  private static final Logger LOG =
-      LoggerFactory.getLogger(TestMockAppStateFlexDynamicRoles.class);
-
-  @Override
-  public String getTestName() {
-    return "TestMockAppStateFlexDynamicRoles";
-  }
-
-  /**
-   * Small cluster with multiple containers per node,
-   * to guarantee many container allocations on each node.
-   * @return
-   */
-  @Override
-  public MockYarnEngine createYarnEngine() {
-    return new MockYarnEngine(4, 4);
-  }
-
-  @Override
-  public AppStateBindingInfo buildBindingInfo() throws IOException {
-    AppStateBindingInfo bindingInfo = super.buildBindingInfo();
-    bindingInfo.releaseSelector = new MostRecentContainerReleaseSelector();
-    return bindingInfo;
-  }
-
-  @Override
-  public Application buildApplication() {
-    Application application = super.buildApplication();
-    Component component = new Component().name("dynamic-6")
-        .numberOfContainers(1L);
-    application.getComponents().add(component);
-
-    return application;
-  }
-
-  @Before
-  public void init()
-      throws TriggerClusterTeardownException, SliderInternalStateException {
-    createAndStartNodes();
-  }
-
-  // TODO does not support adding new components dynamically
-  public void testDynamicFlexAddRole() throws Throwable {
-    Application application = appState.getClusterStatus();
-    Component component = new Component().name("dynamicAdd7")
-        .numberOfContainers(1L);
-    application.getComponents().add(component);
-    appState.updateComponents(Collections.singletonMap(component.getName(),
-        component.getNumberOfContainers()));
-    createAndStartNodes();
-    appState.lookupRoleStatus("dynamicAdd7");
-  }
-
-  //@Test
-  public void testDynamicFlexDropRole() throws Throwable {
-    appState.updateComponents(Collections.singletonMap("dynamic-6", 0L));
-    //status is retained for future
-    appState.lookupRoleStatus("dynamic-6");
-  }
-
-
-  //@Test
-  public void testHistorySaveFlexLoad() throws Throwable {
-    Application application = appState.getClusterStatus();
-    RoleHistory roleHistory = appState.getRoleHistory();
-    Path history = roleHistory.saveHistory(0x0001);
-    RoleHistoryWriter historyWriter = new RoleHistoryWriter();
-    Component component = new Component().name("HistorySaveFlexLoad")
-        .numberOfContainers(1L);
-    application.getComponents().add(component);
-
-    appState.updateComponents(Collections.singletonMap(component.getName(),
-        component.getNumberOfContainers()));
-    createAndStartNodes();
-    LoadedRoleHistory loadedRoleHistory =
-        historyWriter.read(fs, history);
-    assertEquals(0, appState.getRoleHistory().rebuild(loadedRoleHistory));
-  }
-
-  //@Test
-  public void testHistoryFlexSaveResetLoad() throws Throwable {
-    Application application = appState.getClusterStatus();
-    Component component = new Component().name("HistoryFlexSaveLoad")
-        .numberOfContainers(1L);
-    application.getComponents().add(component);
-
-    appState.updateComponents(Collections.singletonMap(component.getName(),
-        component.getNumberOfContainers()));
-    createAndStartNodes();
-    RoleHistoryWriter historyWriter = new RoleHistoryWriter();
-    RoleHistory roleHistory = appState.getRoleHistory();
-    Path history = roleHistory.saveHistory(0x0002);
-    //now reset the app state
-    File historyWorkDir2 = new File("target/history" + getTestName() +
-        "-0002");
-    Path historyPath2 = new Path(historyWorkDir2.toURI());
-    appState = new MockAppState();
-    AppStateBindingInfo binding2 = buildBindingInfo();
-    binding2.application = factory.newApplication(0, 0, 0)
-        .name(getValidTestName());
-    binding2.historyPath = historyPath2;
-    appState.buildInstance(binding2);
-    // on this read there won't be the right number of roles
-    LoadedRoleHistory loadedRoleHistory = historyWriter.read(fs, history);
-    assertEquals(0, appState.getRoleHistory().rebuild(loadedRoleHistory));
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/bf581071/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateFlexing.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateFlexing.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateFlexing.java
deleted file mode 100644
index dbad599..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateFlexing.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.slider.server.appmaster.model.appstate;
-
-import org.apache.hadoop.yarn.api.records.Container;
-import org.apache.slider.api.resource.Application;
-import org.apache.slider.api.types.ApplicationLivenessInformation;
-import org.apache.slider.core.exceptions.TriggerClusterTeardownException;
-import org.apache.slider.server.appmaster.model.mock.BaseMockAppStateTest;
-import org.apache.slider.server.appmaster.model.mock.MockRoles;
-import org.apache.slider.server.appmaster.operations.AbstractRMOperation;
-import org.apache.slider.server.appmaster.operations.CancelSingleRequest;
-import org.apache.slider.server.appmaster.state.AppState;
-import org.apache.slider.server.appmaster.state.ContainerAssignment;
-import org.apache.slider.server.appmaster.state.RoleInstance;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Test app state flexing.
- */
-public class TestMockAppStateFlexing extends BaseMockAppStateTest implements
-    MockRoles {
-  private static final Logger LOG =
-      LoggerFactory.getLogger(BaseMockAppStateTest.class);
-
-  @Override
-  public String getTestName() {
-    return "TestMockAppStateFlexing";
-  }
-
-  //@Test
-  public void testFlexDuringLaunchPhase() throws Throwable {
-
-    // ask for one instance of role0
-    getRole0Status().setDesired(1);
-
-    List<AbstractRMOperation> ops = appState.reviewRequestAndReleaseNodes();
-
-    // at this point there's now one request in the list
-    assertEquals(1, ops.size());
-    // and in a liveness check, one outstanding
-    ApplicationLivenessInformation liveness =
-        appState.getApplicationLivenessInformation();
-    assertEquals(1, liveness.requestsOutstanding);
-    assertFalse(liveness.allRequestsSatisfied);
-
-    List<Container> allocations = engine.execute(ops);
-    List<ContainerAssignment> assignments = new ArrayList<>();
-    List<AbstractRMOperation> releases = new ArrayList<>();
-    appState.onContainersAllocated(allocations, assignments, releases);
-    assertEquals(1, assignments.size());
-    ContainerAssignment assigned = assignments.get(0);
-    Container target = assigned.container;
-    RoleInstance ri = roleInstance(assigned);
-
-    ops = appState.reviewRequestAndReleaseNodes();
-    assertTrue(ops.isEmpty());
-
-    liveness = appState.getApplicationLivenessInformation();
-    assertEquals(0, liveness.requestsOutstanding);
-    assertTrue(liveness.allRequestsSatisfied);
-
-    //now this is the start point.
-    appState.containerStartSubmitted(target, ri);
-
-    ops = appState.reviewRequestAndReleaseNodes();
-    assertTrue(ops.isEmpty());
-
-    appState.innerOnNodeManagerContainerStarted(target.getId());
-  }
-
-  //@Test
-  public void testFlexBeforeAllocationPhase() throws Throwable {
-    getRole0Status().setDesired(1);
-
-    List<AbstractRMOperation> ops = appState.reviewRequestAndReleaseNodes();
-    assertFalse(ops.isEmpty());
-
-    // second scan will find the first run outstanding, so not re-issue
-    // any more container requests
-    List<AbstractRMOperation> ops2 = appState.reviewRequestAndReleaseNodes();
-    assertTrue(ops2.isEmpty());
-
-    // and in a liveness check, one outstanding
-    ApplicationLivenessInformation liveness = appState
-        .getApplicationLivenessInformation();
-    assertEquals(1, liveness.requestsOutstanding);
-    assertFalse(liveness.allRequestsSatisfied);
-
-    appState.refreshClusterStatus();
-    Application application = appState.getClusterStatus();
-    // TODO cluster status returns liveness info
-//    assertEquals(1, cd.liveness.requestsOutstanding);
-
-  }
-
-
-  //@Test
-  public void testFlexDownTwice() throws Throwable {
-    int r0 = 6;
-    int r1 = 0;
-    int r2 = 0;
-    getRole0Status().setDesired(r0);
-    getRole1Status().setDesired(r1);
-    getRole2Status().setDesired(r2);
-    List<RoleInstance> instances = createAndStartNodes();
-
-    int clusterSize = r0 + r1 + r2;
-    assertEquals(instances.size(), clusterSize);
-    LOG.info("shrinking cluster");
-    r0 = 4;
-    getRole0Status().setDesired(r0);
-    List<AppState.NodeCompletionResult> completionResults = new ArrayList<>();
-    instances = createStartAndStopNodes(completionResults);
-    assertEquals(0, instances.size());
-    // assert two nodes were released
-    assertEquals(2, completionResults.size());
-
-    // no-op review
-    completionResults = new ArrayList<>();
-    instances = createStartAndStopNodes(completionResults);
-    assertEquals(0, instances.size());
-    // assert two nodes were released
-    assertEquals(0, completionResults.size());
-
-
-    // now shrink again
-    getRole0Status().setDesired(1);
-    completionResults = new ArrayList<>();
-    instances = createStartAndStopNodes(completionResults);
-    assertEquals(0, instances.size());
-    // assert two nodes were released
-    assertEquals(3, completionResults.size());
-
-  }
-
-  //@Test
-  public void testFlexNegative() throws Throwable {
-    int r0 = 6;
-    int r1 = 0;
-    int r2 = 0;
-    getRole0Status().setDesired(r0);
-    getRole1Status().setDesired(r1);
-    getRole2Status().setDesired(r2);
-    List<RoleInstance> instances = createAndStartNodes();
-
-    int clusterSize = r0 + r1 + r2;
-    assertEquals(instances.size(), clusterSize);
-    LOG.info("shrinking cluster");
-    getRole0Status().setDesired(-2);
-    List<AppState.NodeCompletionResult> completionResults = new ArrayList<>();
-    try {
-      createStartAndStopNodes(completionResults);
-      fail("expected an exception");
-    } catch (TriggerClusterTeardownException e) {
-    }
-
-  }
-
-  //@Test
-  public void testCancelWithRequestsOutstanding() throws Throwable {
-    // flex cluster size before the original set were allocated
-
-
-    getRole0Status().setDesired(6);
-    // build the ops
-    List<AbstractRMOperation> ops = appState.reviewRequestAndReleaseNodes();
-    // here the data structures exist
-
-    // go down
-    getRole0Status().setDesired(3);
-    List<AbstractRMOperation> ops2 = appState.reviewRequestAndReleaseNodes();
-    assertEquals(3, ops2.size());
-    for (AbstractRMOperation op : ops2) {
-      assertTrue(op instanceof CancelSingleRequest);
-    }
-
-  }
-
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org