code: def ensure_frozen_vms_status(self, reource_pool_name):
      rp_obj = self.get_pyvmomi_sdk_provider().get_pyvmomi_obj(
          [vim.ResourcePool], reource_pool_name
      )
  
      vms = rp_obj.vm
      # Known "issue": if there are some other VMs manually created in this resource
      # pool, it will also be handled by wait_until_vm_is_frozen, e.g., be turned on.
      for vm in vms:
          self.ensure_frozen_vm_status(vm.name)
  
imports: import copy
  import logging
  import threading
  import uuid
  from concurrent.futures import ThreadPoolExecutor
  from typing import Any, Dict
  from pyVmomi import vim
  from ray.autoscaler._private.vsphere.config import bootstrap_vsphere, is_dynamic_passthrough
  from ray.autoscaler._private.vsphere.gpu_utils import get_gpu_cards_from_vm, get_vm_2_gpu_cards_map, plug_gpu_cards_to_vm, set_gpu_placeholder, split_vm_2_gpu_cards_map
  from ray.autoscaler._private.vsphere.pyvmomi_sdk_provider import PyvmomiSdkProvider
  from ray.autoscaler._private.vsphere.scheduler import SchedulerFactory
  from ray.autoscaler._private.vsphere.utils import Constants, now_ts
  from ray.autoscaler._private.vsphere.vsphere_sdk_provider import VsphereSdkProvider
  from ray.autoscaler.node_provider import NodeProvider
  from ray.autoscaler.tags import TAG_RAY_CLUSTER_NAME, TAG_RAY_NODE_NAME
label_desc: Use image node_id 17 for calling the VsphereNodeProvider obj's underlying member method code with example usage: obj.ensure_frozen_vms_status(reource_pool_name) without return types