docstr: target: test create collection with different param
  method: concurrent create collections with different param with multi thread
  expected: only one collection can success
docstr_tok: ["target",":","test","create","collection","with","different","param","method",":","concurrent","create","collections","with","different","param","with","multi","thread","expected",":","only","one","collection","can","success"]
code: def test_create_collections_concurrent_with_different_param(self):
      """
      target: test create collection with different param
      method: concurrent create collections with different param with multi thread
      expected: only one collection can success
      """
      concurrent_rsp = []
  
      def create_collection(c_name, vector_dim, c_metric_type):
          collection_payload = {
              "collectionName": c_name,
              "dimension": vector_dim,
              "metricType": c_metric_type,
          }
          rsp = client.collection_create(collection_payload)
          concurrent_rsp.append(rsp)
          logger.info(rsp)
  
      name = gen_collection_name()
      dim = 128
      client = self.collection_client
      threads = []
      for i in range(0, 5):
          t = threading.Thread(
              target=create_collection,
              args=(
                  name,
                  dim + i,
                  "L2",
              ),
          )
          threads.append(t)
      for i in range(5, 10):
          t = threading.Thread(
              target=create_collection,
              args=(
                  name,
                  dim + i,
                  "IP",
              ),
          )
          threads.append(t)
      for t in threads:
          t.start()
      for t in threads:
          t.join()
      time.sleep(10)
      success_cnt = 0
      for rsp in concurrent_rsp:
          if rsp["code"] == 200:
              success_cnt += 1
      logger.info(concurrent_rsp)
      assert success_cnt == 1
      rsp = client.collection_list()
      all_collections = rsp["data"]
      assert name in all_collections
      # describe collection
      rsp = client.collection_describe(name)
      assert rsp["code"] == 200
      assert rsp["data"]["collectionName"] == name
  
imports: import datetime
  import random
  import time
  from utils.util_log import test_log
  from utils.utils import gen_collection_name
  import pytest
  from api.milvus import CollectionClient
  from base.testbase import TestBase
  import threading
label_desc: Use image node_id 3 for calling the TestCreateCollection obj's underlying member method code with example usage: obj.test_create_collections_concurrent_with_different_param() without return types