code: def _validate_databricks_auth():
      """Validate Databricks authentication."""
      max_attempts = 3  # Allow 3 attempts for timeout.
      timeout = 3
      for i in range(max_attempts):
          try:
              # If the host name is invalid, the command will hang.
              # If the credential is invalid, the command will return non-zero exit code.
              # If both host and credential are valid, it will return zero exit code.
              result = subprocess.run(
                  ["databricks", "clusters", "list-zones"],
                  timeout=timeout,
                  stdout=subprocess.DEVNULL,
                  stderr=subprocess.DEVNULL,
              )
              if result.returncode != 0:
                  raise MlflowException(
                      "Failed to validate databricks credentials."
                  )
          except subprocess.TimeoutExpired:
              if i == max_attempts - 1:
                  raise subprocess.TimeoutExpired(
                      "Timeout while signing in Databricks",
                      timeout=timeout,
                  )
  
              _logger.error(
                  "Timeout while signing in Databricks, retrying..."
              )
  
file_path: mlflow/mlflow/utils/credentials.py
imports: import configparser
  import getpass
  import logging
  import os
  import subprocess
  from typing import NamedTuple, Optional, Tuple
  from mlflow.environment_variables import MLFLOW_TRACKING_PASSWORD, MLFLOW_TRACKING_USERNAME
  from mlflow.exceptions import MlflowException
label_desc: Use image node_id 6 for calling a global function with example usage: _validate_databricks_auth() without return types