From 376c685838f6c5bf90132106b9acb66b45256487 Mon Sep 17 00:00:00 2001 From: AAfghahi <48933336+AAfghahi@users.noreply.github.com> Date: Mon, 13 Sep 2021 19:09:40 -0400 Subject: [PATCH] feat: adding logging to validation (#16527) * adding logging to validation * Update superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx Co-authored-by: Beto Dealmeida Co-authored-by: Beto Dealmeida --- .../src/views/CRUD/data/database/DatabaseModal/index.tsx | 6 +++--- superset/databases/commands/test_connection.py | 4 ++++ superset/databases/commands/validate.py | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx index 55bceb736..82db9e7f1 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx @@ -908,14 +908,14 @@ const DatabaseModal: FunctionComponent = ({ /> ); } - - const message: Array = Object.values(dbErrors); + const message: Array = + typeof dbErrors === 'object' ? Object.values(dbErrors) : []; return ( antDErrorAlertStyles(theme)} message="Database Creation Error" - description={message[0]} + description={message?.[0] || dbErrors} /> ); }; diff --git a/superset/databases/commands/test_connection.py b/superset/databases/commands/test_connection.py index 7b2f4da68..2d44bed94 100644 --- a/superset/databases/commands/test_connection.py +++ b/superset/databases/commands/test_connection.py @@ -72,6 +72,10 @@ class TestConnectionDatabaseCommand(BaseCommand): database.db_engine_spec.mutate_db_for_connection_test(database) username = self._actor.username if self._actor is not None else None engine = database.get_sqla_engine(user_name=username) + event_logger.log_with_context( + action="test_connection_attempt", + engine=database.db_engine_spec.__name__, + ) with closing(engine.raw_connection()) as conn: try: alive = engine.dialect.do_ping(conn) diff --git a/superset/databases/commands/validate.py b/superset/databases/commands/validate.py index 27633d2c1..e2dcc581d 100644 --- a/superset/databases/commands/validate.py +++ b/superset/databases/commands/validate.py @@ -33,6 +33,7 @@ from superset.databases.dao import DatabaseDAO from superset.db_engine_specs import get_engine_specs from superset.db_engine_specs.base import BasicParametersMixin from superset.errors import ErrorLevel, SupersetError, SupersetErrorType +from superset.extensions import event_logger from superset.models.core import Database BYPASS_VALIDATION_ENGINES = {"bigquery"} @@ -89,6 +90,7 @@ class ValidateDatabaseParametersCommand(BaseCommand): self._properties.get("parameters", {}) ) if errors: + event_logger.log_with_context(action="validation_error", engine=engine) raise InvalidParametersError(errors) serialized_encrypted_extra = self._properties.get("encrypted_extra", "{}")