diff --git a/docs/how/delete-metadata.md b/docs/how/delete-metadata.md index 1cf6d2749e..4f61377cdc 100644 --- a/docs/how/delete-metadata.md +++ b/docs/how/delete-metadata.md @@ -32,6 +32,8 @@ To delete all the data related to a single entity, run datahub delete --urn "" ``` +You can optionally add `-f` or `--force` to skip confirmations + _Note: make sure you surround your urn with quotes! If you do not include the quotes, your terminal may misinterpret the command._ ## Rollback Ingestion Batch Run diff --git a/metadata-ingestion/src/datahub/cli/cli_utils.py b/metadata-ingestion/src/datahub/cli/cli_utils.py index 9112783677..e9c27f318c 100644 --- a/metadata-ingestion/src/datahub/cli/cli_utils.py +++ b/metadata-ingestion/src/datahub/cli/cli_utils.py @@ -44,10 +44,7 @@ def write_datahub_config(host: str, token: Optional[str]) -> None: def should_skip_config() -> bool: - try: - return os.environ[ENV_SKIP_CONFIG] == "True" - except KeyError: - return False + return os.getenv(ENV_SKIP_CONFIG, False) == "True" def ensure_datahub_config() -> None: diff --git a/metadata-ingestion/src/datahub/cli/delete_cli.py b/metadata-ingestion/src/datahub/cli/delete_cli.py index a568a2b09c..cb8b6f573a 100644 --- a/metadata-ingestion/src/datahub/cli/delete_cli.py +++ b/metadata-ingestion/src/datahub/cli/delete_cli.py @@ -2,7 +2,7 @@ import logging import click -from datahub.cli.cli_utils import post_delete_endpoint +from datahub.cli import cli_utils logger = logging.getLogger(__name__) @@ -14,15 +14,22 @@ RUN_TABLE_COLUMNS = ["urn", "aspect name", "created at"] @click.command() @click.option("--urn", required=True, type=str) -def delete(urn: str) -> None: +@click.option("-f", "--force", required=False, type=bool, default=False) +def delete(urn: str, force: bool) -> None: """Delete a provided URN from datahub""" - click.confirm( - "This will permanently delete data from DataHub. Do you want to continue?", - abort=True, - ) + if not force: + click.confirm( + "This will permanently delete data from DataHub. Do you want to continue?", + abort=True, + ) payload_obj = {"urn": urn} - urn, rows_affected = post_delete_endpoint(payload_obj, "/entities?action=delete") + urn, rows_affected = cli_utils.post_delete_endpoint( + payload_obj, "/entities?action=delete" + ) - click.echo(f"Successfully deleted {urn}. {rows_affected} rows deleted") + if rows_affected == 0: + click.echo(f"Nothing deleted for {urn}") + else: + click.echo(f"Successfully deleted {urn}. {rows_affected} rows deleted")