fix: import dataset with extra; Vertica URI (#14698)
* fix: import dataset with extra; Vertica URI * Fix lint
This commit is contained in:
parent
c3d1f1084e
commit
5e95d4638c
|
|
@ -16,7 +16,6 @@
|
|||
# under the License.
|
||||
import inspect
|
||||
import json
|
||||
import urllib.parse
|
||||
from typing import Any, Dict
|
||||
|
||||
from flask import current_app
|
||||
|
|
@ -550,6 +549,6 @@ class ImportV1DatabaseSchema(Schema):
|
|||
def validate_password(self, data: Dict[str, Any], **kwargs: Any) -> None:
|
||||
"""If sqlalchemy_uri has a masked password, password is required"""
|
||||
uri = data["sqlalchemy_uri"]
|
||||
password = urllib.parse.urlparse(uri).password
|
||||
password = make_url(uri).password
|
||||
if password == PASSWORD_MASK and data.get("password") is None:
|
||||
raise ValidationError("Must provide a password for the database")
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ from superset.utils.dict_import_export import EXPORT_VERSION
|
|||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
JSON_KEYS = {"params", "template_params", "extra"}
|
||||
JSON_KEYS = {"params", "template_params"}
|
||||
|
||||
|
||||
class ExportDatasetsCommand(ExportModelsCommand):
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ logger = logging.getLogger(__name__)
|
|||
CHUNKSIZE = 512
|
||||
VARCHAR = re.compile(r"VARCHAR\((\d+)\)", re.IGNORECASE)
|
||||
|
||||
JSON_KEYS = {"params", "template_params", "extra"}
|
||||
JSON_KEYS = {"params", "template_params"}
|
||||
|
||||
|
||||
type_map = {
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ class ImportV1DatasetSchema(Schema):
|
|||
template_params = fields.Dict(allow_none=True)
|
||||
filter_select_enabled = fields.Boolean()
|
||||
fetch_values_predicate = fields.String(allow_none=True)
|
||||
extra = fields.Dict(allow_none=True)
|
||||
extra = fields.String(allow_none=True)
|
||||
uuid = fields.UUID(required=True)
|
||||
columns = fields.List(fields.Nested(ImportV1ColumnSchema))
|
||||
metrics = fields.List(fields.Nested(ImportV1MetricSchema))
|
||||
|
|
|
|||
|
|
@ -1314,7 +1314,7 @@ class TestDatabaseApi(SupersetTestCase):
|
|||
masked_database_config = database_config.copy()
|
||||
masked_database_config[
|
||||
"sqlalchemy_uri"
|
||||
] = "postgresql://username:XXXXXXXXXX@host:12345/db"
|
||||
] = "vertica+vertica_python://hackathon:XXXXXXXXXX@host:5433/dbname?ssl=1"
|
||||
|
||||
buf = BytesIO()
|
||||
with ZipFile(buf, "w") as bundle:
|
||||
|
|
@ -1341,7 +1341,8 @@ class TestDatabaseApi(SupersetTestCase):
|
|||
)
|
||||
assert database.database_name == "imported_database"
|
||||
assert (
|
||||
database.sqlalchemy_uri == "postgresql://username:XXXXXXXXXX@host:12345/db"
|
||||
database.sqlalchemy_uri
|
||||
== "vertica+vertica_python://hackathon:XXXXXXXXXX@host:5433/dbname?ssl=1"
|
||||
)
|
||||
assert database.password == "SECRET"
|
||||
|
||||
|
|
|
|||
|
|
@ -315,7 +315,7 @@ class TestImportDatasetsCommand(SupersetTestCase):
|
|||
assert dataset.template_params == "{}"
|
||||
assert dataset.filter_select_enabled
|
||||
assert dataset.fetch_values_predicate is None
|
||||
assert dataset.extra is None
|
||||
assert dataset.extra == "dttm > sysdate() -10 "
|
||||
|
||||
# database is also imported
|
||||
assert str(dataset.database.uuid) == "b8a1ccd3-779d-4ab7-8ad8-9ab119d7fe89"
|
||||
|
|
|
|||
|
|
@ -375,7 +375,7 @@ dataset_config: Dict[str, Any] = {
|
|||
"template_params": {},
|
||||
"filter_select_enabled": True,
|
||||
"fetch_values_predicate": None,
|
||||
"extra": None,
|
||||
"extra": "dttm > sysdate() -10 ",
|
||||
"metrics": [
|
||||
{
|
||||
"metric_name": "count",
|
||||
|
|
|
|||
Loading…
Reference in New Issue