diff options
Diffstat (limited to 'scripts/check-unpetrify-refs.py')
-rwxr-xr-x | scripts/check-unpetrify-refs.py | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/scripts/check-unpetrify-refs.py b/scripts/check-unpetrify-refs.py deleted file mode 100755 index c70b680d..00000000 --- a/scripts/check-unpetrify-refs.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env python -# Copyright (C) 2016 Codethink Limited -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -import os -import glob -import argparse -import subprocess - -import scriptslib - - -''' -Script for checking unpetrify-refs in strata. - -Without args this script will check everything in strata/, or each stratum -given on the command-line and will print on stdout whether a chunk has -a missing or non-existent unpetrify-ref and if it fails to check the remote -(missing repo). -''' - -strata_dir = "strata" - -def ref_exists(remote, ref): - output = subprocess.check_output( - ["git", "ls-remote", remote, str(ref)], - stderr=subprocess.STDOUT).strip() - return True if output else False - -def main(): - parser = argparse.ArgumentParser( - description="Sanity checks unpetrify-refs in Baserock strata") - parser.add_argument("--trove-host", default="git.baserock.org", - help="Trove host to map repo aliases to") - parser.add_argument("strata", nargs="*", metavar="STRATA", - help="The strata to check (checks all by default)") - args = parser.parse_args() - - if args.strata: - strata = args.strata - else: - strata_path = os.path.join(scriptslib.definitions_root(), strata_dir) - strata = glob.glob("%s/*.morph" % strata_path) - - for stratum in strata: - path = os.path.relpath(stratum) - morphology = scriptslib.load_yaml_file(stratum) - for chunk in morphology['chunks']: - unpetrify_ref = chunk.get("unpetrify-ref") - if not unpetrify_ref: - print ("%s: '%s' has no unpetrify-ref!" % - (path, chunk['name'])) - continue - remote = scriptslib.parse_repo_alias(chunk['repo'], args.trove_host) - try: - if not ref_exists(remote, unpetrify_ref): - print ("%s: unpetrify-ref for '%s' is not present on the " - "remote (%s)!" % (path, chunk['name'], remote)) - except subprocess.CalledProcessError as e: - print ("%s: failed to ls-remote (%s) for chunk '%s':\n%s" % - (path, remote, chunk['name'], e.output.strip())) - -if __name__ == "__main__": - main() |