code: def put_cluster_dashboard_success(
      cloudwatch_client_stub, cloudwatch_helper
  ):
      widgets = []
      json_config_path = get_cloudwatch_dashboard_config_file_path()
      with open(json_config_path) as f:
          dashboard_config = json.load(f)
  
      for item in dashboard_config:
          item_out = cloudwatch_helper._replace_all_config_variables(
              item,
              cloudwatch_helper.node_id,
              cloudwatch_helper.cluster_name,
              cloudwatch_helper.provider_config["region"],
          )
          widgets.append(item_out)
  
      dashboard_name = (
          cloudwatch_helper.cluster_name
          + "-"
          + "example-dashboard-name"
      )
      cloudwatch_client_stub.add_response(
          "put_dashboard",
          expected_params={
              "DashboardName": dashboard_name,
              "DashboardBody": json.dumps({"widgets": widgets}),
          },
          service_response={
              "ResponseMetadata": {"HTTPStatusCode": 200}
          },
      )
  
imports: from typing import Dict, List
  import ray
  import copy
  import json
  from uuid import uuid4
  from ray.tests.aws.utils import helpers
  from ray.tests.aws.utils.constants import DEFAULT_INSTANCE_PROFILE, DEFAULT_KEY_PAIR, DEFAULT_SUBNET, A_THOUSAND_SUBNETS_IN_DIFFERENT_VPCS, DEFAULT_LT, TWENTY_SUBNETS_IN_DIFFERENT_AZS
  from ray.autoscaler._private.aws.config import key_pair
  from ray.tests.aws.utils.helpers import get_cloudwatch_dashboard_config_file_path, get_cloudwatch_alarm_config_file_path
  from ray.autoscaler._private.aws.cloudwatch.cloudwatch_helper import CLOUDWATCH_AGENT_INSTALLED_TAG, CLOUDWATCH_CONFIG_HASH_TAG_BASE
  from ray.autoscaler.tags import NODE_KIND_HEAD, TAG_RAY_NODE_KIND
  from unittest import mock
  from botocore.stub import ANY
label_desc: Use image node_id 39 for calling a global function with example usage: put_cluster_dashboard_success(cloudwatch_client_stub, cloudwatch_helper) without return types