From: Sage Weil Date: Wed, 29 Jun 2011 19:54:53 +0000 (-0700) Subject: teuthology-ls: summarize results from an archive-dir X-Git-Tag: 1.1.0~2965 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7d57b355d8401afed0be1253fd66887007d90663;p=teuthology.git teuthology-ls: summarize results from an archive-dir ugly but basically works --- diff --git a/setup.py b/setup.py index e57c8deab2..64c8ac9f52 100644 --- a/setup.py +++ b/setup.py @@ -23,8 +23,9 @@ setup( entry_points={ 'console_scripts': [ 'teuthology = teuthology.run:main', - 'teuthology-suite = teuthology.suite:main', 'teuthology-nuke = teuthology.run:nuke', + 'teuthology-suite = teuthology.suite:main', + 'teuthology-ls = teuthology.suite:ls', ], }, diff --git a/teuthology/suite.py b/teuthology/suite.py index 3f7ded19ae..c9fca6632e 100644 --- a/teuthology/suite.py +++ b/teuthology/suite.py @@ -117,3 +117,39 @@ useful for specifying actual machines to run on. log.info('Failed.') sys.exit(1) + +def ls(): + parser = argparse.ArgumentParser(description='List teuthology job results') + parser.add_argument( + '--archive-dir', + metavar='DIR', + help='path under which to archive results', + required=True, + ) + args = parser.parse_args() + + import yaml + + for j in sorted(os.listdir(args.archive_dir)): + if j.startswith('.'): + continue + + try: + summary = {} + with file('%s/%s/summary.yaml' % (args.archive_dir,j)) as f: + g = yaml.safe_load_all(f) + for new in g: + summary = dict(summary.items() + new.items()) + except IOError, e: + continue + + for key in ['owner', 'description']: + if not key in summary: + summary[key] = '-' + + print "{job} {success} {owner} {desc}".format( + job=j, + owner=summary['owner'], + desc=summary['description'], + success='pass' if summary['success'] else 'FAIL', + )