[ZEPPELIN-1376] Raise clear error message in case of dependencies download failure

This commit is contained in:
DuyHai DOAN 2016-08-26 20:48:06 +02:00 committed by doanduyhai
parent 6f2b6f8e24
commit f01be9bfca
4 changed files with 13 additions and 10 deletions

View file

@ -42,6 +42,7 @@ import org.sonatype.aether.util.artifact.DefaultArtifact;
import org.sonatype.aether.util.artifact.JavaScopes;
import org.sonatype.aether.util.filter.DependencyFilterUtils;
import org.sonatype.aether.util.filter.PatternExclusionsDependencyFilter;
import org.sonatype.aether.util.graph.DefaultDependencyNode;
/**
@ -164,7 +165,8 @@ public class DependencyResolver extends AbstractDependencyResolver {
new PatternExclusionsDependencyFilter(excludes);
CollectRequest collectRequest = new CollectRequest();
collectRequest.setRoot(new Dependency(artifact, JavaScopes.COMPILE));
final Dependency rootDependency = new Dependency(artifact, JavaScopes.COMPILE);
collectRequest.setRoot(rootDependency);
synchronized (repos) {
for (RemoteRepository repo : repos) {
@ -173,6 +175,7 @@ public class DependencyResolver extends AbstractDependencyResolver {
}
DependencyRequest dependencyRequest = new DependencyRequest(collectRequest,
DependencyFilterUtils.andFilter(exclusionFilter, classpathFilter));
dependencyRequest.setRoot(new DefaultDependencyNode(rootDependency));
return system.resolveDependencies(session, dependencyRequest).getArtifactResults();
}
}

View file

@ -35,7 +35,6 @@ import com.google.gson.Gson;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonatype.aether.RepositoryException;
import org.sonatype.aether.repository.RemoteRepository;
import org.apache.zeppelin.annotation.ZeppelinApi;
@ -73,9 +72,7 @@ public class InterpreterRestApi {
@Path("setting")
@ZeppelinApi
public Response listSettings() {
List<InterpreterSetting> interpreterSettings;
interpreterSettings = interpreterFactory.get();
return new JsonResponse<>(Status.OK, "", interpreterSettings).build();
return new JsonResponse<>(Status.OK, "", interpreterFactory.get()).build();
}
/**

View file

@ -109,9 +109,13 @@
var checkDownloadingDependencies = function() {
var isDownloading = false;
for (var setting = 0; setting < $scope.interpreterSettings.length; setting++) {
if ($scope.interpreterSettings[setting].status === 'DOWNLOADING_DEPENDENCIES') {
var setting = $scope.interpreterSettings[setting];
if (setting.status === 'DOWNLOADING_DEPENDENCIES') {
isDownloading = true;
break;
} else if (setting.status === 'ERROR') {
ngToast.danger({content: 'Error setting properties for interpreter \'' +
setting.group + '.' + setting.name + '\': ' + setting.errorReason,
verticalPosition: 'top', dismissOnTimeout: false});
}
}
if (isDownloading) {
@ -236,7 +240,6 @@
$scope.interpreterSettings[index] = data.body;
removeTMPSettings(index);
thisConfirm.close();
checkDownloadingDependencies();
$route.reload();
})
.error(function(data, status, headers, config) {

View file

@ -464,8 +464,8 @@ public class InterpreterFactory implements InterpreterGroupFactory {
} catch (Exception e) {
logger.error(String.format("Error while downloading repos for interpreter group : %s," +
" go to interpreter setting page click on edit and save it again to make " +
"this interpreter work properly.",
setting.getGroup()), e);
"this interpreter work properly. : %s",
setting.getGroup(), e.getLocalizedMessage()), e);
setting.setErrorReason(e.getLocalizedMessage());
setting.setStatus(InterpreterSetting.Status.ERROR);
} finally {