Skip to content

Commit

Permalink
feat: adding logging to validation (apache#16527)
Browse files Browse the repository at this point in the history
* adding logging to validation

* Update superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
  • Loading branch information
AAfghahi and betodealmeida authored Sep 13, 2021
1 parent b946e8f commit 0fafd7c
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -908,14 +908,14 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
/>
);
}

const message: Array<string> = Object.values(dbErrors);
const message: Array<string> =
typeof dbErrors === 'object' ? Object.values(dbErrors) : [];
return (
<Alert
type="error"
css={(theme: SupersetTheme) => antDErrorAlertStyles(theme)}
message="Database Creation Error"
description={message[0]}
description={message?.[0] || dbErrors}
/>
);
};
Expand Down
4 changes: 4 additions & 0 deletions superset/databases/commands/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ def run(self) -> None:
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)
Expand Down
2 changes: 2 additions & 0 deletions superset/databases/commands/validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
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"}
Expand Down Expand Up @@ -89,6 +90,7 @@ def run(self) -> None:
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", "{}")
Expand Down

0 comments on commit 0fafd7c

Please sign in to comment.