1#!/usr/bin/python3 2"""Reexecute parser in scenario and store the result at specified tag. 3""" 4 5from __future__ import absolute_import 6from __future__ import division 7from __future__ import print_function 8import optparse, sys 9from os import path 10import common 11from autotest_lib.tko.parsers.test import scenario_base 12 13usage = 'usage: %prog [options] scenario_dirpath parser_result_tag' 14parser = optparse.OptionParser(usage=usage) 15 16 17def main(): 18 (options, args) = parser.parse_args() 19 if len(args) < 2: 20 parser.print_help() 21 sys.exit(1) 22 23 scenario_dirpath = path.normpath(args[0]) 24 parser_result_tag = args[1] 25 26 if not path.exists(scenario_dirpath) or not path.isdir(scenario_dirpath): 27 print('Invalid scenarios_dirpath:', scenario_dirpath) 28 parser.print_help() 29 sys.exit(1) 30 31 tempdir, results_dirpath = scenario_base.load_results_dir(scenario_dirpath) 32 harness = scenario_base.new_parser_harness(results_dirpath) 33 try: 34 parser_result = harness.execute() 35 except Exception as e: 36 parser_result = e 37 scenario_base.store_parser_result( 38 scenario_dirpath, parser_result, parser_result_tag) 39 tempdir.clean() 40 41 42if __name__ == '__main__': 43 main() 44