from autotest.client.shared import host_protections


def _call_repair(machine):
    protection = host_protections.Protection

    try:
        level = protection.get_value(protection_level)
    except ValueError:
        raise NotImplementedError("Unknown host protection level %s" %
                                  protection_level)

    host = hosts.create_host(machine, initialize=False, auto_monitor=False)
    host.repair_with_protection(level)


def repair(machine):
    try:
        _call_repair(machine)
        job.record('GOOD', None, 'repair', '%s repaired successfully' % machine)
    except Exception, e:
        msg = 'repair failed on %s: %s\n' % (machine, str(e))
        job.record('FAIL', None, 'repair', msg)
        raise


job.parallel_simple(repair, machines)
