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:30 UTC
[06/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org