blob: 6a5699eb048cfe8c0fbc50cb68cb20147156e03c [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.mapred.gridmix.test.system;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.test.system.JTClient;
import org.junit.Assert;
/**
* Submit the gridmix jobs.
*/
public class GridmixJobSubmission {
private static final Log LOG =
LogFactory.getLog(GridmixJobSubmission.class);
private int gridmixJobCount;
private Configuration conf;
private Path gridmixDir;
private JTClient jtClient;
public GridmixJobSubmission(Configuration conf, JTClient jtClient ,
Path gridmixDir) {
this.conf = conf;
this.jtClient = jtClient;
this.gridmixDir = gridmixDir;
}
/**
* Submit the gridmix jobs.
* @param runtimeArgs - gridmix common runtime arguments.
* @param otherArgs - gridmix other runtime arguments.
* @param traceInterval - trace time interval.
* @throws Exception
*/
public void submitJobs(String [] runtimeArgs,
String [] otherArgs, int mode) throws Exception {
int prvJobCount = jtClient.getClient().getAllJobs().length;
int exitCode = -1;
if (otherArgs == null) {
exitCode = UtilsForGridmix.runGridmixJob(gridmixDir, conf,
mode, runtimeArgs);
} else {
exitCode = UtilsForGridmix.runGridmixJob(gridmixDir, conf, mode,
runtimeArgs, otherArgs);
}
Assert.assertEquals("Gridmix jobs have failed.", 0 , exitCode);
gridmixJobCount = jtClient.getClient().getAllJobs().length - prvJobCount;
}
/**
* Get the submitted jobs count.
* @return count of no. of jobs submitted for a trace.
*/
public int getGridmixJobCount() {
return gridmixJobCount;
}
/**
* Get the job configuration.
* @return Configuration of a submitted job.
*/
public Configuration getJobConf() {
return conf;
}
}