From 807288c1545376e78f477dfaa9af74ca95064c1c Mon Sep 17 00:00:00 2001 From: Daniel Chiquito Date: Thu, 5 Aug 2021 12:56:22 -0400 Subject: [PATCH 1/2] Add revalidation script --- .../api/management/commands/revalidate.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 dandiapi/api/management/commands/revalidate.py diff --git a/dandiapi/api/management/commands/revalidate.py b/dandiapi/api/management/commands/revalidate.py new file mode 100644 index 000000000..d32a0073a --- /dev/null +++ b/dandiapi/api/management/commands/revalidate.py @@ -0,0 +1,25 @@ +import djclick as click + +from dandiapi.api.models import Asset, Version +from dandiapi.api.tasks import validate_asset_metadata, validate_version_metadata + + +@click.command() +@click.option('--assets', is_flag=True, default=False) +@click.option('--versions', is_flag=True, default=False) +def refresh_metadata(assets: bool, versions: bool): + """ + Revalidate all Versions and Assets. + + This script will run the validation immediately in band without dispatching tasks to the queue. + """ + if assets: + click.echo('Revalidating assets') + for asset in Asset.objects.values('id'): + validate_asset_metadata(asset['id']) + + if versions: + click.echo('Revalidating versions') + # Only revalidate draft versions + for version in Version.objects.filter(version='draft').values('id'): + validate_version_metadata(version['id']) From 9316e39f403d38eedb915af2803a751dd239fa69 Mon Sep 17 00:00:00 2001 From: Daniel Chiquito Date: Thu, 5 Aug 2021 13:12:31 -0400 Subject: [PATCH 2/2] Fix typo in revalidate script Co-authored-by: Mike VanDenburgh <37340715+mvandenburgh@users.noreply.github.com> --- dandiapi/api/management/commands/revalidate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dandiapi/api/management/commands/revalidate.py b/dandiapi/api/management/commands/revalidate.py index d32a0073a..9a4d46722 100644 --- a/dandiapi/api/management/commands/revalidate.py +++ b/dandiapi/api/management/commands/revalidate.py @@ -7,7 +7,7 @@ @click.command() @click.option('--assets', is_flag=True, default=False) @click.option('--versions', is_flag=True, default=False) -def refresh_metadata(assets: bool, versions: bool): +def revalidate(assets: bool, versions: bool): """ Revalidate all Versions and Assets.