def METHOD_NAME(ip_address, remote_command_executor, scheduler_commands):
    # ping test from head node
    result = remote_command_executor.run_remote_command("ping -c 5 {0}".format(ip_address))
    assert_that(result.stdout).matches(".*5 packets transmitted, 5 received, 0% packet loss,.*")
    # ssh test from head node
    result = remote_command_executor.run_remote_command(
        "ssh -o StrictHostKeyChecking=no -q {0} echo Hello".format(ip_address)
    )
    assert_that(result.stdout).matches("Hello")
    # ping test from compute node
    result = scheduler_commands.submit_command("ping -I {0} -c 5 amazon.com > /shared/ping_{0}.out".format(ip_address))
    job_id = scheduler_commands.assert_job_submitted(result.stdout)
    scheduler_commands.wait_job_completed(job_id)
    scheduler_commands.assert_job_succeeded(job_id)
    result = remote_command_executor.run_remote_command("cat /shared/ping_{0}.out".format(ip_address))
    assert_that(result.stdout).matches(".*5 packets transmitted, 5 received, 0% packet loss,.*")