chore: Add `USER_CLIENT_ERRORS` to stop logging exceptions that are user driven (#21818)

This commit is contained in:
Hugh A. Miles II 2022-10-15 11:31:31 -04:00 committed by GitHub
parent 4c1777f20d
commit 6f2e76bc09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 3 deletions

View File

@ -18,7 +18,7 @@
from __future__ import annotations
import logging
from typing import Any, Dict, Optional, TYPE_CHECKING
from typing import Any, Dict, Optional, Set, TYPE_CHECKING
from flask_babel import gettext as __
@ -53,6 +53,13 @@ logger = logging.getLogger(__name__)
CommandResult = Dict[str, Any]
# Define set of users client errors these definitions won't
# be logged as exception vs. warning
USER_CLIENT_ERRORS: Set[SupersetErrorType] = {
SupersetErrorType.SYNTAX_ERROR,
SupersetErrorType.COLUMN_DOES_NOT_EXIST_ERROR,
}
class ExecuteSqlCommand(BaseCommand):
_execution_context: SqlJsonExecutionContext
@ -116,11 +123,11 @@ class ExecuteSqlCommand(BaseCommand):
"payload": self._execution_context_convertor.serialize_payload(),
}
except SupersetErrorsException as ex:
if all(ex.error_type == SupersetErrorType.SYNTAX_ERROR for ex in ex.errors):
if all(ex.error_type in USER_CLIENT_ERRORS for ex in ex.errors):
raise SupersetSyntaxErrorException(ex.errors) from ex
raise ex
except SupersetException as ex:
if ex.error_type == SupersetErrorType.SYNTAX_ERROR:
if ex.error_type in USER_CLIENT_ERRORS:
raise SupersetSyntaxErrorException(
[
SupersetError(