From e45744e7c5b9916c398fe41273194ffb671fcdac Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 15 Oct 2024 22:30:47 +0200 Subject: Merging upstream version 1.1.0. Signed-off-by: Daniel Baumann --- examples/merge_catalogs.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 examples/merge_catalogs.py (limited to 'examples/merge_catalogs.py') diff --git a/examples/merge_catalogs.py b/examples/merge_catalogs.py new file mode 100644 index 0000000..1d594be --- /dev/null +++ b/examples/merge_catalogs.py @@ -0,0 +1,30 @@ +# Copyright (c) 2024 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. +"""Script that merge a collection of catalogs into one AntaCatalog.""" + +from pathlib import Path + +from anta.catalog import AntaCatalog +from anta.models import AntaTest + +CATALOG_SUFFIX = "-catalog.yml" +CATALOG_DIR = "intended/test_catalogs/" + +if __name__ == "__main__": + catalogs = [] + for file in Path(CATALOG_DIR).glob("*" + CATALOG_SUFFIX): + device = str(file).removesuffix(CATALOG_SUFFIX).removeprefix(CATALOG_DIR) + print(f"Loading test catalog for device {device}") + catalog = AntaCatalog.parse(file) + # Add the device name as a tag to all tests in the catalog + for test in catalog.tests: + test.inputs.filters = AntaTest.Input.Filters(tags={device}) + catalogs.append(catalog) + + # Merge all catalogs + merged_catalog = AntaCatalog.merge_catalogs(catalogs) + + # Save the merged catalog to a file + with Path("anta-catalog.yml").open("w") as f: + f.write(merged_catalog.dump().yaml()) -- cgit v1.2.3