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/07/30 14:40:34 UTC
(superset) branch master updated: fix(Database): Refresh catalogs on db update returns database error (#29681)
This is an automated email from the ASF dual-hosted git repository.
diegopucci pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 134ca38b8d fix(Database): Refresh catalogs on db update returns database error (#29681)
134ca38b8d is described below
commit 134ca38b8d94c909991df6a74c7bb790205355e1
Author: Geido <60...@users.noreply.github.com>
AuthorDate: Tue Jul 30 17:40:28 2024 +0300
fix(Database): Refresh catalogs on db update returns database error (#29681)
---
superset/commands/database/update.py | 49 ++++++++++++++++++++----------------
1 file changed, 28 insertions(+), 21 deletions(-)
diff --git a/superset/commands/database/update.py b/superset/commands/database/update.py
index 28f895b2f6..75aebf322b 100644
--- a/superset/commands/database/update.py
+++ b/superset/commands/database/update.py
@@ -166,36 +166,43 @@ class UpdateDatabaseCommand(BaseCommand):
)
for catalog in catalogs:
- schemas = self._get_schema_names(database, catalog, ssh_tunnel)
+ try:
+ schemas = self._get_schema_names(database, catalog, ssh_tunnel)
- if catalog:
- perm = security_manager.get_catalog_perm(
- original_database_name,
- catalog,
- )
- existing_pvm = security_manager.find_permission_view_menu(
- "catalog_access",
- perm,
- )
- if not existing_pvm:
- # new catalog
- security_manager.add_permission_view_menu(
+ if catalog:
+ perm = security_manager.get_catalog_perm(
+ original_database_name,
+ catalog,
+ )
+ existing_pvm = security_manager.find_permission_view_menu(
"catalog_access",
- security_manager.get_catalog_perm(
- database.database_name,
- catalog,
- ),
+ perm,
)
- for schema in schemas:
+ if not existing_pvm:
+ # new catalog
security_manager.add_permission_view_menu(
- "schema_access",
- security_manager.get_schema_perm(
+ "catalog_access",
+ security_manager.get_catalog_perm(
database.database_name,
catalog,
- schema,
),
)
+ for schema in schemas:
+ security_manager.add_permission_view_menu(
+ "schema_access",
+ security_manager.get_schema_perm(
+ database.database_name,
+ catalog,
+ schema,
+ ),
+ )
+ continue
+ except DatabaseConnectionFailedError:
+ # more than one catalog, move to next
+ if catalog:
+ logger.warning("Error processing catalog %s", catalog)
continue
+ raise
# add possible new schemas in catalog
self._refresh_schemas(