From dd5e3c6c68077268d3d551857e508d914ed1d3f9 Mon Sep 17 00:00:00 2001 From: guerler Date: Mon, 17 Dec 2018 13:08:39 -0500 Subject: [PATCH 1/9] Move error stack controller endpoint to tools api --- lib/galaxy/webapps/galaxy/api/tools.py | 10 ++++++++++ lib/galaxy/webapps/galaxy/buildapp.py | 1 + lib/galaxy/webapps/galaxy/controllers/admin.py | 6 ------ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/api/tools.py b/lib/galaxy/webapps/galaxy/api/tools.py index 4175723548d..1bce29bb591 100644 --- a/lib/galaxy/webapps/galaxy/api/tools.py +++ b/lib/galaxy/webapps/galaxy/api/tools.py @@ -4,6 +4,7 @@ from json import dumps import galaxy.queue_worker from galaxy import exceptions, managers, util, web from galaxy.managers.collections_util import dictify_dataset_collection_instance +from galaxy.tools import global_tool_errors from galaxy.util.json import safe_dumps from galaxy.util.odict import odict from galaxy.visualization.genomes import GenomeRegion @@ -404,6 +405,15 @@ class ToolsController(BaseAPIController, UsesVisualizationMixin): create_payload.update(files_payload) return self._create(trans, create_payload, **kwd) + @expose_api + @web.require_admin + def error_stack(self, trans, **kwd): + """ + POST /api/tools/error_stack + Returns global tool error stack + """ + return global_tool_errors.error_stack + @expose_api_anonymous def create(self, trans, payload, **kwd): """ diff --git a/lib/galaxy/webapps/galaxy/buildapp.py b/lib/galaxy/webapps/galaxy/buildapp.py index 20f7f361258..47a08c9d31b 100644 --- a/lib/galaxy/webapps/galaxy/buildapp.py +++ b/lib/galaxy/webapps/galaxy/buildapp.py @@ -319,6 +319,7 @@ def populate_api_routes(webapp, app): webapp.mapper.connect('/api/tools/fetch', action='fetch', controller='tools', conditions=dict(method=["POST"])) webapp.mapper.connect('/api/tools/all_requirements', action='all_requirements', controller="tools") + webapp.mapper.connect('/api/tools/error_stack', action='error_stack', controller="tools") webapp.mapper.connect('/api/tools/{id:.+?}/build', action='build', controller="tools") webapp.mapper.connect('/api/tools/{id:.+?}/reload', action='reload', controller="tools") webapp.mapper.connect('/api/tools/tests_summary', action='tests_summary', controller="tools") diff --git a/lib/galaxy/webapps/galaxy/controllers/admin.py b/lib/galaxy/webapps/galaxy/controllers/admin.py index 0b2a263a275..72109145d61 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin.py @@ -17,7 +17,6 @@ from galaxy import ( from galaxy.actions.admin import AdminActions from galaxy.exceptions import ActionInputError, MessageException from galaxy.model import tool_shed_install as install_model -from galaxy.tools import global_tool_errors from galaxy.util import ( nice_size, sanitize_text, @@ -903,11 +902,6 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP message=message, status=status) - @web.expose - @web.require_admin - def tool_errors(self, trans, **kwd): - return trans.fill_template('admin/tool_errors.mako', tool_errors=global_tool_errors.error_stack) - @web.expose @web.require_admin def display_applications(self, trans, **kwd): From 3665ef056d377960edd92b558fcf903f9280a204 Mon Sep 17 00:00:00 2001 From: guerler Date: Mon, 17 Dec 2018 14:04:13 -0500 Subject: [PATCH 2/9] Add error stack vue component and client side routes --- client/galaxy/scripts/apps/admin.js | 7 +++ .../galaxy/scripts/apps/panels/admin-panel.js | 3 +- .../scripts/components/admin/AdminServices.js | 7 +++ .../scripts/components/admin/ErrorStack.vue | 54 +++++++++++++++++++ lib/galaxy/webapps/galaxy/buildapp.py | 1 + 5 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 client/galaxy/scripts/components/admin/AdminServices.js create mode 100644 client/galaxy/scripts/components/admin/ErrorStack.vue diff --git a/client/galaxy/scripts/apps/admin.js b/client/galaxy/scripts/apps/admin.js index c52f399ba58..caa631c8daf 100644 --- a/client/galaxy/scripts/apps/admin.js +++ b/client/galaxy/scripts/apps/admin.js @@ -14,6 +14,7 @@ import DataTables from "components/admin/DataTables.vue"; import DataTypes from "components/admin/DataTypes.vue"; import DataManagerView from "components/admin/DataManager/DataManagerView.vue"; import DataManagerRouter from "components/admin/DataManager/DataManagerRouter.vue"; +import ErrorStack from "components/admin/ErrorStack.vue"; import Vue from "vue"; import { serverPath } from "utils/serverPath"; @@ -33,6 +34,7 @@ window.app = function app(options, bootstrapped) { "(/)admin(/)users": "show_users", "(/)admin(/)roles": "show_roles", "(/)admin(/)groups": "show_groups", + "(/)admin(/)error_stack": "show_error_stack", "(/)admin(/)tool_versions": "show_tool_versions", "(/)admin(/)quotas": "show_quotas", "(/)admin(/)repositories": "show_repositories", @@ -120,10 +122,15 @@ window.app = function app(options, bootstrapped) { show_data_tables: function() { this._display_vue_helper(DataTables); }, + show_data_types: function() { this._display_vue_helper(DataTypes); }, + show_error_stack: function() { + this._display_vue_helper(ErrorStack); + }, + show_data_manager: function(path) { let vueMount = document.createElement("div"); this.page.display(vueMount); diff --git a/client/galaxy/scripts/apps/panels/admin-panel.js b/client/galaxy/scripts/apps/panels/admin-panel.js index e77995c4e0a..0d6d6929abf 100644 --- a/client/galaxy/scripts/apps/panels/admin-panel.js +++ b/client/galaxy/scripts/apps/panels/admin-panel.js @@ -132,7 +132,8 @@ var AdminPanel = Backbone.View.extend({ }, { title: _l("View error logs"), - url: "admin/tool_errors" + url: "admin/error_stack", + target: "__use_router__" } ] } diff --git a/client/galaxy/scripts/components/admin/AdminServices.js b/client/galaxy/scripts/components/admin/AdminServices.js new file mode 100644 index 00000000000..c70276f7e55 --- /dev/null +++ b/client/galaxy/scripts/components/admin/AdminServices.js @@ -0,0 +1,7 @@ +import { getAppRoot } from "onload/loadConfig"; +import axios from "axios"; + +export function getErrorStack() { + let url = `${getAppRoot()}api/tools/error_stack`; + return axios.get(url); +} diff --git a/client/galaxy/scripts/components/admin/ErrorStack.vue b/client/galaxy/scripts/components/admin/ErrorStack.vue new file mode 100644 index 00000000000..c7d69e804fe --- /dev/null +++ b/client/galaxy/scripts/components/admin/ErrorStack.vue @@ -0,0 +1,54 @@ + + diff --git a/lib/galaxy/webapps/galaxy/buildapp.py b/lib/galaxy/webapps/galaxy/buildapp.py index 47a08c9d31b..7d24c804f1a 100644 --- a/lib/galaxy/webapps/galaxy/buildapp.py +++ b/lib/galaxy/webapps/galaxy/buildapp.py @@ -102,6 +102,7 @@ def app_factory(global_conf, load_app_kwds={}, **kwargs): webapp.add_client_route('/admin/data_tables', 'admin') webapp.add_client_route('/admin/data_types', 'admin') webapp.add_client_route('/admin/data_manager{path_info:.*}', 'admin') + webapp.add_client_route('/admin/error_stack', 'admin') webapp.add_client_route('/admin/users', 'admin') webapp.add_client_route('/admin/roles', 'admin') webapp.add_client_route('/admin/forms', 'admin') From 8eceb76ee1e36ae14403ccfbaf082ed6395451b6 Mon Sep 17 00:00:00 2001 From: guerler Date: Mon, 17 Dec 2018 14:11:36 -0500 Subject: [PATCH 3/9] Remove legacy tool error mako file --- templates/admin/tool_errors.mako | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 templates/admin/tool_errors.mako diff --git a/templates/admin/tool_errors.mako b/templates/admin/tool_errors.mako deleted file mode 100644 index 7843f0034ff..00000000000 --- a/templates/admin/tool_errors.mako +++ /dev/null @@ -1,27 +0,0 @@ -<%inherit file="/base.mako"/> - -<%def name="title()">Tool Errors - -

Tool Errors

- -

-Internal Tool Error log -

- - - - - - - - -%for error in tool_errors: - - - - - - -%endfor -
TimePhaseFileError
${error['time']}${error['phase']}${error['file']}${error['error']}
- From 481243c3ed0a31ebde7a4ed85592e7068e5e4b45 Mon Sep 17 00:00:00 2001 From: guerler Date: Mon, 17 Dec 2018 14:13:11 -0500 Subject: [PATCH 4/9] Remove unused attribute --- client/galaxy/scripts/components/admin/ErrorStack.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/client/galaxy/scripts/components/admin/ErrorStack.vue b/client/galaxy/scripts/components/admin/ErrorStack.vue index c7d69e804fe..2315743f155 100644 --- a/client/galaxy/scripts/components/admin/ErrorStack.vue +++ b/client/galaxy/scripts/components/admin/ErrorStack.vue @@ -24,8 +24,7 @@ export default { { key: 'file' }, { key: 'error' } ], - messageText: null, - messageClass: null + messageText: null }; }, computed: { From 462303043d47437486fb0d6df5b65d43f8235790 Mon Sep 17 00:00:00 2001 From: guerler Date: Mon, 17 Dec 2018 14:15:40 -0500 Subject: [PATCH 5/9] Remove unused tag in vue component --- client/galaxy/scripts/components/admin/ErrorStack.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/client/galaxy/scripts/components/admin/ErrorStack.vue b/client/galaxy/scripts/components/admin/ErrorStack.vue index 2315743f155..0ed7e576cfc 100644 --- a/client/galaxy/scripts/components/admin/ErrorStack.vue +++ b/client/galaxy/scripts/components/admin/ErrorStack.vue @@ -6,8 +6,7 @@
No errors available.
- - +