code: def test__create_node():
      vnp = mock_vsphere_node_provider()
      node_config = {}
  
      def mock_create_instant_clone_node():
          mock_nodes = [MagicMock(), MagicMock()]
          for mock_node in mock_nodes:
              mock_node.vm = "vm-test"
              yield mock_node
  
      vnp.create_instant_clone_node = MagicMock(
          side_effect=mock_create_instant_clone_node()
      )
      vnp.get_vsphere_sdk_provider().set_node_tags = MagicMock(
          return_value=None
      )
      vnp.get_vsphere_sdk_provider().delete_vm_by_name = MagicMock(
          return_value=None
      )
      vnp.create_new_or_fetch_existing_frozen_vms = MagicMock(
          return_value={"vm": "vm-d"}
      )
      vnp.frozen_vm_scheduler().next_frozen_vm = MagicMock(
          return_value=MagicMock(name=MagicMock("frozen-vm"))
      )
      created_nodes_dict = vnp._create_node(
          node_config,
          {"ray-node-name": "ray-node-1", "ray-node-type": "head"},
          2,
      )
      assert len(created_nodes_dict) == 2
      assert (
          vnp.get_vsphere_sdk_provider().set_node_tags.call_count == 2
      )
      vnp.get_vsphere_sdk_provider().delete_vm_by_name.assert_not_called()
  
imports: import copy
  import time
  import pytest
  import threading
  from unittest.mock import MagicMock, patch
  from ray.autoscaler._private.vsphere.node_provider import VsphereNodeProvider
  from ray.autoscaler._private.vsphere.config import update_vsphere_configs, validate_frozen_vm_configs
  from ray.autoscaler._private.vsphere.gpu_utils import split_vm_2_gpu_cards_map, GPUCard, set_gpu_placeholder
  from ray.autoscaler._private.vsphere.utils import singleton_client
label_desc: Use image node_id 5 for calling a global function with example usage: test__create_node() without return types