ktmud commented on a change in pull request #10274:
URL:
https://github.com/apache/incubator-superset/pull/10274#discussion_r454127147
##########
File path: superset/errors.py
##########
@@ -46,6 +47,23 @@ class SupersetErrorType(str, Enum):
DATASOURCE_SECURITY_ACCESS_ERROR = "DATASOURCE_SECURITY_ACCESS_ERROR"
MISSING_OWNERSHIP_ERROR = "MISSING_OWNERSHIP_ERROR"
+ # Other errors
+ BACKEND_TIMEOUT_ERROR = "BACKEND_TIMEOUT_ERROR"
+
+
+ERROR_TYPES_TO_ERROR_CODES_MAPPING = {
+ SupersetErrorType.BACKEND_TIMEOUT_ERROR: [
+ {
+ "code": 1000,
+ "message": _("Error 1000 - The datasource is too large to query."),
+ },
+ {
+ "code": 1001,
+ "message": _("Error 1001 - The database is under an unusual
load."),
+ },
+ ]
+}
Review comment:
I've expanded my thoughts a little and here's a more detailed example:
https://gist.github.com/ktmud/59ccbdf6c96570e1ffe41ee8e5ecd479
Let me know if anything was unclear.
Even if an error may represent different root causes, we can return a
generic error code and potential causes in `extras` if needed. If the backend
is able to identify the root cause, then cool, we return a more specific error
code. But there doesn't have to be another layer of abstraction with all the
mappings.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]