15849: Errors out when a duplicated label is detected on the vocabulary.
authorLucas Di Pentima <ldipentima@veritasgenetics.com>
Tue, 26 Nov 2019 14:16:18 +0000 (11:16 -0300)
committerLucas Di Pentima <ldipentima@veritasgenetics.com>
Tue, 26 Nov 2019 14:16:18 +0000 (11:16 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <ldipentima@veritasgenetics.com>

tools/vocabulary-migrate/vocabulary-migrate.py

index 72bbd0ecb0c3b79f6269b4562c620e4d48f19638..e72983885847116a7221ea2ad24b4635ad920b63 100644 (file)
@@ -18,6 +18,9 @@ import arvados.util
 logger = logging.getLogger('arvados.vocabulary_migrate')
 logger.setLevel(logging.INFO)
 
+class VocabularyError(Exception):
+    pass
+
 opts = argparse.ArgumentParser(add_help=False)
 opts.add_argument('--vocabulary-file', type=str, metavar='PATH', default=None,
                   help="""
@@ -54,7 +57,7 @@ def _label_to_id_mappings(data, obj_name):
             if obj_lbl not in result:
                 result[obj_lbl] = obj_id
             else:
-                logger.warning('{} label "{}" for {} ID "{}" already seen at {} ID "{}". Skipping.'.format(obj_name, obj_lbl, obj_name, obj_id, obj_name, result[obj_lbl]))
+                raise VocabularyError('{} label "{}" for {} ID "{}" already seen at {} ID "{}".'.format(obj_name, obj_lbl, obj_name, obj_id, obj_name, result[obj_lbl]))
     return result
 
 def key_labels_to_ids(vocab):