1*9c5db199SXin Liimport sys 2*9c5db199SXin Li 3*9c5db199SXin Lifrom autotest_lib.server import utils 4*9c5db199SXin Lifrom autotest_lib.server.cros import provision 5*9c5db199SXin Li 6*9c5db199SXin Litry: 7*9c5db199SXin Li from autotest_lib.utils.frozen_chromite.lib import metrics 8*9c5db199SXin Liexcept ImportError: 9*9c5db199SXin Li metrics = utils.metrics_mock 10*9c5db199SXin Li 11*9c5db199SXin Li 12*9c5db199SXin LiDURATION_METRIC = 'chromeos/autotest/autoserv/reset_duration' 13*9c5db199SXin Li 14*9c5db199SXin Li 15*9c5db199SXin Li# A string of the form 'label1,label2:value,label3'. 16*9c5db199SXin Lijob_labels = locals().get('job_labels') or ','.join(args) 17*9c5db199SXin Lilabels_list = [l.strip() for l in job_labels.split(',') if l] 18*9c5db199SXin Li 19*9c5db199SXin Li 20*9c5db199SXin Lidef reset(machine): 21*9c5db199SXin Li print('Starting to reset host %s' % machine) 22*9c5db199SXin Li try: 23*9c5db199SXin Li job.record('START', None, 'reset') 24*9c5db199SXin Li target = hosts.create_target_machine(machine) 25*9c5db199SXin Li hostname = utils.get_hostname_from_machine(machine) 26*9c5db199SXin Li with metrics.SecondsTimer(DURATION_METRIC, 27*9c5db199SXin Li fields={'dut_host_name': hostname}): 28*9c5db199SXin Li # Assume cleanup always runs first. 29*9c5db199SXin Li target.cleanup() 30*9c5db199SXin Li provision.Cleanup.run_task_actions(job, target, labels_list) 31*9c5db199SXin Li 32*9c5db199SXin Li target.verify() 33*9c5db199SXin Li provision.Verify.run_task_actions(job, target, labels_list) 34*9c5db199SXin Li except Exception: 35*9c5db199SXin Li logging.exception('Reset failed due to Exception.') 36*9c5db199SXin Li job.record('END FAIL', None, 'reset') 37*9c5db199SXin Li # See the provision control segment for the explanation of why we're 38*9c5db199SXin Li # doing this. 39*9c5db199SXin Li raise Exception('') 40*9c5db199SXin Li else: 41*9c5db199SXin Li hostname = utils.get_hostname_from_machine(machine) 42*9c5db199SXin Li job.record('END GOOD', None, 'reset', 43*9c5db199SXin Li '%s reset successfully' % hostname) 44*9c5db199SXin Li 45*9c5db199SXin Li 46*9c5db199SXin Lijob.parallel_simple(reset, machines) 47*9c5db199SXin Li 48*9c5db199SXin Li# vim: set syntax=python : 49