blob: cc67ff77780c2f90436b40196cbf42e0ee9064fc [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.yarn;
import java.util.Iterator;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.YarnApplicationState;
import org.apache.hadoop.yarn.util.Records;
import com.google.common.collect.Iterators;
/**
* Utilities to generate fake test apps
*/
public class MockApps {
static final Iterator<String> NAMES = Iterators.cycle("SleepJob",
"RandomWriter", "TeraSort", "TeraGen", "PigLatin", "WordCount",
"I18nApp<☯>");
static final Iterator<String> USERS = Iterators.cycle("dorothy", "tinman",
"scarecrow", "glinda", "nikko", "toto", "winkie", "zeke", "gulch");
static final Iterator<YarnApplicationState> STATES = Iterators.cycle(
YarnApplicationState.values());
static final Iterator<String> QUEUES = Iterators.cycle("a.a1", "a.a2",
"b.b1", "b.b2", "b.b3", "c.c1.c11", "c.c1.c12", "c.c1.c13",
"c.c2", "c.c3", "c.c4");
static final long TS = System.currentTimeMillis();
public static String newAppName() {
synchronized(NAMES) {
return NAMES.next();
}
}
public static String newUserName() {
synchronized(USERS) {
return USERS.next();
}
}
public static String newQueue() {
synchronized(QUEUES) {
return QUEUES.next();
}
}
public static ApplicationId newAppID(int i) {
ApplicationId id = Records.newRecord(ApplicationId.class);
id.setClusterTimestamp(TS);
id.setId(i);
return id;
}
public static ApplicationAttemptId newAppAttemptID(ApplicationId appId, int i) {
ApplicationAttemptId id = Records.newRecord(ApplicationAttemptId.class);
id.setApplicationId(appId);
id.setAttemptId(i);
return id;
}
public static YarnApplicationState newAppState() {
synchronized(STATES) {
return STATES.next();
}
}
}