def METHOD_NAME(self, cmd, timeout=None, run_async=False):
    """
    Executa a command
    param: timeout: execution timeout
    param: run_async: do not wait for command completion
    """
    if not self.ip_address or self.ip_address == '0.0.0.0':
        raise Exception('Invalid IP Address')
    if self.ssh_client is None:
        self.ssh_client = self.create_client()
    try:
        stdin, stdout, stderr = self.ssh_client.exec_command(cmd, timeout=timeout)
    except Exception as e:
        # Normally this is a timeout exception
        self.ssh_client = self.create_client()
        stdin, stdout, stderr = self.ssh_client.exec_command(cmd, timeout=timeout)
    out = None
    if not run_async:
        out = stdout.read().decode().strip()
        error = stderr.read().decode().strip()
    return out