IDEA-188758 RunDashboard: disable executor actions when single instance RC is starting

This commit is contained in:
Konstantin Aleev
2018-06-26 14:38:06 +03:00
parent 7e27ae2fb3
commit fe2dc92e5c
@@ -76,7 +76,24 @@ public abstract class ExecutorAction extends RunDashboardTreeLeafAction<RunDashb
runner != null &&
runner.canRun(executorId, configurationSettings.getConfiguration()) &&
ExecutionTargetManager.canRun(configurationSettings, target) &&
!ExecutorRegistry.getInstance().isStarting(node.getProject(), executorId, runner.getRunnerId());
!isStarting(node.getProject(), configurationSettings, executorId, runner.getRunnerId());
}
private static boolean isStarting(Project project, RunnerAndConfigurationSettings configurationSettings, String executorId, String runnerId) {
ExecutorRegistry executorRegistry = ExecutorRegistry.getInstance();
if (executorRegistry.isStarting(project, executorId, runnerId)) return true;
if (!configurationSettings.isSingleton()) return false;
for (Executor executor : executorRegistry.getRegisteredExecutors()) {
if (executor.getId().equals(executorId)) continue;
ProgramRunner runner = ProgramRunnerUtil.getRunner(executor.getId(), configurationSettings);
if (runner == null) continue;
if (executorRegistry.isStarting(project, executor.getId(), runner.getRunnerId())) return true;
}
return false;
}
private boolean isValid(RunDashboardRunConfigurationNode node) {