from autotest_lib.server import crashcollect


def crashinfo(machine):
    host = hosts.create_host(machine, initialize=False, auto_monitor=False)
    crashcollect.get_crashinfo(host, test_start_time)


job.parallel_simple(crashinfo, machines, log=False)
