From: Lucas Di Pentima Date: Tue, 26 Nov 2019 19:46:14 +0000 (-0300) Subject: 15849: Moves script to 'tools/' subdir, with some fixes. X-Git-Tag: 2.0.0~100^2~3 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/8819cac2d6c8e0d1673a2126b5cb5664e1ec776e 15849: Moves script to 'tools/' subdir, with some fixes. * Fixed --vocabulary-file argument requirement check * Modified API server querying to get stable listings Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- diff --git a/doc/admin/workbench2-vocabulary.html.textile.liquid b/doc/admin/workbench2-vocabulary.html.textile.liquid index 4ff35c363c..e259f78625 100644 --- a/doc/admin/workbench2-vocabulary.html.textile.liquid +++ b/doc/admin/workbench2-vocabulary.html.textile.liquid @@ -60,6 +60,8 @@ This script will not run if the vocabulary file has duplicated labels for differ Please take into account that this script requires admin credentials. It also offers a @--dry-run@ flag that will report what changes are required without applying them, so it can be reviewed by an administrator. +Also, take into consideration that this example script does case-sensitive matching on labels. + {% codeblock as python %} {% include 'vocabulary_migrate_py' %} {% endcodeblock %} \ No newline at end of file diff --git a/doc/_includes/_vocabulary_migrate_py.liquid b/tools/vocabulary-migrate/vocabulary-migrate.py similarity index 91% rename from doc/_includes/_vocabulary_migrate_py.liquid rename to tools/vocabulary-migrate/vocabulary-migrate.py index 3bccf61083..c2b9da63b7 100644 --- a/doc/_includes/_vocabulary_migrate_py.liquid +++ b/tools/vocabulary-migrate/vocabulary-migrate.py @@ -1,9 +1,8 @@ #!/usr/bin/env python -{% comment %} -Copyright (C) The Arvados Authors. All rights reserved. - -SPDX-License-Identifier: CC-BY-SA-3.0 -{% endcomment %} +# +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: CC-BY-SA-3.0 import argparse import copy @@ -23,7 +22,7 @@ class VocabularyError(Exception): opts = argparse.ArgumentParser(add_help=False) opts.add_argument('--vocabulary-file', type=str, metavar='PATH', default=None, - help=""" + required=True, help=""" Use vocabulary definition file at PATH for migration decisions. """) opts.add_argument('--dry-run', action='store_true', default=False, @@ -43,9 +42,7 @@ def parse_arguments(arguments): args = arg_parser.parse_args(arguments) if args.debug: logger.setLevel(logging.DEBUG) - if args.vocabulary_file is None: - arg_parser.error('Please specify the vocabulary file with --vocabulary-file') - elif not os.path.isfile(args.vocabulary_file): + if not os.path.isfile(args.vocabulary_file): arg_parser.error("{} doesn't exist or isn't a file.".format(args.vocabulary_file)) return args @@ -96,6 +93,7 @@ def main(arguments=None): for resource in [arv.collections(), arv.groups()]: objs = arvados.util.list_all( resource.list, + order=['created_at'], select=['uuid', 'properties'], filters=[['properties', 'exists', key_label]] )