feat(ssh_tunnel): Add feature flag to SSH Tunnel API (#22805)

This commit is contained in:
Antonio Rivero Martinez
2023-01-26 21:53:36 -03:00
committed by GitHub
parent 0045816772
commit d6a4a5da79
10 changed files with 171 additions and 19 deletions

View File

@@ -75,6 +75,7 @@ from superset.databases.schemas import (
from superset.databases.ssh_tunnel.commands.delete import DeleteSSHTunnelCommand
from superset.databases.ssh_tunnel.commands.exceptions import (
SSHTunnelDeleteFailedError,
SSHTunnelingNotEnabledError,
SSHTunnelNotFoundError,
)
from superset.databases.utils import get_table_metadata
@@ -349,6 +350,8 @@ class DatabaseRestApi(BaseSupersetModelRestApi):
exc_info=True,
)
return self.response_422(message=str(ex))
except SSHTunnelingNotEnabledError as ex:
return self.response_400(message=str(ex))
except SupersetException as ex:
return self.response(ex.status, message=ex.message)
@@ -433,6 +436,8 @@ class DatabaseRestApi(BaseSupersetModelRestApi):
exc_info=True,
)
return self.response_422(message=str(ex))
except SSHTunnelingNotEnabledError as ex:
return self.response_400(message=str(ex))
@expose("/<int:pk>", methods=["DELETE"])
@protect()
@@ -782,8 +787,11 @@ class DatabaseRestApi(BaseSupersetModelRestApi):
# This validates custom Schema with custom validations
except ValidationError as error:
return self.response_400(message=error.messages)
TestConnectionDatabaseCommand(item).run()
return self.response(200, message="OK")
try:
TestConnectionDatabaseCommand(item).run()
return self.response(200, message="OK")
except SSHTunnelingNotEnabledError as ex:
return self.response_400(message=str(ex))
@expose("/<int:pk>/related_objects/", methods=["GET"])
@protect()
@@ -1320,3 +1328,11 @@ class DatabaseRestApi(BaseSupersetModelRestApi):
exc_info=True,
)
return self.response_422(message=str(ex))
except SSHTunnelingNotEnabledError as ex:
logger.error(
"Error deleting SSH Tunnel %s: %s",
self.__class__.__name__,
str(ex),
exc_info=True,
)
return self.response_400(message=str(ex))