code: def test_subnet_given_head_and_worker_sg(
      iam_client_stub, ec2_client_stub
  ):
      stubs.configure_iam_role_default(iam_client_stub)
      stubs.configure_key_pair_default(ec2_client_stub)
  
      # list a security group and a thousand subnets in different vpcs
      stubs.describe_a_security_group(ec2_client_stub, DEFAULT_SG)
      stubs.describe_a_thousand_subnets_in_different_vpcs(
          ec2_client_stub
      )
  
      config = helpers.bootstrap_aws_example_config_file(
          "example-head-and-worker-security-group.yaml"
      )
  
      # check that just the single subnet in the right vpc is filled
      for node_type in config["available_node_types"].values():
          node_config = node_type["node_config"]
          assert node_config["SubnetIds"] == [
              DEFAULT_SUBNET["SubnetId"]
          ]
  
      # expect no pending responses left in IAM or EC2 client stub queues
      iam_client_stub.assert_no_pending_responses()
      ec2_client_stub.assert_no_pending_responses()
  
imports: import copy
  from unittest.mock import Mock, patch
  import pytest
  from click.exceptions import ClickException
  import ray.tests.aws.utils.helpers
  import ray.tests.aws.utils.stubs
  from ray.autoscaler._private.aws.config import DEFAULT_AMI, _configure_subnet, _get_subnets_or_die, bootstrap_aws, log_to_cli
  from ray.autoscaler._private.aws.node_provider import AWSNodeProvider
  from ray.autoscaler._private.providers import _get_node_provider
  from ray.tests.aws.utils.constants import AUX_SG, AUX_SUBNET, CUSTOM_IN_BOUND_RULES, DEFAULT_CLUSTER_NAME, DEFAULT_INSTANCE_PROFILE, DEFAULT_KEY_PAIR, DEFAULT_LT, DEFAULT_SG, DEFAULT_SG_AUX_SUBNET, DEFAULT_SG_DUAL_GROUP_RULES, DEFAULT_SG_WITH_NAME, DEFAULT_SG_WITH_NAME_AND_RULES, DEFAULT_SG_WITH_RULES, DEFAULT_SG_WITH_RULES_AUX_SUBNET, DEFAULT_SUBNET
label_desc: Use image node_id 4 for calling a global function with example usage: test_subnet_given_head_and_worker_sg(iam_client_stub, ec2_client_stub) without return types