YARN-6115. Few additional paths in Slider client still uses get all Applications without tags/states filter. Contributed by Gour Saha
This commit is contained in:
parent
a5e20f0fc1
commit
7edc154e0e
@ -142,7 +142,6 @@
|
||||
import org.apache.slider.core.launch.CredentialUtils;
|
||||
import org.apache.slider.core.launch.JavaCommandLineBuilder;
|
||||
import org.apache.slider.core.launch.LaunchedApplication;
|
||||
import org.apache.slider.core.launch.RunningApplication;
|
||||
import org.apache.slider.core.launch.SerializedApplicationReport;
|
||||
import org.apache.slider.core.main.RunService;
|
||||
import org.apache.slider.core.persist.AppDefinitionPersister;
|
||||
@ -1535,7 +1534,9 @@ public int actionUpdate(String clustername,
|
||||
|
||||
public void updateLifetime(String appName, long lifetime)
|
||||
throws YarnException, IOException {
|
||||
ApplicationReport report = findInstance(appName);
|
||||
EnumSet<YarnApplicationState> appStates = EnumSet.range(
|
||||
YarnApplicationState.NEW, YarnApplicationState.RUNNING);
|
||||
ApplicationReport report = findInstance(appName, appStates);
|
||||
if (report == null) {
|
||||
throw new YarnException("Application not found for " + appName);
|
||||
}
|
||||
@ -2672,15 +2673,17 @@ public boolean forceKillApplication(String reason)
|
||||
}
|
||||
|
||||
/**
|
||||
* List Slider instances belonging to a specific user. This will include
|
||||
* failed and killed instances; there may be duplicates
|
||||
* List Slider instances belonging to a specific user with a specific app
|
||||
* name and within a set of app states.
|
||||
* @param user user: "" means all users, null means "default"
|
||||
* @param appName name of the application set as a tag
|
||||
* @param appStates a set of states the applications should be in
|
||||
* @return a possibly empty list of Slider AMs
|
||||
*/
|
||||
|
||||
public List<ApplicationReport> listSliderInstances(String user)
|
||||
throws YarnException, IOException {
|
||||
return yarnAppListClient.listInstances(user);
|
||||
public List<ApplicationReport> listSliderInstances(String user,
|
||||
String appName, EnumSet<YarnApplicationState> appStates)
|
||||
throws YarnException, IOException {
|
||||
return yarnAppListClient.listInstances(user, appName, appStates);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2806,7 +2809,9 @@ public Set<ApplicationReport> getApplicationList(String clustername,
|
||||
}
|
||||
|
||||
// and those the RM knows about
|
||||
List<ApplicationReport> instances = listSliderInstances(null);
|
||||
EnumSet<YarnApplicationState> appStates = EnumSet.range(min, max);
|
||||
List<ApplicationReport> instances = listSliderInstances(null, clustername,
|
||||
appStates);
|
||||
sortApplicationsByMostRecent(instances);
|
||||
Map<String, ApplicationReport> reportMap =
|
||||
buildApplicationReportMap(instances, min, max);
|
||||
@ -3053,7 +3058,7 @@ public YarnAppListClient getYarnAppListClient() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Find an instance of an application belonging to the current user
|
||||
* Find an instance of an application belonging to the current user.
|
||||
* @param appname application name
|
||||
* @return the app report or null if none is found
|
||||
* @throws YarnException YARN issues
|
||||
@ -3061,14 +3066,22 @@ public YarnAppListClient getYarnAppListClient() {
|
||||
*/
|
||||
public ApplicationReport findInstance(String appname)
|
||||
throws YarnException, IOException {
|
||||
return yarnAppListClient.findInstance(appname);
|
||||
return findInstance(appname, null);
|
||||
}
|
||||
|
||||
private RunningApplication findApplication(String appname)
|
||||
/**
|
||||
* Find an instance of an application belonging to the current user and in
|
||||
* specific app states.
|
||||
* @param appname application name
|
||||
* @param appStates app states in which the application should be in
|
||||
* @return the app report or null if none is found
|
||||
* @throws YarnException YARN issues
|
||||
* @throws IOException IO problems
|
||||
*/
|
||||
public ApplicationReport findInstance(String appname,
|
||||
EnumSet<YarnApplicationState> appStates)
|
||||
throws YarnException, IOException {
|
||||
ApplicationReport applicationReport = findInstance(appname);
|
||||
return applicationReport != null ?
|
||||
new RunningApplication(yarnClient, applicationReport): null;
|
||||
return yarnAppListClient.findInstance(appname, appStates);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -32,6 +32,7 @@
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -77,7 +78,7 @@ public List<ApplicationReport> findAllLiveInstances(String appname)
|
||||
|
||||
|
||||
/**
|
||||
* Find an instance of a application belong to the current user
|
||||
* Find an instance of a application belong to the current user.
|
||||
* @param appname application name
|
||||
* @return the app report or null if none is found
|
||||
* @throws YarnException YARN issues
|
||||
@ -86,7 +87,22 @@ public List<ApplicationReport> findAllLiveInstances(String appname)
|
||||
public ApplicationReport findInstance(String appname) throws
|
||||
YarnException,
|
||||
IOException {
|
||||
List<ApplicationReport> instances = listInstances(null, appname);
|
||||
return findInstance(appname, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Find an instance of a application belong to the current user in specific
|
||||
* app states.
|
||||
* @param appname application name
|
||||
* @param appStates list of states in which application should be in
|
||||
* @return the app report or null if none is found
|
||||
* @throws YarnException YARN issues
|
||||
* @throws IOException IO problems
|
||||
*/
|
||||
public ApplicationReport findInstance(String appname,
|
||||
EnumSet<YarnApplicationState> appStates)
|
||||
throws YarnException, IOException {
|
||||
List<ApplicationReport> instances = listInstances(null, appname, appStates);
|
||||
return yarnClient.findClusterInInstanceList(instances, appname);
|
||||
}
|
||||
|
||||
@ -111,21 +127,44 @@ public List<ApplicationReport> listInstances(String user)
|
||||
}
|
||||
|
||||
/**
|
||||
* List all instances belonging to a specific user and a specific appname.
|
||||
* List all instances belonging to a specific user with a specific app name.
|
||||
*
|
||||
* @param user
|
||||
* user if not the default. null means default, "" means all users,
|
||||
* otherwise it is the name of a user
|
||||
* @param appname
|
||||
* @param appName
|
||||
* application name set as an application tag
|
||||
* @return a possibly empty list of AMs
|
||||
* @throws YarnException
|
||||
* @throws IOException
|
||||
*/
|
||||
public List<ApplicationReport> listInstances(String user, String appname)
|
||||
public List<ApplicationReport> listInstances(String user, String appName)
|
||||
throws YarnException, IOException {
|
||||
return listInstances(user, appName, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* List all instances belonging to a specific user, with a specific app name
|
||||
* and in specific app states.
|
||||
*
|
||||
* @param user
|
||||
* user if not the default. null means default, "" means all users,
|
||||
* otherwise it is the name of a user
|
||||
* @param appName
|
||||
* application name set as an application tag
|
||||
* @param appStates
|
||||
* a set of application states within which the app should be in
|
||||
* @return a possibly empty list of AMs
|
||||
* @throws YarnException
|
||||
* @throws IOException
|
||||
*/
|
||||
public List<ApplicationReport> listInstances(String user, String appName,
|
||||
EnumSet<YarnApplicationState> appStates)
|
||||
throws YarnException, IOException {
|
||||
log.debug("listInstances called with user: {}, appName: {}, appStates: {}",
|
||||
user, appName, appStates);
|
||||
String listUser = user == null ? username : user;
|
||||
return yarnClient.listDeployedInstances(listUser, null, appname);
|
||||
return yarnClient.listDeployedInstances(listUser, appStates, appName);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user