Skip to content

Commit

Permalink
fix(import-datasources): Use "admin" user as default for importing da…
Browse files Browse the repository at this point in the history
…tasources (apache#27154)
  • Loading branch information
ddxv authored and qleroy committed Apr 28, 2024
1 parent b9fe594 commit df6e602
Showing 1 changed file with 24 additions and 15 deletions.
39 changes: 24 additions & 15 deletions superset/cli/importexport.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

from superset import security_manager
from superset.extensions import db
from superset.utils.core import override_user

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -170,26 +171,34 @@ def import_dashboards(path: str, username: Optional[str]) -> None:
"-p",
help="Path to a single ZIP file",
)
def import_datasources(path: str) -> None:
@click.option(
"--username",
"-u",
required=False,
default="admin",
help="Specify the user name to assign datasources to",
)
def import_datasources(path: str, username: Optional[str] = "admin") -> None:
"""Import datasources from ZIP file"""
# pylint: disable=import-outside-toplevel
from superset.commands.dataset.importers.dispatcher import ImportDatasetsCommand
from superset.commands.importers.v1.utils import get_contents_from_bundle

if is_zipfile(path):
with ZipFile(path) as bundle:
contents = get_contents_from_bundle(bundle)
else:
with open(path) as file:
contents = {path: file.read()}
try:
ImportDatasetsCommand(contents, overwrite=True).run()
except Exception: # pylint: disable=broad-except
logger.exception(
"There was an error when importing the dataset(s), please check the "
"exception traceback in the log"
)
sys.exit(1)
with override_user(user=security_manager.find_user(username=username)):
if is_zipfile(path):
with ZipFile(path) as bundle:
contents = get_contents_from_bundle(bundle)
else:
with open(path) as file:
contents = {path: file.read()}
try:
ImportDatasetsCommand(contents, overwrite=True).run()
except Exception: # pylint: disable=broad-except
logger.exception(
"There was an error when importing the dataset(s), please check the "
"exception traceback in the log"
)
sys.exit(1)


@click.command()
Expand Down

0 comments on commit df6e602

Please sign in to comment.