# -*- coding: utf-8 -*-
# Copyright 2015 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Utilities relating to machine-specific functions."""


from cros_utils import command_executer


def MachineIsPingable(machine, logging_level="average"):
    """Checks to see if a machine is responding to 'ping'.

    Args:
      machine: String containing the name or ip address of the machine to check.
      logging_level: The logging level with which to initialize the
        command_executer (from command_executor.LOG_LEVEL enum list).

    Returns:
      Boolean indicating whether machine is responding to ping or not.
    """
    ce = command_executer.GetCommandExecuter(log_level=logging_level)
    cmd = "ping -c 1 -w 3 %s" % machine
    status = ce.RunCommand(cmd)
    return status == 0
