code: def test_object_store_memory_idle_node(shutdown_only):
      ray.init()
  
      obj = ray.put("hello")
      gcs_address = ray.get_runtime_context().gcs_address
  
      def verify():
          state = get_cluster_status(gcs_address)
          for node in state.active_nodes:
              assert node.node_status == "RUNNING"
              assert node.used_resources()["object_store_memory"] > 0
          assert len(state.idle_nodes) == 0
          return True
  
      wait_for_condition(verify)
  
      del obj
  
      import time
  
      time.sleep(1)
  
      def verify():
          state = get_cluster_status(gcs_address)
          for node in state.idle_nodes:
              assert node.node_status == "IDLE"
              assert node.used_resources()["object_store_memory"] == 0
              assert node.resource_usage.idle_time_ms >= 1000
          assert len(state.active_nodes) == 0
          return True
  
      wait_for_condition(verify)
  
file_path: ray/python/ray/autoscaler/v2/tests/test_e2e.py
imports: import os
  import sys
  import time
  from typing import Dict
  import pytest
  import ray
  from ray._private.resource_spec import HEAD_NODE_RESOURCE_NAME
  from ray._private.test_utils import run_string_as_driver_nonblocking, wait_for_condition
  from ray.autoscaler.v2.sdk import get_cluster_status
  from ray.cluster_utils import AutoscalingCluster
  from ray.util.placement_group import placement_group, remove_placement_group
  from ray.util.state.api import list_placement_groups, list_tasks
label_desc: Use image node_id 6 for calling a global function with example usage: test_object_store_memory_idle_node(shutdown_only) and returns: True, True