blob: a072a9fd53b36a91eb1786d108292155cf2e384b [file] [log] [blame]
/**
* 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.hadoop.mapreduce.v2.hs;
import java.io.IOException;
import java.util.Map;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.v2.api.records.JobId;
import org.apache.hadoop.mapreduce.v2.api.records.JobState;
import org.apache.hadoop.mapreduce.v2.app.MockAppContext;
import org.apache.hadoop.mapreduce.v2.app.job.Job;
import org.apache.hadoop.mapreduce.v2.hs.MockHistoryJobs.JobsPair;
import org.apache.hadoop.mapreduce.v2.hs.webapp.dao.JobsInfo;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
public class MockHistoryContext extends MockAppContext implements HistoryContext {
private final Map<JobId, Job> partialJobs;
private final Map<JobId, Job> fullJobs;
public MockHistoryContext(int numJobs, int numTasks, int numAttempts) {
super(0);
JobsPair jobs;
try {
jobs = MockHistoryJobs.newHistoryJobs(numJobs, numTasks, numAttempts);
} catch (IOException e) {
throw new YarnRuntimeException(e);
}
partialJobs = jobs.partial;
fullJobs = jobs.full;
}
public MockHistoryContext(int appid, int numJobs, int numTasks,
int numAttempts) {
super(appid);
JobsPair jobs;
try {
jobs = MockHistoryJobs.newHistoryJobs(getApplicationID(), numJobs, numTasks,
numAttempts);
} catch (IOException e) {
throw new YarnRuntimeException(e);
}
partialJobs = jobs.partial;
fullJobs = jobs.full;
}
public MockHistoryContext(int appid, int numTasks, int numAttempts, Path confPath) {
super(appid, numTasks, numAttempts, confPath);
fullJobs = super.getAllJobs();
partialJobs = null;
}
public MockHistoryContext(int appid, int numJobs, int numTasks, int numAttempts,
boolean hasFailedTasks) {
super(appid);
JobsPair jobs;
try {
jobs = MockHistoryJobs.newHistoryJobs(getApplicationID(), numJobs, numTasks,
numAttempts, hasFailedTasks);
} catch (IOException e) {
throw new YarnRuntimeException(e);
}
partialJobs = jobs.partial;
fullJobs = jobs.full;
}
@Override
public Job getJob(JobId jobID) {
return fullJobs.get(jobID);
}
public Job getPartialJob(JobId jobID) {
return partialJobs.get(jobID);
}
@Override
public Map<JobId, Job> getAllJobs() {
return fullJobs;
}
@Override
public Map<JobId, Job> getAllJobs(ApplicationId appID) {
return null;
}
@Override
public JobsInfo getPartialJobs(Long offset, Long count, String user,
String queue, Long sBegin, Long sEnd, Long fBegin, Long fEnd,
JobState jobState) {
return CachedHistoryStorage.getPartialJobs(this.partialJobs.values(),
offset, count, user, queue, sBegin, sEnd, fBegin, fEnd, jobState);
}
}