docstr: Method:
  1. create 2 collections: c1 and c2
  2. create 2 rgs: rgA(1 node) and rgB(0 node)
  3. load c1 and c2 with 1 replica into default rg
  4. transfer 1 node from default rg to rgB and transfer replica of c2 from default to rgB
  5. transfer replica of c1 from default to rgB
docstr_tok: ["Method",":","1.","create","2","collections",":","c1","and","c2","2.","create","2","rgs",":","rgA","(","1","node",")","and","rgB","(","0","node",")","3.","load","c1","and","c2","with","1","replica","into","default","rg","4.","transfer","1","node","from","default","rg","to","rgB","and","transfer","replica","of","c2","from","default","to","rgB","5.","transfer","replica","of","c1","from","default","to","rgB"]
code: def test_transfer_node_n_replicas_to_default_rg(self, with_growing):
      """
      Method:
      1. create 2 collections: c1 and c2
      2. create 2 rgs: rgA(1 node) and rgB(0 node)
      3. load c1 and c2 with 1 replica into default rg
      4. transfer 1 node from default rg to rgB and transfer replica of c2 from default to rgB
      5. transfer replica of c1 from default to rgB
      """
      dim = 128
      collection_w_a = self.init_collection_wrap(shards_num=4)
      collection_w_b = self.init_collection_wrap(shards_num=4)
      insert_ids = []
      nb = 500
      for i in range(5):
          res, _ = collection_w_a.insert(
              cf.gen_default_list_data(nb=nb, dim=dim, start=i * nb)
          )
          collection_w_a.flush()
          res, _ = collection_w_b.insert(
              cf.gen_default_list_data(nb=nb, dim=dim, start=i * nb)
          )
          collection_w_b.flush()
          insert_ids.extend(res.primary_keys)
      collection_w_a.create_index(
          ct.default_float_vec_field_name, ct.default_index
      )
      collection_w_b.create_index(
          ct.default_float_vec_field_name, ct.default_index
      )
  
      # prepare rg
      num_node = 2
      rgA_name = cf.gen_unique_str("rgA")
      self.init_resource_group(rgA_name)
      self.utility_wrap.transfer_node(
          source=ct.default_resource_group_name,
          target=rgA_name,
          num_node=num_node,
      )
      rgB_name = cf.gen_unique_str("rgB")
      self.init_resource_group(rgB_name)
  
      # load collections
      collection_w_a.load()
      collection_w_b.load()
  
      # make growing
      if with_growing:
          res, _ = collection_w_a.insert(
              cf.gen_default_list_data(nb, dim=dim, start=6 * nb)
          )
          res, _ = collection_w_b.insert(
              cf.gen_default_list_data(nb, dim=dim, start=6 * nb)
          )
          insert_ids.extend(res.primary_keys)
  
      # transfer 1 node from default rg to rgB and transfer replica of c2 from default to rgB
      self.utility_wrap.transfer_node(
          source=ct.default_resource_group_name,
          target=rgB_name,
          num_node=1,
      )
      self.utility_wrap.transfer_replica(
          source=ct.default_resource_group_name,
          target=rgB_name,
          collection_name=collection_w_b.name,
          num_replica=1,
      )
  
      # transfer replica of c1 from default to rgB
      self.utility_wrap.transfer_replica(
          source=ct.default_resource_group_name,
          target=rgB_name,
          collection_name=collection_w_a.name,
          num_replica=1,
      )
  
      # verify search succ
      nq = 5
      vectors = [
          [random.random() for _ in range(dim)] for _ in range(nq)
      ]
      collection_w_a.search(
          vectors[:nq],
          ct.default_float_vec_field_name,
          ct.default_search_params,
          ct.default_limit,
          check_task=CheckTasks.check_search_results,
          check_items={
              "nq": nq,
              "ids": insert_ids.copy(),
              "limit": ct.default_limit,
          },
      )
      collection_w_b.search(
          vectors[:nq],
          ct.default_float_vec_field_name,
          ct.default_search_params,
          ct.default_limit,
          check_task=CheckTasks.check_search_results,
          check_items={
              "nq": nq,
              "ids": insert_ids.copy(),
              "limit": ct.default_limit,
          },
      )
  
imports: import pytest
  from base.client_base import TestcaseBase
  from common import common_func
  from common import common_type
  from common.common_type import CaseLabel, CheckTasks
  from utils.util_pymilvus import *
label_desc: Use image node_id 11 for calling the TestResourceGroupMultiNodes obj's underlying member method code with example usage: obj.test_transfer_node_n_replicas_to_default_rg(with_growing) without return types