def METHOD_NAME(c: Connection, machine: str, max_retries: int):
    print(f'VM {machine} is not running - attempting to bring it up ...')
    for attempt in range(max_retries):
        inc_attempt = attempt + 1
        print(f'... attempt {inc_attempt}/{max_retries} to bring up VM {machine}')
        try:
            c.run(f'vagrant up {machine}')
        except Exception:
            print(f'... VM {machine} failed during "vagrant up" - VM will be destroyed')
            teardown_vagrant(c, machine)
        if _is_vm_running(c, machine):
            print(f'... VM {machine} is running.')
            break  # success
    if not _is_vm_running(c, machine):
        print(f'Error: VM {machine} is still not running after {max_retries} attempt(s).')
        exit(1)