change name to Basic instead of Base (#14625)
This commit is contained in:
parent
1e601483e3
commit
3a81e6aee8
|
|
@ -66,7 +66,7 @@ from superset.databases.schemas import (
|
|||
)
|
||||
from superset.databases.utils import get_table_metadata
|
||||
from superset.db_engine_specs import get_available_engine_specs
|
||||
from superset.db_engine_specs.base import BaseParametersMixin
|
||||
from superset.db_engine_specs.base import BasicParametersMixin
|
||||
from superset.exceptions import InvalidPayloadFormatError, InvalidPayloadSchemaError
|
||||
from superset.extensions import security_manager
|
||||
from superset.models.core import Database
|
||||
|
|
@ -904,7 +904,7 @@ class DatabaseRestApi(BaseSupersetModelRestApi):
|
|||
"preferred": engine_spec.engine in preferred_databases,
|
||||
}
|
||||
|
||||
if issubclass(engine_spec, BaseParametersMixin):
|
||||
if issubclass(engine_spec, BasicParametersMixin):
|
||||
payload["parameters"] = engine_spec.parameters_json_schema()
|
||||
payload[
|
||||
"sqlalchemy_uri_placeholder"
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ from superset.databases.commands.exceptions import (
|
|||
)
|
||||
from superset.databases.dao import DatabaseDAO
|
||||
from superset.db_engine_specs import get_engine_specs
|
||||
from superset.db_engine_specs.base import BaseParametersMixin
|
||||
from superset.db_engine_specs.base import BasicParametersMixin
|
||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||
from superset.models.core import Database
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ class ValidateDatabaseParametersCommand(BaseCommand):
|
|||
),
|
||||
)
|
||||
engine_spec = engine_specs[engine]
|
||||
if not issubclass(engine_spec, BaseParametersMixin):
|
||||
if not issubclass(engine_spec, BasicParametersMixin):
|
||||
raise InvalidEngineError(
|
||||
SupersetError(
|
||||
message=__(
|
||||
|
|
@ -69,7 +69,7 @@ class ValidateDatabaseParametersCommand(BaseCommand):
|
|||
"allowed": [
|
||||
name
|
||||
for name, engine_spec in engine_specs.items()
|
||||
if issubclass(engine_spec, BaseParametersMixin)
|
||||
if issubclass(engine_spec, BasicParametersMixin)
|
||||
],
|
||||
"provided": engine,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ from sqlalchemy.engine.url import make_url
|
|||
from sqlalchemy.exc import ArgumentError
|
||||
|
||||
from superset.db_engine_specs import get_engine_specs
|
||||
from superset.db_engine_specs.base import BaseParametersMixin
|
||||
from superset.db_engine_specs.base import BasicParametersMixin
|
||||
from superset.exceptions import CertificateException, SupersetSecurityException
|
||||
from superset.models.core import PASSWORD_MASK
|
||||
from superset.security.analytics_db_safety import check_sqlalchemy_uri
|
||||
|
|
@ -259,7 +259,7 @@ class DatabaseParametersSchemaMixin:
|
|||
[_('Engine "%(engine)s" is not a valid engine.', engine=engine,)]
|
||||
)
|
||||
engine_spec = engine_specs[engine]
|
||||
if not issubclass(engine_spec, BaseParametersMixin):
|
||||
if not issubclass(engine_spec, BasicParametersMixin):
|
||||
raise ValidationError(
|
||||
[
|
||||
_(
|
||||
|
|
|
|||
|
|
@ -1294,7 +1294,7 @@ class BaseEngineSpec: # pylint: disable=too-many-public-methods
|
|||
|
||||
# schema for adding a database by providing parameters instead of the
|
||||
# full SQLAlchemy URI
|
||||
class BaseParametersSchema(Schema):
|
||||
class BasicParametersSchema(Schema):
|
||||
username = fields.String(required=True, allow_none=True, description=__("Username"))
|
||||
password = fields.String(allow_none=True, description=__("Password"))
|
||||
host = fields.String(required=True, description=__("Hostname or IP address"))
|
||||
|
|
@ -1305,7 +1305,7 @@ class BaseParametersSchema(Schema):
|
|||
)
|
||||
|
||||
|
||||
class BaseParametersType(TypedDict, total=False):
|
||||
class BasicParametersType(TypedDict, total=False):
|
||||
username: Optional[str]
|
||||
password: Optional[str]
|
||||
host: str
|
||||
|
|
@ -1314,7 +1314,7 @@ class BaseParametersType(TypedDict, total=False):
|
|||
query: Dict[str, Any]
|
||||
|
||||
|
||||
class BaseParametersMixin:
|
||||
class BasicParametersMixin:
|
||||
|
||||
"""
|
||||
Mixin for configuring DB engine specs via a dictionary.
|
||||
|
|
@ -1328,7 +1328,7 @@ class BaseParametersMixin:
|
|||
"""
|
||||
|
||||
# schema describing the parameters used to configure the DB
|
||||
parameters_schema = BaseParametersSchema()
|
||||
parameters_schema = BasicParametersSchema()
|
||||
|
||||
# recommended driver name for the DB engine spec
|
||||
drivername = ""
|
||||
|
|
@ -1339,7 +1339,7 @@ class BaseParametersMixin:
|
|||
)
|
||||
|
||||
@classmethod
|
||||
def build_sqlalchemy_uri(cls, parameters: BaseParametersType) -> str:
|
||||
def build_sqlalchemy_uri(cls, parameters: BasicParametersType) -> str:
|
||||
return str(
|
||||
URL(
|
||||
cls.drivername,
|
||||
|
|
@ -1353,7 +1353,7 @@ class BaseParametersMixin:
|
|||
)
|
||||
|
||||
@staticmethod
|
||||
def get_parameters_from_uri(uri: str) -> BaseParametersType:
|
||||
def get_parameters_from_uri(uri: str) -> BasicParametersType:
|
||||
url = make_url(uri)
|
||||
return {
|
||||
"username": url.username,
|
||||
|
|
@ -1365,7 +1365,9 @@ class BaseParametersMixin:
|
|||
}
|
||||
|
||||
@classmethod
|
||||
def validate_parameters(cls, parameters: BaseParametersType) -> List[SupersetError]:
|
||||
def validate_parameters(
|
||||
cls, parameters: BasicParametersType
|
||||
) -> List[SupersetError]:
|
||||
"""
|
||||
Validates any number of parameters, for progressive validation.
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ from sqlalchemy.dialects.postgresql import ARRAY, DOUBLE_PRECISION, ENUM, JSON
|
|||
from sqlalchemy.dialects.postgresql.base import PGInspector
|
||||
from sqlalchemy.types import String, TypeEngine
|
||||
|
||||
from superset.db_engine_specs.base import BaseEngineSpec, BaseParametersMixin
|
||||
from superset.db_engine_specs.base import BaseEngineSpec, BasicParametersMixin
|
||||
from superset.errors import SupersetErrorType
|
||||
from superset.exceptions import SupersetException
|
||||
from superset.utils import core as utils
|
||||
|
|
@ -155,7 +155,7 @@ class PostgresBaseEngineSpec(BaseEngineSpec):
|
|||
return "(timestamp 'epoch' + {col} * interval '1 second')"
|
||||
|
||||
|
||||
class PostgresEngineSpec(PostgresBaseEngineSpec, BaseParametersMixin):
|
||||
class PostgresEngineSpec(PostgresBaseEngineSpec, BasicParametersMixin):
|
||||
engine = "postgresql"
|
||||
engine_aliases = {"postgres"}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,14 +20,14 @@ from unittest import mock
|
|||
from marshmallow import fields, Schema, ValidationError
|
||||
|
||||
from superset.databases.schemas import DatabaseParametersSchemaMixin
|
||||
from superset.db_engine_specs.base import BaseParametersMixin
|
||||
from superset.db_engine_specs.base import BasicParametersMixin
|
||||
|
||||
|
||||
class DummySchema(Schema, DatabaseParametersSchemaMixin):
|
||||
sqlalchemy_uri = fields.String()
|
||||
|
||||
|
||||
class DummyEngine(BaseParametersMixin):
|
||||
class DummyEngine(BasicParametersMixin):
|
||||
drivername = "dummy"
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ import pytest
|
|||
from superset.db_engine_specs import get_engine_specs
|
||||
from superset.db_engine_specs.base import (
|
||||
BaseEngineSpec,
|
||||
BaseParametersMixin,
|
||||
BasicParametersMixin,
|
||||
builtin_time_grains,
|
||||
LimitMethod,
|
||||
)
|
||||
|
|
@ -383,7 +383,7 @@ def test_validate(is_port_open, is_hostname_valid):
|
|||
"database": "dbname",
|
||||
"query": {"sslmode": "verify-full"},
|
||||
}
|
||||
errors = BaseParametersMixin.validate_parameters(parameters)
|
||||
errors = BasicParametersMixin.validate_parameters(parameters)
|
||||
assert errors == []
|
||||
|
||||
|
||||
|
|
@ -396,7 +396,7 @@ def test_validate_parameters_missing():
|
|||
"database": "",
|
||||
"query": {},
|
||||
}
|
||||
errors = BaseParametersMixin.validate_parameters(parameters)
|
||||
errors = BasicParametersMixin.validate_parameters(parameters)
|
||||
assert errors == [
|
||||
SupersetError(
|
||||
message=(
|
||||
|
|
@ -421,7 +421,7 @@ def test_validate_parameters_invalid_host(is_hostname_valid):
|
|||
"database": "dbname",
|
||||
"query": {"sslmode": "verify-full"},
|
||||
}
|
||||
errors = BaseParametersMixin.validate_parameters(parameters)
|
||||
errors = BasicParametersMixin.validate_parameters(parameters)
|
||||
assert errors == [
|
||||
SupersetError(
|
||||
message="One or more parameters are missing: port",
|
||||
|
|
@ -452,7 +452,7 @@ def test_validate_parameters_port_closed(is_port_open, is_hostname_valid):
|
|||
"database": "dbname",
|
||||
"query": {"sslmode": "verify-full"},
|
||||
}
|
||||
errors = BaseParametersMixin.validate_parameters(parameters)
|
||||
errors = BasicParametersMixin.validate_parameters(parameters)
|
||||
assert errors == [
|
||||
SupersetError(
|
||||
message="The port is closed.",
|
||||
|
|
|
|||
Loading…
Reference in New Issue