diff options
author | Kunal Khatua <kkhatua@maprtech.com> | 2019-02-22 13:41:02 -0800 |
---|---|---|
committer | Gautam Parai <gparai@apache.org> | 2019-02-22 23:33:35 -0800 |
commit | c17c59cddcced703c9852038e957147c502d17aa (patch) | |
tree | 5b7685a5479394971afe8befd1744b79eb90705a /exec/java-exec/src/main/java/org | |
parent | 110c3578aa18f596278e251d700c8fa9ada8b0c4 (diff) |
DRILL-7036: Improve UI for alert and error messages
closes #1644
This PR standardizes error and alert messages to a cleaner interface by leveraging Bootstraps UX elements for publishing the messages in a presentable format.
Exceptions reported back to the browser and rendered in a neat tabular format (using Panels)
All errors can be redirected to errorMessage.ftl which will render it in a neat format.
Alerts are replaced with modals.
Interactions (pages) affected by Alert modals
1. Missing Query submission
2. profile Query Rerun
3. invalid Profile Listing Fetch
4. invalid Option Value for update
5. Missing username/password submission
The errorMessage.ftl has been moved to root dir, and unused `error.ftl` was removed
Diffstat (limited to 'exec/java-exec/src/main/java/org')
3 files changed, 17 insertions, 6 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogsResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogsResources.java index a4d92f4d5..51cf994d9 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogsResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogsResources.java @@ -56,6 +56,7 @@ import static org.apache.drill.exec.server.rest.auth.DrillUserPrincipal.ADMIN_RO @Path("/") @RolesAllowed(ADMIN_ROLE) public class LogsResources { + private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(LogsResources.class); @Inject DrillRestServer.UserAuthEnabled authEnabled; @Inject SecurityContext sc; @@ -96,8 +97,13 @@ public class LogsResources { @Path("/log/{name}/content") @Produces(MediaType.TEXT_HTML) public Viewable getLog(@PathParam("name") String name) throws IOException { - LogContent content = getLogJSON(name); - return ViewableWithPermissions.create(authEnabled.get(), "/rest/logs/log.ftl", sc, content); + try { + LogContent content = getLogJSON(name); + return ViewableWithPermissions.create(authEnabled.get(), "/rest/logs/log.ftl", sc, content); + } catch (Exception | Error e) { + logger.error("Exception was thrown when fetching log {} :\n{}", name, e); + return ViewableWithPermissions.create(authEnabled.get(), "/rest/errorMessage.ftl", sc, e); + } } @GET diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/QueryResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/QueryResources.java index e62d33d7a..d6d9a21f3 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/QueryResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/QueryResources.java @@ -92,8 +92,8 @@ public class QueryResources { final String rowsPerPageValuesAsStr = Joiner.on(",").join(rowsPerPageValues); return ViewableWithPermissions.create(authEnabled.get(), "/rest/query/result.ftl", sc, new TabularResult(result, rowsPerPageValuesAsStr)); } catch (Exception | Error e) { - logger.error("Query from Web UI Failed", e); - return ViewableWithPermissions.create(authEnabled.get(), "/rest/query/errorMessage.ftl", sc, e); + logger.error("Query from Web UI Failed: {}", e); + return ViewableWithPermissions.create(authEnabled.get(), "/rest/errorMessage.ftl", sc, e); } } diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java index e88b57cb4..86e3ddeb4 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java @@ -376,8 +376,13 @@ public class ProfileResources { @Path("/profiles/{queryid}") @Produces(MediaType.TEXT_HTML) public Viewable getProfile(@PathParam("queryid") String queryId){ - ProfileWrapper wrapper = new ProfileWrapper(getQueryProfile(queryId), work.getContext().getConfig()); - return ViewableWithPermissions.create(authEnabled.get(), "/rest/profile/profile.ftl", sc, wrapper); + try { + ProfileWrapper wrapper = new ProfileWrapper(getQueryProfile(queryId), work.getContext().getConfig()); + return ViewableWithPermissions.create(authEnabled.get(), "/rest/profile/profile.ftl", sc, wrapper); + } catch (Exception | Error e) { + logger.error("Exception was thrown when fetching profile {} :\n{}", queryId, e); + return ViewableWithPermissions.create(authEnabled.get(), "/rest/errorMessage.ftl", sc, e); + } } @SuppressWarnings("resource") |