fix: import dataset with extra; Vertica URI (#14698)

* fix: import dataset with extra; Vertica URI

* Fix lint
This commit is contained in:
Beto Dealmeida 2021-05-18 20:51:33 -07:00 committed by GitHub
parent c3d1f1084e
commit 5e95d4638c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 9 additions and 9 deletions

View File

@ -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")

View File

@ -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):

View File

@ -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 = {

View File

@ -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))

View File

@ -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"

View File

@ -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"

View File

@ -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",