http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/BaseMockAppStateTest.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/mock/BaseMockAppStateTest.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/mock/BaseMockAppStateTest.java
deleted file mode 100644
index 9632265..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/mock/BaseMockAppStateTest.java
+++ /dev/null
@@ -1,539 +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.mock;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.yarn.api.records.Container;
-import org.apache.hadoop.yarn.api.records.ContainerId;
-import org.apache.hadoop.yarn.api.records.ContainerState;
-import org.apache.hadoop.yarn.api.records.ContainerStatus;
-import org.apache.hadoop.yarn.api.records.NodeReport;
-import org.apache.hadoop.yarn.client.api.AMRMClient;
-import org.apache.hadoop.yarn.conf.YarnConfiguration;
-import org.apache.slider.api.resource.Application;
-import org.apache.slider.common.tools.SliderFileSystem;
-import org.apache.slider.common.tools.SliderUtils;
-import org.apache.slider.core.exceptions.BadClusterStateException;
-import org.apache.slider.core.exceptions.BadConfigException;
-import org.apache.slider.core.exceptions.SliderInternalStateException;
-import org.apache.slider.core.exceptions.TriggerClusterTeardownException;
-import org.apache.slider.core.main.LauncherExitCodes;
-import org.apache.slider.server.appmaster.operations.AbstractRMOperation;
-import org.apache.slider.server.appmaster.operations.CancelSingleRequest;
-import org.apache.slider.server.appmaster.operations.ContainerReleaseOperation;
-import org.apache.slider.server.appmaster.operations.ContainerRequestOperation;
-import org.apache.slider.server.appmaster.state.AppState;
-import org.apache.slider.server.appmaster.state.AppStateBindingInfo;
-import org.apache.slider.server.appmaster.state.ContainerAssignment;
-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.NodeMap;
-import org.apache.slider.server.appmaster.state.ProviderAppState;
-import org.apache.slider.server.appmaster.state.RoleInstance;
-import org.apache.slider.server.appmaster.state.RoleStatus;
-import org.apache.slider.server.appmaster.state.StateAccessForProviders;
-import org.apache.hadoop.yarn.service.utils.ServiceApiUtil;
-import org.apache.slider.utils.SliderTestBase;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map.Entry;
-
-/**
- * Base for app state tests.
- */
-public abstract class BaseMockAppStateTest extends SliderTestBase implements
-    MockRoles {
-  private static final Logger LOG =
-      LoggerFactory.getLogger(BaseMockAppStateTest.class);
-  protected static final List<ContainerId> EMPTY_ID_LIST = Collections
-      .emptyList();
-
-  protected final MockFactory factory = MockFactory.INSTANCE;
-  protected MockAppState appState;
-  protected MockYarnEngine engine;
-  protected FileSystem fs;
-  protected SliderFileSystem sliderFileSystem;
-  protected File historyWorkDir;
-  protected Path historyPath;
-  protected MockApplicationId applicationId;
-  protected MockApplicationAttemptId applicationAttemptId;
-  protected StateAccessForProviders stateAccess;
-
-  /**
-   * Override point: called in setup() to create the YARN engine; can
-   * be changed for different sizes and options.
-   * @return
-   */
-  public MockYarnEngine createYarnEngine() {
-    return new MockYarnEngine(8, 8);
-  }
-
-  @Override
-  public void setup() throws Exception {
-    super.setup();
-    YarnConfiguration conf = SliderUtils.createConfiguration();
-    fs = FileSystem.get(new URI("file:///"), conf);
-    sliderFileSystem = new SliderFileSystem(fs, conf);
-    engine = createYarnEngine();
-    initApp();
-  }
-
-  /**
-   * Initialize the application.
-   * This uses the binding information supplied by {@link #buildBindingInfo()}.
-   */
-  protected void initApp()
-      throws IOException, BadConfigException, BadClusterStateException {
-    String historyDirName = getTestName();
-    applicationId = new MockApplicationId(1, 0);
-    applicationAttemptId = new MockApplicationAttemptId(applicationId, 1);
-
-    historyWorkDir = new File("target/history", historyDirName);
-    historyPath = new Path(historyWorkDir.toURI());
-    fs.delete(historyPath, true);
-    appState = new MockAppState(buildBindingInfo());
-    stateAccess = new ProviderAppState(getValidTestName(), appState);
-  }
-
-  /**
-   * Build the binding info from the default constructor values,
-   * the roles from {@link #factory}, and an instance definition.
-   * from {@link #buildApplication()} ()}
-   * @return
-   */
-  protected AppStateBindingInfo buildBindingInfo() throws IOException {
-    AppStateBindingInfo binding = new AppStateBindingInfo();
-    binding.application = buildApplication();
-    ServiceApiUtil.validateAndResolveApplication(binding.application,
-        sliderFileSystem, SliderUtils.createConfiguration());
-    //binding.roles = new ArrayList<>(factory.ROLES);
-    binding.fs = fs;
-    binding.historyPath = historyPath;
-    binding.nodeReports = engine.getNodeReports();
-    return binding;
-  }
-
-  /**
-   * Override point, define the instance definition.
-   * @return the instance definition
-   */
-  public Application buildApplication() {
-    return factory.newApplication(0, 0, 0).name(getValidTestName());
-  }
-
-  /**
-   * Get the test name ... defaults to method name
-   * @return the method name
-   */
-  public String getTestName() {
-    return methodName.getMethodName();
-  }
-
-  public String getValidTestName() {
-    return getTestName().toLowerCase(Locale.ENGLISH);
-  }
-
-  public RoleStatus getRole0Status() {
-    return lookupRole(ROLE0);
-  }
-
-  public RoleStatus lookupRole(String role) {
-    return appState.lookupRoleStatus(role);
-  }
-
-  public RoleStatus getRole1Status() {
-    return lookupRole(ROLE1);
-  }
-
-  public RoleStatus getRole2Status() {
-    return lookupRole(ROLE2);
-  }
-
-  /**
-   * Build a role instance from a container assignment.
-   * @param assigned
-   * @return the instance
-   */
-  public RoleInstance roleInstance(ContainerAssignment assigned) {
-    Container target = assigned.container;
-    RoleInstance failedInstance =
-        assigned.role.getProviderRole().failedInstances.poll();
-    RoleInstance ri;
-    if (failedInstance != null) {
-      ri = new RoleInstance(target, failedInstance);
-    } else {
-      ri = new RoleInstance(target, assigned.role.getProviderRole());
-    }
-    ri.roleId = assigned.role.getPriority();
-    ri.role = assigned.role.getName();
-    return ri;
-  }
-
-  public NodeInstance nodeInstance(long age, int live0, int live1, int live2) {
-    NodeInstance ni = new NodeInstance(String.format("age%d-[%d,%d,%d]", age,
-        live0, live1, live2), MockFactory.ROLE_COUNT);
-    ni.getOrCreate(getRole0Status().getKey()).setLastUsed(age);
-    ni.getOrCreate(getRole0Status().getKey()).setLive(live0);
-    if (live1 > 0) {
-      ni.getOrCreate(getRole1Status().getKey()).setLive(live1);
-    }
-    if (live2 > 0) {
-      ni.getOrCreate(getRole2Status().getKey()).setLive(live2);
-    }
-    return ni;
-  }
-
-  /**
-   * Create a container status event.
-   * @param c container
-   * @return a status
-   */
-  ContainerStatus containerStatus(Container c) {
-    return containerStatus(c.getId());
-  }
-
-  /**
-   * Create a container status instance for the given ID, declaring
-   * that it was shut down by the application itself.
-   * @param cid container Id
-   * @return the instance
-   */
-  public ContainerStatus containerStatus(ContainerId cid) {
-    ContainerStatus status = containerStatus(cid,
-        LauncherExitCodes.EXIT_CLIENT_INITIATED_SHUTDOWN);
-    return status;
-  }
-
-  public ContainerStatus containerStatus(ContainerId cid, int exitCode) {
-    ContainerStatus status = ContainerStatus.newInstance(
-        cid,
-        ContainerState.COMPLETE,
-        "",
-        exitCode);
-    return status;
-  }
-
-  /**
-   * Create nodes and bring them to the started state.
-   * @return a list of roles
-   */
-  protected List<RoleInstance> createAndStartNodes()
-      throws TriggerClusterTeardownException, SliderInternalStateException {
-    return createStartAndStopNodes(new ArrayList<>());
-  }
-
-  /**
-   * Create, Start and stop nodes.
-   * @param completionResults List filled in with the status on all completed
-   *                          nodes
-   * @return the nodes
-   */
-  public List<RoleInstance> createStartAndStopNodes(
-      List<AppState.NodeCompletionResult> completionResults)
-      throws TriggerClusterTeardownException, SliderInternalStateException {
-    List<ContainerId> released = new ArrayList<>();
-    List<RoleInstance> instances = createAndSubmitNodes(released);
-    processSubmissionOperations(instances, completionResults, released);
-    return instances;
-  }
-
-  /**
-   * Process the start/stop operations.
-   * @param instances
-   * @param completionResults
-   * @param released
-   */
-  public void processSubmissionOperations(
-      List<RoleInstance> instances,
-      List<AppState.NodeCompletionResult> completionResults,
-      List<ContainerId> released) {
-    for (RoleInstance instance : instances) {
-      LOG.debug("Started {} on {}", instance.role, instance.id);
-      assertNotNull(appState.onNodeManagerContainerStarted(instance
-          .getContainerId()));
-    }
-    releaseContainers(completionResults,
-        released,
-        ContainerState.COMPLETE,
-        "released",
-        0
-    );
-  }
-
-  /**
-   * Release a list of containers, updating the completion results.
-   * @param completionResults
-   * @param containerIds
-   * @param containerState
-   * @param exitText
-   * @param containerExitCode
-   * @return
-   */
-  public void releaseContainers(
-      List<AppState.NodeCompletionResult> completionResults,
-      List<ContainerId> containerIds,
-      ContainerState containerState,
-      String exitText,
-      int containerExitCode) {
-    for (ContainerId id : containerIds) {
-      ContainerStatus status = ContainerStatus.newInstance(id,
-          containerState,
-          exitText,
-          containerExitCode);
-      completionResults.add(appState.onCompletedContainer(status));
-    }
-  }
-
-  /**
-   * Create nodes and submit them.
-   * @return a list of roles
-   */
-  public List<RoleInstance> createAndSubmitNodes()
-      throws TriggerClusterTeardownException, SliderInternalStateException {
-    return createAndSubmitNodes(new ArrayList<>());
-  }
-
-  /**
-   * Create nodes and submit them.
-   * @return a list of roles
-   */
-  public List<RoleInstance> createAndSubmitNodes(List<ContainerId> 
containerIds)
-      throws TriggerClusterTeardownException, SliderInternalStateException {
-    return createAndSubmitNodes(containerIds, new ArrayList<>());
-  }
-
-  /**
-   * Create nodes and submit them.
-   * @return a list of roles allocated
-   */
-  public List<RoleInstance> createAndSubmitNodes(
-      List<ContainerId> containerIds,
-      List<AbstractRMOperation> operationsOut)
-      throws TriggerClusterTeardownException, SliderInternalStateException {
-    List<AbstractRMOperation> ops = appState.reviewRequestAndReleaseNodes();
-    return submitOperations(ops, containerIds, operationsOut);
-  }
-
-  public List<RoleInstance> submitOperations(
-      List<AbstractRMOperation> operationsIn,
-      List<ContainerId> released) {
-    return submitOperations(operationsIn, released, new ArrayList<>());
-  }
-
-  /**
-   * Process the RM operations and send <code>onContainersAllocated</code>
-   * events to the app state.
-   * @param operationsIn list of incoming ops
-   * @param released released containers
-   * @return list of outbound operations
-   */
-  public List<RoleInstance> submitOperations(
-      List<AbstractRMOperation> operationsIn,
-      List<ContainerId> released,
-      List<AbstractRMOperation> operationsOut) {
-    List<Container> allocatedContainers = engine.execute(operationsIn,
-        released);
-    List<ContainerAssignment> assignments = new ArrayList<>();
-    appState.onContainersAllocated(allocatedContainers, assignments,
-        operationsOut);
-
-    List<RoleInstance> roles = new ArrayList<>();
-    for (ContainerAssignment assigned : assignments) {
-      Container container = assigned.container;
-      RoleInstance ri = roleInstance(assigned);
-      //tell the app it arrived
-      LOG.debug("Start submitted {} on ${}", ri.role, container.getId());
-      appState.containerStartSubmitted(container, ri);
-      roles.add(ri);
-    }
-    return roles;
-  }
-
-  /**
-   * Add the AM to the app state.
-   */
-  protected void addAppMastertoAppState() {
-//    appState.buildAppMasterNode(
-//        new MockContainerId(applicationAttemptId, 999999L),
-//        "appmaster",
-//        0,
-//        null);
-  }
-
-  /**
-   * Extract the list of container IDs from the list of role instances.
-   * @param instances instance list
-   * @param role role to look up
-   * @return the list of CIDs
-   */
-  public List<ContainerId> extractContainerIds(
-      List<RoleInstance> instances,
-      String role) {
-    List<ContainerId> ids = new ArrayList<>();
-    for (RoleInstance ri : instances) {
-      if (ri.role.equals(role)) {
-        ids.add(ri.getContainerId());
-      }
-    }
-    return ids;
-  }
-
-  /**
-   * Record a node as failing.
-   * @param node
-   * @param id
-   * @param count
-   * @return the entry
-   */
-  public NodeEntry recordAsFailed(NodeInstance node, int id, int count) {
-    NodeEntry entry = node.getOrCreate(id);
-    for (int i = 1; i <= count; i++) {
-      entry.containerCompleted(
-          false,
-          ContainerOutcome.Failed);
-    }
-    return entry;
-  }
-
-  protected void recordAllFailed(int id, int count, List<NodeInstance> nodes) {
-    for (NodeInstance node : nodes) {
-      recordAsFailed(node, id, count);
-    }
-  }
-
-  /**
-   * Get the container request of an indexed entry. Includes some assertions
-   * for better diagnostics
-   * @param ops operation list
-   * @param index index in the list
-   * @return the request.
-   */
-  public AMRMClient.ContainerRequest getRequest(List<AbstractRMOperation> ops,
-      int index) {
-    assertTrue(index < ops.size());
-    AbstractRMOperation op = ops.get(index);
-    assertTrue(op instanceof ContainerRequestOperation);
-    return ((ContainerRequestOperation) op).getRequest();
-  }
-
-  /**
-   * Get the cancel request of an indexed entry. Includes some assertions for
-   * better diagnostics
-   * @param ops operation list
-   * @param index index in the list
-   * @return the request.
-   */
-  public AMRMClient.ContainerRequest getCancel(List<AbstractRMOperation> ops,
-      int index) {
-    assertTrue(index < ops.size());
-    AbstractRMOperation op = ops.get(index);
-    assertTrue(op instanceof CancelSingleRequest);
-    return ((CancelSingleRequest) op).getRequest();
-  }
-
-  /**
-   * Get the single request of a list of operations; includes the check for
-   * the size.
-   * @param ops operations list of size 1
-   * @return the request within the first ContainerRequestOperation
-   */
-  public AMRMClient.ContainerRequest getSingleRequest(
-      List<AbstractRMOperation> ops) {
-    assertEquals(1, ops.size());
-    return getRequest(ops, 0);
-  }
-
-  /**
-   * Get the single request of a list of operations; includes the check for
-   * the size.
-   * @param ops operations list of size 1
-   * @return the request within the first operation
-   */
-  public AMRMClient.ContainerRequest getSingleCancel(
-      List<AbstractRMOperation> ops) {
-    assertEquals(1, ops.size());
-    return getCancel(ops, 0);
-  }
-
-  /**
-   * Get the single release of a list of operations; includes the check for
-   * the size.
-   * @param ops operations list of size 1
-   * @return the request within the first operation
-   */
-  public ContainerReleaseOperation getSingleRelease(
-      List<AbstractRMOperation> ops) {
-    assertEquals(1, ops.size());
-    AbstractRMOperation op = ops.get(0);
-    assertTrue(op instanceof ContainerReleaseOperation);
-    return (ContainerReleaseOperation) op;
-  }
-
-  /**
-   * Get the node information as a large JSON String.
-   * @return
-   */
-  protected String nodeInformationSnapshotAsString()
-      throws UnsupportedEncodingException, JsonProcessingException {
-    return prettyPrintAsJson(stateAccess.getNodeInformationSnapshot());
-  }
-
-  /**
-   * Scan through all containers and assert that the assignment is AA.
-   * @param index role index
-   */
-  protected void assertAllContainersAA(int index) {
-    for (Entry<String, NodeInstance> nodeMapEntry : cloneNodemap().entrySet()) 
{
-      String name = nodeMapEntry.getKey();
-      NodeInstance ni = nodeMapEntry.getValue();
-      NodeEntry nodeEntry = ni.get(index);
-      assertTrue("too many instances on node " + name, nodeEntry == null ||
-          nodeEntry.isAntiAffinityConstraintHeld());
-    }
-  }
-
-  /**
-   * Get a snapshot of the nodemap of the application state.
-   * @return a cloned nodemap
-   */
-  protected NodeMap cloneNodemap() {
-    return appState.getRoleHistory().cloneNodemap();
-  }
-
-  /**
-   * Issue a nodes updated event.
-   * @param report report to notify
-   * @return response of AM
-   */
-  protected AppState.NodeUpdatedOutcome updateNodes(NodeReport report) {
-    return appState.onNodesUpdated(Collections.singletonList(report));
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockAM.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/mock/MockAM.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/mock/MockAM.java
deleted file mode 100644
index 66ae0f9..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/mock/MockAM.java
+++ /dev/null
@@ -1,26 +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.mock;
-
-import org.apache.slider.server.appmaster.SliderAppMaster;
-
-/**
- * Mock AM.
- */
-public class MockAM extends SliderAppMaster {
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockAppState.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/mock/MockAppState.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/mock/MockAppState.java
deleted file mode 100644
index 2fcf054..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/mock/MockAppState.java
+++ /dev/null
@@ -1,82 +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.mock;
-
-import org.apache.slider.core.exceptions.BadClusterStateException;
-import org.apache.slider.core.exceptions.BadConfigException;
-import org.apache.slider.providers.ProviderRole;
-import org.apache.slider.server.appmaster.management.MetricsAndMonitoring;
-import org.apache.slider.server.appmaster.state.AbstractClusterServices;
-import org.apache.slider.server.appmaster.state.AppState;
-import org.apache.slider.server.appmaster.state.AppStateBindingInfo;
-
-import java.io.IOException;
-import java.util.Map;
-
-/**
- * Extended app state that makes more things public.
- */
-public class MockAppState extends AppState {
-  public static final int RM_MAX_RAM = 4096;
-  public static final int RM_MAX_CORES = 64;
-
-  private long time = -1;
-
-  public MockAppState(AbstractClusterServices recordFactory) {
-    super(recordFactory, new MetricsAndMonitoring());
-    setContainerLimits(1, RM_MAX_RAM, 1, RM_MAX_CORES);
-  }
-
-  /**
-   * Instance with a mock record factory.
-   */
-  public MockAppState() {
-    this(new MockClusterServices());
-  }
-
-  public MockAppState(AppStateBindingInfo bindingInfo)
-      throws BadClusterStateException, IOException, BadConfigException {
-    this();
-    buildInstance(bindingInfo);
-  }
-
-  public Map<String, ProviderRole> getRoleMap() {
-    return super.getRoleMap();
-  }
-
-  /**
-   * Current time. if the <code>time</code> field
-   * is set, that value is returned
-   * @return the current time.
-   */
-  protected long now() {
-    if (time > 0) {
-      return time;
-    }
-    return System.currentTimeMillis();
-  }
-
-  public void setTime(long newTime) {
-    this.time = newTime;
-  }
-
-  public void incTime(long inc) {
-    this.time = this.time + inc;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockApplicationAttemptId.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/mock/MockApplicationAttemptId.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/mock/MockApplicationAttemptId.java
deleted file mode 100644
index b509625..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/mock/MockApplicationAttemptId.java
+++ /dev/null
@@ -1,61 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
-import org.apache.hadoop.yarn.api.records.ApplicationId;
-
-class MockApplicationAttemptId extends ApplicationAttemptId {
-
-  private ApplicationId applicationId;
-  private int attemptId;
-
-  public MockApplicationAttemptId() {
-  }
-
-  public MockApplicationAttemptId(ApplicationId applicationId, int attemptId) {
-    this.applicationId = applicationId;
-    this.attemptId = attemptId;
-  }
-
-  @Override
-  public ApplicationId getApplicationId() {
-    return applicationId;
-  }
-
-  @Override
-  public void setApplicationId(ApplicationId applicationId) {
-    this.applicationId = applicationId;
-  }
-
-  @Override
-  public int getAttemptId() {
-    return attemptId;
-  }
-
-  @Override
-  public void setAttemptId(int attemptId) {
-    this.attemptId = attemptId;
-  }
-
-  @Override
-  protected void build() {
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockApplicationId.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/mock/MockApplicationId.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/mock/MockApplicationId.java
deleted file mode 100644
index 01da470..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/mock/MockApplicationId.java
+++ /dev/null
@@ -1,67 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.ApplicationId;
-
-/**
- * Mock app id.
- */
-public class MockApplicationId extends ApplicationId {
-
-  private int id;
-  private long clusterTimestamp;
-
-  public MockApplicationId() {
-  }
-
-  public MockApplicationId(int id) {
-    this.id = id;
-  }
-
-  public MockApplicationId(int id, long clusterTimestamp) {
-    this.id = id;
-    this.clusterTimestamp = clusterTimestamp;
-  }
-
-  @Override
-  public int getId() {
-    return id;
-  }
-
-  @Override
-  public void setId(int id) {
-    this.id = id;
-  }
-
-  @Override
-  public long getClusterTimestamp() {
-    return clusterTimestamp;
-  }
-
-  @Override
-  public void setClusterTimestamp(long clusterTimestamp) {
-    this.clusterTimestamp = clusterTimestamp;
-  }
-
-  @Override
-  public void build() {
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockClusterServices.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/mock/MockClusterServices.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/mock/MockClusterServices.java
deleted file mode 100644
index 2578595..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/mock/MockClusterServices.java
+++ /dev/null
@@ -1,38 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.Resource;
-import org.apache.slider.server.appmaster.state.AbstractClusterServices;
-
-/**
- * Mock cluster services.
- */
-public class MockClusterServices extends AbstractClusterServices {
-
-  @Override
-  public Resource newResource() {
-    return new MockResource(0, 0);
-  }
-
-  @Override
-  public Resource newResource(int memory, int cores) {
-    return new MockResource(memory, cores);
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockContainer.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/mock/MockContainer.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/mock/MockContainer.java
deleted file mode 100644
index 148b7f6..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/mock/MockContainer.java
+++ /dev/null
@@ -1,131 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.Container;
-import org.apache.hadoop.yarn.api.records.ContainerId;
-import org.apache.hadoop.yarn.api.records.ExecutionType;
-import org.apache.hadoop.yarn.api.records.NodeId;
-import org.apache.hadoop.yarn.api.records.Priority;
-import org.apache.hadoop.yarn.api.records.Resource;
-import org.apache.hadoop.yarn.api.records.Token;
-
-/**
- * Mock container.
- */
-public class MockContainer extends Container {
-
-  private ContainerId id;
-  private NodeId nodeId;
-  private String nodeHttpAddress;
-  private Resource resource;
-  private Priority priority;
-  private Token containerToken;
-
-  @Override
-  public int compareTo(Container other) {
-    if (this.getId().compareTo(other.getId()) == 0) {
-      if (this.getNodeId().compareTo(other.getNodeId()) == 0) {
-        return this.getResource().compareTo(other.getResource());
-      } else {
-        return this.getNodeId().compareTo(other.getNodeId());
-      }
-    } else {
-      return this.getId().compareTo(other.getId());
-    }
-  }
-
-  @Override
-  public String toString() {
-    return "MockContainer{ id=" + id +
-           ", nodeHttpAddress='" + nodeHttpAddress + "'," +
-           " priority=" + priority + " }";
-  }
-
-  @Override
-  public ContainerId getId() {
-    return id;
-  }
-
-  @Override
-  public void setId(ContainerId id) {
-    this.id = id;
-  }
-
-  @Override
-  public NodeId getNodeId() {
-    return nodeId;
-  }
-
-  @Override
-  public void setNodeId(NodeId nodeId) {
-    this.nodeId = nodeId;
-  }
-
-  @Override
-  public String getNodeHttpAddress() {
-    return nodeHttpAddress;
-  }
-
-  @Override
-  public void setNodeHttpAddress(String nodeHttpAddress) {
-    this.nodeHttpAddress = nodeHttpAddress;
-  }
-
-  @Override
-  public Resource getResource() {
-    return resource;
-  }
-
-  @Override
-  public void setResource(Resource resource) {
-    this.resource = resource;
-  }
-
-  @Override
-  public Priority getPriority() {
-    return priority;
-  }
-
-  @Override
-  public void setPriority(Priority priority) {
-    this.priority = priority;
-  }
-
-  @Override
-  public Token getContainerToken() {
-    return containerToken;
-  }
-
-  @Override
-  public void setContainerToken(Token containerToken) {
-    this.containerToken = containerToken;
-  }
-
-  @Override
-  public ExecutionType getExecutionType() {
-    return null;
-  }
-
-  @Override
-  public void setExecutionType(ExecutionType executionType) {
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockContainerId.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/mock/MockContainerId.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/mock/MockContainerId.java
deleted file mode 100644
index 3cbc7e5..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/mock/MockContainerId.java
+++ /dev/null
@@ -1,104 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
-import org.apache.hadoop.yarn.api.records.ContainerId;
-
-/**
- * Mock container id.
- */
-public class MockContainerId extends ContainerId implements Cloneable {
-
-  private static final MockApplicationAttemptId DEFAULT_APP_ATTEMPT_ID =
-      new MockApplicationAttemptId(new MockApplicationId(1), 1);
-
-  private long containerId;
-  private ApplicationAttemptId applicationAttemptId;
-
-  MockContainerId() {
-  }
-
-  /**
-   * Sets up a default app Attempt ID.
-   * @param containerId
-   */
-  MockContainerId(long containerId) {
-    this.containerId = containerId;
-    this.applicationAttemptId = DEFAULT_APP_ATTEMPT_ID;
-  }
-
-  public MockContainerId(ApplicationAttemptId applicationAttemptId,
-      long containerId) {
-    this.containerId = containerId;
-    this.applicationAttemptId = applicationAttemptId;
-  }
-
-  MockContainerId(ContainerId that) {
-    containerId = that.getContainerId();
-    applicationAttemptId = that.getApplicationAttemptId();
-  }
-
-  @Deprecated
-  @Override
-  public int getId() {
-    return (int) containerId;
-  }
-
-  // TODO: Temporarily adding it back
-  void setId(int id) {
-    containerId = (long) id;
-  }
-
-  @Override
-  public long getContainerId() {
-    return this.containerId;
-  }
-
-  @Override
-  public void setContainerId(long id) {
-    this.containerId = id;
-  }
-
-  @Override
-  public ApplicationAttemptId getApplicationAttemptId() {
-    return applicationAttemptId;
-  }
-
-  @Override
-  public void setApplicationAttemptId(ApplicationAttemptId
-      applicationAttemptId) {
-    this.applicationAttemptId = applicationAttemptId;
-  }
-
-  @Override
-  public void build() {
-
-  }
-
-  @Override
-  public String toString() {
-    return "mockcontainer_" + containerId;
-  }
-
-  @Override
-  protected Object clone() throws CloneNotSupportedException {
-    return super.clone();
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockFactory.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/mock/MockFactory.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/mock/MockFactory.java
deleted file mode 100644
index 8785b92..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/mock/MockFactory.java
+++ /dev/null
@@ -1,273 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
-import org.apache.hadoop.yarn.api.records.ApplicationId;
-import org.apache.hadoop.yarn.api.records.ContainerId;
-import org.apache.hadoop.yarn.api.records.ContainerState;
-import org.apache.hadoop.yarn.api.records.ContainerStatus;
-import org.apache.hadoop.yarn.api.records.NodeId;
-import org.apache.hadoop.yarn.api.records.NodeReport;
-import org.apache.hadoop.yarn.api.records.NodeState;
-import org.apache.hadoop.yarn.api.records.Priority;
-import org.apache.hadoop.yarn.api.records.impl.pb.NodeReportPBImpl;
-import org.apache.hadoop.yarn.client.api.AMRMClient;
-import org.apache.slider.api.ResourceKeys;
-import org.apache.slider.api.resource.Application;
-import org.apache.slider.api.resource.Component;
-import org.apache.slider.api.resource.Resource;
-import org.apache.slider.providers.PlacementPolicy;
-import org.apache.slider.providers.ProviderRole;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-
-import static org.apache.slider.api.ResourceKeys.COMPONENT_PLACEMENT_POLICY;
-
-/**
- * Factory for creating things.
- */
-public class MockFactory implements MockRoles {
-
-  public static final int NODE_FAILURE_THRESHOLD = 2;
-
-  public static final MockFactory INSTANCE = new MockFactory();
-
-  /**
-   * Basic role.
-   */
-  public static final ProviderRole PROVIDER_ROLE0 = new ProviderRole(
-      MockRoles.ROLE0,
-      0,
-      PlacementPolicy.DEFAULT,
-      NODE_FAILURE_THRESHOLD,
-      1,
-      ResourceKeys.DEF_YARN_LABEL_EXPRESSION);
-  /**
-   * role 1 is strict. timeout should be irrelevant; same as failures
-   */
-  public static final ProviderRole PROVIDER_ROLE1 = new ProviderRole(
-      MockRoles.ROLE1,
-      1,
-      PlacementPolicy.STRICT,
-      NODE_FAILURE_THRESHOLD,
-      1,
-      ResourceKeys.DEF_YARN_LABEL_EXPRESSION);
-
-  /**
-   * role 2: longer delay.
-   */
-  public static final ProviderRole PROVIDER_ROLE2 = new ProviderRole(
-      MockRoles.ROLE2,
-      2,
-      PlacementPolicy.ANYWHERE,
-      NODE_FAILURE_THRESHOLD,
-      2,
-      ResourceKeys.DEF_YARN_LABEL_EXPRESSION);
-
-  /**
-   * Patch up a "role2" role to have anti-affinity set.
-   */
-  public static final ProviderRole AAROLE_2 = new ProviderRole(
-      MockRoles.ROLE2,
-      2,
-      PlacementPolicy.ANTI_AFFINITY_REQUIRED,
-      NODE_FAILURE_THRESHOLD,
-      2,
-      null);
-
-  /**
-   * Patch up a "role1" role to have anti-affinity set and GPI as the label.
-   */
-  public static final ProviderRole AAROLE_1_GPU = new ProviderRole(
-      MockRoles.ROLE1,
-      1,
-      PlacementPolicy.ANTI_AFFINITY_REQUIRED,
-      NODE_FAILURE_THRESHOLD,
-      1,
-      MockRoles.LABEL_GPU);
-
-  private int appIdCount;
-  private int attemptIdCount;
-  private int containerIdCount;
-
-  private ApplicationId appId = newAppId();
-  private ApplicationAttemptId attemptId = newApplicationAttemptId(appId);
-
-  /**
-   * List of roles.
-   */
-  public static final List<ProviderRole> ROLES = Arrays.asList(
-          PROVIDER_ROLE0,
-          PROVIDER_ROLE1,
-          PROVIDER_ROLE2
-      );
-
-  public static final int ROLE_COUNT = ROLES.size();
-
-  MockContainerId newContainerId() {
-    return newContainerId(attemptId);
-  }
-
-  MockContainerId newContainerId(ApplicationAttemptId attemptId0) {
-    MockContainerId cid = new MockContainerId(attemptId0, containerIdCount++);
-    return cid;
-  }
-
-  MockApplicationAttemptId newApplicationAttemptId(ApplicationId appId0) {
-    MockApplicationAttemptId id = new MockApplicationAttemptId(appId0,
-        attemptIdCount++);
-    return id;
-  }
-
-  MockApplicationId newAppId() {
-    MockApplicationId id = new MockApplicationId();
-    id.setId(appIdCount++);
-    return id;
-  }
-
-  public MockNodeId newNodeId(String host) {
-    return new MockNodeId(host);
-  }
-
-  MockContainer newContainer(ContainerId cid) {
-    MockContainer c = new MockContainer();
-    c.setId(cid);
-    return c;
-  }
-
-  public MockContainer newContainer() {
-    return newContainer(newContainerId());
-  }
-
-  public MockContainer newContainer(NodeId nodeId, Priority priority) {
-    MockContainer container = newContainer(newContainerId());
-    container.setNodeId(nodeId);
-    container.setPriority(priority);
-    return container;
-  }
-
-  /**
-   * Build a new container  using the request to supply priority and resource.
-   * @param req request
-   * @param host hostname to assign to
-   * @return the container
-   */
-  public MockContainer newContainer(AMRMClient.ContainerRequest req, String
-      host) {
-    MockContainer container = newContainer(newContainerId());
-    container.setResource(req.getCapability());
-    container.setPriority(req.getPriority());
-    container.setNodeId(new MockNodeId(host));
-    return container;
-  }
-
-  /**
-   * Create a new instance with the given components definined in the
-   * resources section.
-   * @param r1
-   * @param r2
-   * @param r3
-   * @return
-   */
-  public Application newApplication(long r1, long r2, long r3) {
-    Application application = new Application();
-    application.setLaunchCommand("sleep 60");
-    application.setResource(new Resource().memory("256"));
-    application.getConfiguration().setProperty(ResourceKeys
-        .NODE_FAILURE_THRESHOLD, Integer.toString(NODE_FAILURE_THRESHOLD));
-    List<Component> components = application.getComponents();
-    Component c1 = new Component().name(ROLE0).numberOfContainers(r1);
-    c1.getConfiguration().setProperty(COMPONENT_PLACEMENT_POLICY,
-        Integer.toString(PlacementPolicy.DEFAULT));
-    Component c2 = new Component().name(ROLE1).numberOfContainers(r2);
-    c2.getConfiguration().setProperty(COMPONENT_PLACEMENT_POLICY,
-        Integer.toString(PlacementPolicy.STRICT));
-    Component c3 = new Component().name(ROLE2).numberOfContainers(r3);
-    c3.getConfiguration().setProperty(COMPONENT_PLACEMENT_POLICY,
-        Integer.toString(PlacementPolicy.ANYWHERE));
-    components.add(c1);
-    components.add(c2);
-    components.add(c3);
-    return application;
-  }
-
-  public MockResource newResource(int memory, int vcores) {
-    return new MockResource(memory, vcores);
-  }
-
-  ContainerStatus newContainerStatus() {
-    return newContainerStatus(null, null, "", 0);
-  }
-
-  ContainerStatus newContainerStatus(ContainerId containerId,
-      ContainerState containerState, String diagnostics, int exitStatus) {
-    return ContainerStatus.newInstance(containerId, containerState,
-        diagnostics, exitStatus);
-  }
-
-  /**
-   * Create a single instance.
-   * @param hostname
-   * @param nodeState
-   * @param label
-   */
-  public NodeReport newNodeReport(String hostname, NodeState nodeState,
-      String label) {
-    NodeId nodeId = NodeId.newInstance(hostname, 80);
-    Integer.valueOf(hostname, 16);
-    return newNodeReport(hostname, nodeId, nodeState, label);
-  }
-
-  NodeReport newNodeReport(
-      String hostname,
-      NodeId nodeId,
-      NodeState nodeState,
-      String label) {
-    NodeReport report = new NodeReportPBImpl();
-    HashSet<String> nodeLabels = new HashSet<>();
-    nodeLabels.add(label);
-    report.setNodeId(nodeId);
-    report.setNodeLabels(nodeLabels);
-    report.setNodeState(nodeState);
-    report.setHttpAddress("http$hostname:80");
-    return report;
-  }
-
-  /**
-   * Create a list of instances -one for each hostname.
-   * @param hostnames hosts
-   * @return
-   */
-  public List<NodeReport> createNodeReports(
-      List<String> hostnames, NodeState nodeState, String label) {
-    if (nodeState == null) {
-      nodeState = NodeState.RUNNING;
-    }
-    List<NodeReport> reports = new ArrayList<>();
-    for (String name : hostnames) {
-      reports.add(newNodeReport(name, nodeState, label));
-    }
-    return reports;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockFileSystem.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/mock/MockFileSystem.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/mock/MockFileSystem.java
deleted file mode 100644
index 72d1665..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/mock/MockFileSystem.java
+++ /dev/null
@@ -1,32 +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.mock;
-
-import org.apache.hadoop.fs.FilterFileSystem;
-import org.apache.hadoop.fs.Path;
-
-import java.io.IOException;
-
-/**
- *
- */
-class MockFileSystem extends FilterFileSystem{
-  @Override
-  public Path resolvePath(Path p) throws IOException {
-    return new Path("hdfs://localhost/", p);
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockNodeId.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/mock/MockNodeId.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/mock/MockNodeId.java
deleted file mode 100644
index 9d2379a..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/mock/MockNodeId.java
+++ /dev/null
@@ -1,62 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.NodeId;
-
-/**
- * Mock node id.
- */
-public class MockNodeId extends NodeId {
-  private String host;
-  private int port;
-
-  public MockNodeId() {
-  }
-
-  MockNodeId(String host) {
-    this.host = host;
-  }
-
-  public MockNodeId(String host, int port) {
-    this.host = host;
-    this.port = port;
-  }
-
-  public String getHost() {
-    return host;
-  }
-
-  public void setHost(String host) {
-    this.host = host;
-  }
-
-  public int getPort() {
-    return port;
-  }
-
-  public void setPort(int port) {
-    this.port = port;
-  }
-
-  @Override
-  protected void build() {
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockPriority.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/mock/MockPriority.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/mock/MockPriority.java
deleted file mode 100644
index 36f97cc..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/mock/MockPriority.java
+++ /dev/null
@@ -1,46 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.Priority;
-
-/**
- * Mock priority.
- */
-public class MockPriority extends Priority {
-
-  private int priority;
-
-  public MockPriority(int priority) {
-    this.priority = priority;
-  }
-
-  MockPriority() {
-  }
-
-  @Override
-  public int getPriority() {
-    return priority;
-  }
-
-  @Override
-  public void setPriority(int priority) {
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockRMOperationHandler.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/mock/MockRMOperationHandler.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/mock/MockRMOperationHandler.java
deleted file mode 100644
index 3dd764a..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/mock/MockRMOperationHandler.java
+++ /dev/null
@@ -1,120 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.ContainerId;
-import org.apache.hadoop.yarn.api.records.Priority;
-import org.apache.hadoop.yarn.client.api.AMRMClient;
-import org.apache.slider.server.appmaster.operations.AbstractRMOperation;
-import org.apache.slider.server.appmaster.operations.ContainerReleaseOperation;
-import org.apache.slider.server.appmaster.operations.ContainerRequestOperation;
-import org.apache.slider.server.appmaster.operations.RMOperationHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Mock RM operation handler.
- */
-public class MockRMOperationHandler extends RMOperationHandler {
-  protected static final Logger LOG =
-      LoggerFactory.getLogger(MockRMOperationHandler.class);
-
-  private List<AbstractRMOperation> operations = new ArrayList<>();
-  private int requests;
-  private int releases;
-  // number available to cancel
-  private int availableToCancel = 0;
-  // count of cancelled values. This must be explicitly set
-  private int cancelled;
-  // number blacklisted
-  private int blacklisted = 0;
-
-  @Override
-  public void releaseAssignedContainer(ContainerId containerId) {
-    operations.add(new ContainerReleaseOperation(containerId));
-    LOG.info("Releasing container ID " + containerId.getContainerId());
-    releases++;
-  }
-
-  @Override
-  public void addContainerRequest(AMRMClient.ContainerRequest req) {
-    operations.add(new ContainerRequestOperation(req));
-    LOG.info("Requesting container role #" + req.getPriority());
-    requests++;
-  }
-
-  @Override
-  public int cancelContainerRequests(
-      Priority priority1,
-      Priority priority2,
-      int count) {
-    int releaseable = Math.min(count, availableToCancel);
-    availableToCancel -= releaseable;
-    cancelled += releaseable;
-    return releaseable;
-  }
-
-  @Override
-  public void cancelSingleRequest(AMRMClient.ContainerRequest request) {
-    // here assume that there is a copy of this request in the list
-    if (availableToCancel > 0) {
-      availableToCancel--;
-      cancelled++;
-    }
-  }
-
-  @Override
-  public void updateBlacklist(List<String> blacklistAdditions, List<String>
-      blacklistRemovals) {
-    blacklisted += blacklistAdditions.size();
-    blacklisted -= blacklistRemovals.size();
-  }
-
-  /**
-   * Clear the history.
-   */
-  public void clear() {
-    operations.clear();
-    releases = 0;
-    requests = 0;
-  }
-
-  public AbstractRMOperation getFirstOp() {
-    return operations.get(0);
-  }
-
-  public int getNumReleases() {
-    return releases;
-  }
-
-  public void setAvailableToCancel(int num) {
-    this.availableToCancel = num;
-  }
-
-  public int getAvailableToCancel() {
-    return availableToCancel;
-  }
-
-  public int getBlacklisted() {
-    return blacklisted;
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockRecordFactory.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/mock/MockRecordFactory.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/mock/MockRecordFactory.java
deleted file mode 100644
index eb34586..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/mock/MockRecordFactory.java
+++ /dev/null
@@ -1,27 +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.mock;
-
-/**
- * Node report for testing.
- */
-class MockRecordFactory {
-
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockRegistryOperations.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/mock/MockRegistryOperations.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/mock/MockRegistryOperations.java
deleted file mode 100644
index 4917f1b..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/mock/MockRegistryOperations.java
+++ /dev/null
@@ -1,83 +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.mock;
-
-import org.apache.hadoop.fs.PathNotFoundException;
-import org.apache.hadoop.registry.client.api.RegistryOperations;
-import org.apache.hadoop.registry.client.types.RegistryPathStatus;
-import org.apache.hadoop.registry.client.types.ServiceRecord;
-import org.apache.hadoop.service.AbstractService;
-
-import java.util.List;
-
-/**
- * Simple stub registry for when one is needed for its API, but the operations
- * are not actually required.
- */
-class MockRegistryOperations extends AbstractService implements
-    RegistryOperations {
-
-  MockRegistryOperations() {
-    super("mock");
-  }
-
-  @Override
-  public boolean mknode(String path, boolean createParents) {
-    return true;
-  }
-
-  @Override
-  public void bind(String path, ServiceRecord record, int flags) {
-  }
-
-  @Override
-  public ServiceRecord resolve(String path) throws PathNotFoundException {
-    throw new PathNotFoundException(path);
-  }
-
-  @Override
-  public RegistryPathStatus stat(String path) throws PathNotFoundException {
-    throw new PathNotFoundException(path);
-  }
-
-  @Override
-  public boolean exists(String path) {
-    return false;
-  }
-
-  @Override
-  public List<String> list(String path) throws PathNotFoundException {
-    throw new PathNotFoundException(path);
-  }
-
-  @Override
-  public void delete(String path, boolean recursive) {
-
-  }
-
-  @Override
-  public boolean addWriteAccessor(String id, String pass) {
-    return true;
-  }
-
-  @Override
-  public void clearWriteAccessors() {
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockResource.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/mock/MockResource.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/mock/MockResource.java
deleted file mode 100644
index 3a2ccd7..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/mock/MockResource.java
+++ /dev/null
@@ -1,75 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.Resource;
-
-/**
- * Mock resource.
- */
-public class MockResource extends Resource {
-  private int memory;
-  private int virtualCores;
-
-  public MockResource(int memory, int vcores) {
-    this.memory = memory;
-    this.virtualCores = vcores;
-  }
-
-  @Override
-  public int compareTo(Resource other) {
-    long diff = this.getMemorySize() - other.getMemorySize();
-    if (diff == 0) {
-      diff = this.getVirtualCores() - other.getVirtualCores();
-    }
-    return diff == 0 ? 0 : (diff > 0 ? 1 : -1);
-  }
-
-  @Override
-  public long getMemorySize() {
-    return memory;
-  }
-
-  @Override
-  public void setMemorySize(long memorySize) {
-    memory = (int) memorySize;
-  }
-
-  @Override
-  public int getVirtualCores() {
-    return virtualCores;
-  }
-
-  @Override
-  public void setVirtualCores(int vCores) {
-    this.virtualCores = vCores;
-  }
-
-  @Deprecated
-  @Override
-  public int getMemory() {
-    return memory;
-  }
-
-  @Deprecated
-  @Override
-  public void setMemory(int memory) {
-    this.memory = memory;
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockRoleHistory.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/mock/MockRoleHistory.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/mock/MockRoleHistory.java
deleted file mode 100644
index 8e88b0d..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/mock/MockRoleHistory.java
+++ /dev/null
@@ -1,53 +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.mock;
-
-import org.apache.slider.core.exceptions.BadConfigException;
-import org.apache.slider.providers.ProviderRole;
-import org.apache.slider.server.appmaster.state.RoleHistory;
-import org.apache.slider.server.appmaster.state.RoleStatus;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Subclass to enable access to some of the protected methods.
- */
-public class MockRoleHistory extends RoleHistory {
-
-  /**
-   * Take a list of provider roles and build the history from them,
-   * dynamically creating the role status entries on the way.
-   * @param providerRoles provider role list
-   * @throws BadConfigException configuration problem with the role list
-   */
-  public MockRoleHistory(List<ProviderRole> providerRoles) throws
-      BadConfigException {
-    super(convertRoles(providerRoles), new MockClusterServices());
-  }
-
-  static List<RoleStatus> convertRoles(List<ProviderRole> providerRoles) {
-    List<RoleStatus> statuses = new ArrayList<>();
-    for (ProviderRole role : providerRoles) {
-      statuses.add(new RoleStatus(role));
-    }
-    return statuses;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockRoles.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/mock/MockRoles.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/mock/MockRoles.java
deleted file mode 100644
index bad82bd..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/mock/MockRoles.java
+++ /dev/null
@@ -1,30 +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.mock;
-
-/**
- * Mock role constants.
- */
-public interface MockRoles {
-
-  String ROLE0 = "role0";
-  String ROLE1 = "role1";
-  String ROLE2 = "role2";
-  String LABEL_GPU = "gpu";
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/e00bb2ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/test/java/org/apache/slider/server/appmaster/model/mock/MockYarnCluster.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/mock/MockYarnCluster.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/mock/MockYarnCluster.java
deleted file mode 100644
index 6b685a0..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/mock/MockYarnCluster.java
+++ /dev/null
@@ -1,342 +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.mock;
-
-import org.apache.hadoop.yarn.api.records.ContainerId;
-import org.apache.hadoop.yarn.api.records.NodeId;
-import org.apache.hadoop.yarn.api.records.NodeReport;
-import org.apache.hadoop.yarn.api.records.NodeState;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-
-/**
- * Models the cluster itself: a set of mock cluster nodes.
- *
- * nodes retain the slot model with a limit of 2^8 slots/host -this
- * lets us use 24 bits of the container ID for hosts, and so simulate
- * larger hosts.
- *
- * upper 32: index into nodes in the cluster
- * NodeID hostname is the index in hex format; this is parsed down to the index
- * to resolve the host
- *
- * Important: container IDs will be reused as containers get recycled. This
- * is not an attempt to realistically mimic a real YARN cluster, just
- * simulate it enough for Slider to explore node re-use and its handling
- * of successful and unsuccessful allocations.
- *
- * There is little or no checking of valid parameters in here -this is for
- * test use, not production.
- */
-public class MockYarnCluster {
-  protected static final Logger LOG =
-      LoggerFactory.getLogger(MockYarnCluster.class);
-
-  private final int clusterSize;
-  private final int containersPerNode;
-  private MockYarnClusterNode[] nodes;
-
-  MockYarnCluster(int clusterSize, int containersPerNode) {
-    this.clusterSize = clusterSize;
-    this.containersPerNode = containersPerNode;
-    build();
-  }
-
-  public int getClusterSize() {
-    return clusterSize;
-  }
-
-  @Override
-  public String toString() {
-    return "MockYarnCluster size=" + clusterSize + ", capacity=" +
-        totalClusterCapacity()+ ", in use=" + containersInUse();
-  }
-
-  /**
-   * Build the cluster.
-   */
-  private void build() {
-    nodes = new MockYarnClusterNode[clusterSize];
-    for (int i = 0; i < clusterSize; i++) {
-      nodes[i] = new MockYarnClusterNode(i, containersPerNode);
-    }
-  }
-
-  public MockYarnClusterNode nodeAt(int index) {
-    return nodes[index];
-  }
-
-  MockYarnClusterNode lookup(String hostname) {
-    int index = Integer.valueOf(hostname, 16);
-    return nodeAt(index);
-  }
-
-  MockYarnClusterNode lookup(NodeId nodeId) {
-    return lookup(nodeId.getHost());
-  }
-
-  MockYarnClusterNode lookupOwner(ContainerId cid) {
-    return nodeAt(extractHost(cid.getContainerId()));
-  }
-
-  /**
-   * Release a container: return true if it was actually in use.
-   * @param cid container ID
-   * @return the container released
-   */
-  MockYarnClusterContainer release(ContainerId cid) {
-    int host = extractHost(cid.getContainerId());
-    MockYarnClusterContainer inUse = 
nodeAt(host).release(cid.getContainerId());
-    LOG.debug("Released {} inuse={}", cid, inUse);
-    return inUse;
-  }
-
-  int containersInUse() {
-    int count = 0;
-    for (MockYarnClusterNode it : nodes) {
-      count += it.containersInUse();
-    }
-    return count;
-  }
-
-  /**
-   * Containers free.
-   * @return
-   */
-  int containersFree() {
-    return totalClusterCapacity() - containersInUse();
-  }
-
-  int totalClusterCapacity() {
-    return clusterSize * containersPerNode;
-  }
-
-  /**
-   * Reset all the containers.
-   */
-  public void reset() {
-    for (MockYarnClusterNode node : nodes) {
-      node.reset();
-    }
-  }
-
-  /**
-   * Bulk allocate the specific number of containers on a range of the cluster.
-   * @param startNode start of the range
-   * @param endNode end of the range
-   * @param count count
-   * @return the number actually allocated -it will be less the count supplied
-   * if the node was full
-   */
-  public int bulkAllocate(int startNode, int endNode, int count) {
-    int total = 0;
-    for (int i = startNode; i <= endNode; i++) {
-      total += nodeAt(i).bulkAllocate(count).size();
-    }
-    return total;
-  }
-
-  /**
-   * Get the list of node reports. These are not cloned; updates will persist
-   * in the nodemap
-   * @return current node report list
-   */
-  List<NodeReport> getNodeReports() {
-    List<NodeReport> reports = new ArrayList<>();
-
-    for (MockYarnClusterNode n : nodes) {
-      reports.add(n.nodeReport);
-    }
-    return reports;
-  }
-
-  /**
-   * Model cluster nodes on the simpler "slot" model than the YARN-era
-   * resource allocation model. Why? Easier to implement scheduling.
-   * Of course, if someone does want to implement the full process...
-   *
-   */
-  public static class MockYarnClusterNode {
-
-    private final int nodeIndex;
-    private final String hostname;
-    private List<String> labels = new ArrayList<>();
-    private final MockNodeId nodeId;
-    private final MockYarnClusterContainer[] containers;
-    private boolean offline;
-    private NodeReport nodeReport;
-
-    public MockYarnClusterNode(int index, int size) {
-      nodeIndex = index;
-      hostname = String.format(Locale.ENGLISH, "%08x", index);
-      nodeId = new MockNodeId(hostname, 0);
-
-      containers = new MockYarnClusterContainer[size];
-      for (int i = 0; i < size; i++) {
-        int cid = makeCid(index, i);
-        MockContainerId mci = new MockContainerId(cid);
-        containers[i] = new MockYarnClusterContainer(mci);
-      }
-
-      nodeReport = MockFactory.INSTANCE.newNodeReport(hostname, nodeId,
-          NodeState.RUNNING, "");
-    }
-
-    public String getHostname() {
-      return hostname;
-    }
-
-    public NodeId getNodeId() {
-      return nodeId;
-    }
-
-    /**
-     * Look up a container.
-     * @param containerId
-     * @return
-     */
-    public MockYarnClusterContainer lookup(int containerId) {
-      return containers[extractContainer(containerId)];
-    }
-
-    /**
-     * Go offline; release all containers.
-     */
-    public void goOffline() {
-      if (!offline) {
-        offline = true;
-        reset();
-      }
-    }
-
-    public void goOnline() {
-      offline = false;
-    }
-
-    /**
-     * Allocate a container -if one is available.
-     * @return the container or null for none free
-     * -or the cluster node is offline
-     */
-    public MockYarnClusterContainer allocate() {
-      if (!offline) {
-        for (int i = 0; i < containers.length; i++) {
-          MockYarnClusterContainer c = containers[i];
-          if (!c.busy) {
-            c.busy = true;
-            return c;
-          }
-        }
-      }
-      return null;
-    }
-
-    /**
-     * Bulk allocate the specific number of containers.
-     * @param count count
-     * @return the list actually allocated -it will be less the count supplied
-     * if the node was full
-     */
-    public List<MockYarnClusterContainer> bulkAllocate(int count) {
-      List<MockYarnClusterContainer> result = new ArrayList<>();
-      for (int i = 0; i < count; i++) {
-        MockYarnClusterContainer allocation = allocate();
-        if (allocation == null) {
-          break;
-        }
-        result.add(allocation);
-      }
-      return result;
-    }
-
-    /**
-     * Release a container.
-     * @param cid container ID
-     * @return the container if the container was busy before the release
-     */
-    public MockYarnClusterContainer release(long cid) {
-      MockYarnClusterContainer container = containers[extractContainer(cid)];
-      boolean b = container.busy;
-      container.busy = false;
-      return b? container: null;
-    }
-
-    public String httpAddress() {
-      return "http://$hostname/";;
-    }
-
-    /**
-     * Reset all the containers.
-     */
-    public void reset() {
-      for (MockYarnClusterContainer cont : containers) {
-        cont.reset();
-      }
-    }
-
-    public int containersInUse() {
-      int c = 0;
-      for (MockYarnClusterContainer cont : containers) {
-        c += cont.busy ? 1 : 0;
-      }
-      return c;
-    }
-
-    public int containersFree() {
-      return containers.length - containersInUse();
-    }
-  }
-
-  /**
-   * Cluster container.
-   */
-  public static class MockYarnClusterContainer {
-    private MockContainerId cid;
-    private boolean busy;
-
-    MockYarnClusterContainer(MockContainerId cid) {
-      this.cid = cid;
-    }
-
-    public MockContainerId getCid() {
-      return cid;
-    }
-
-    void reset() {
-      busy = false;
-    }
-  }
-
-  public static int makeCid(int hostIndex, int containerIndex) {
-    return (hostIndex << 8) | containerIndex & 0xff;
-  }
-
-  public static final int extractHost(long cid) {
-    return (int)((cid >>> 8) & 0xffff);
-  }
-
-  public static final int extractContainer(long cid) {
-    return (int)(cid & 0xff);
-  }
-
-}


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

Reply via email to