from autotest_lib.server import crashcollect


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


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