You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by di...@apache.org on 2024/02/21 10:13:30 UTC
(superset) 08/10: Clean up
This is an automated email from the ASF dual-hosted git repository.
diegopucci pushed a commit to branch diego/ch78628/fix-disabled-ssh-toggle
in repository https://gitbox.apache.org/repos/asf/superset.git
commit beba29db729b7b3ecaa30e8e15133a9239a38d52
Author: geido <di...@gmail.com>
AuthorDate: Tue Feb 20 16:25:31 2024 +0200
Clean up
---
.../src/features/databases/DatabaseModal/index.tsx | 23 +++++++++-------------
superset-frontend/src/views/CRUD/hooks.ts | 2 +-
superset/databases/api.py | 2 +-
3 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/superset-frontend/src/features/databases/DatabaseModal/index.tsx b/superset-frontend/src/features/databases/DatabaseModal/index.tsx
index 3607e5e400..eab71d02da 100644
--- a/superset-frontend/src/features/databases/DatabaseModal/index.tsx
+++ b/superset-frontend/src/features/databases/DatabaseModal/index.tsx
@@ -756,6 +756,9 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
const onSave = async () => {
let dbConfigExtraExtensionOnSaveError;
+
+ setLoading(true);
+
dbConfigExtraExtension
?.onSave(extraExtensionComponentState, db)
.then(({ error }: { error: any }) => {
@@ -764,6 +767,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
addDangerToast(error);
}
});
+
if (dbConfigExtraExtensionOnSaveError) {
setLoading(false);
return;
@@ -783,17 +787,10 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
});
}
- // only do validation for non ssh tunnel connections
- if (!dbToUpdate?.parameters?.ssh) {
- // make sure that button spinner animates
- setLoading(true);
- const errors = await getValidation(dbToUpdate, true);
- if ((validationErrors && !isEmpty(validationErrors)) || errors) {
- setLoading(false);
- return;
- }
- // end spinner animation
+ const errors = await getValidation(dbToUpdate, true);
+ if ((validationErrors && !isEmpty(validationErrors)) || errors) {
setLoading(false);
+ return;
}
const parameters_schema = isEditMode
@@ -850,8 +847,6 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
});
}
- setLoading(true);
-
// strictly checking for false as an indication that the toggle got unchecked
if (isSSHTunneling && useSSHTunneling === false) {
// remove ssh tunnel
@@ -1542,8 +1537,8 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
typeof dbErrors === 'object'
? Object.values(dbErrors)
: typeof dbErrors === 'string'
- ? [dbErrors]
- : [];
+ ? [dbErrors]
+ : [];
} else if (
!isEmpty(validationErrors) &&
validationErrors?.error_type === 'GENERIC_DB_ENGINE_ERROR'
diff --git a/superset-frontend/src/views/CRUD/hooks.ts b/superset-frontend/src/views/CRUD/hooks.ts
index 85f7c60252..bd6607d31b 100644
--- a/superset-frontend/src/views/CRUD/hooks.ts
+++ b/superset-frontend/src/views/CRUD/hooks.ts
@@ -745,7 +745,7 @@ export function useDatabaseValidation() {
const getValidation = useCallback(
(database: Partial<DatabaseObject> | null, onCreate = false) => {
if (database?.parameters?.ssh) {
- // when ssh tunnel is enabled we don't want to render any validation errors
+ // TODO: /validate_parameters/ and related utils should support ssh tunnel
setValidationErrors(null);
return [];
}
diff --git a/superset/databases/api.py b/superset/databases/api.py
index e6aca61a20..4d7d4c531a 100644
--- a/superset/databases/api.py
+++ b/superset/databases/api.py
@@ -919,7 +919,7 @@ class DatabaseRestApi(BaseSupersetModelRestApi):
try:
TestConnectionDatabaseCommand(item).run()
return self.response(200, message="OK")
- except SSHTunnelingNotEnabledError as ex:
+ except (SSHTunnelingNotEnabledError, SSHTunnelDatabasePortError) as ex:
return self.response_400(message=str(ex))
@expose("/<int:pk>/related_objects/", methods=("GET",))