class_docstr: Test case of action before reinstall 
docstr: before reinstall: create collection and insert data, load and search
  after reinstall: get collection, search, create index, load, and search
docstr_tok: ["before","reinstall",":","create","collection","and","insert","data",",","load","and","search","after","reinstall",":","get","collection",",","search",",","create","index",",","load",",","and","search"]
code: def test_task_all(
      self,
      index_type,
      is_compacted,
      segment_status,
      is_vector_indexed,
      is_string_indexed,
      replica_number,
      is_deleted,
      data_size,
  ):
      """
      before reinstall: create collection and insert data, load and search
      after reinstall: get collection, search, create index, load, and search
      """
      name = f"index_type_{index_type}_segment_status_{segment_status}_is_vector_indexed_{is_vector_indexed}_is_string_indexed_{is_string_indexed}_is_compacted_{is_compacted}_is_deleted_{is_deleted}_replica_number_{replica_number}_data_size_{data_size}"
      ms = MilvusSys()
      is_binary = True if "BIN" in index_type else False
      # insert with small size data without flush to get growing segment
      collection_w = self.init_collection_general(
          insert_data=True,
          is_binary=is_binary,
          nb=3000,
          is_flush=False,
          name=name,
      )[0]
  
      # load for growing segment
      if replica_number > 0:
          collection_w.load(replica_number=replica_number)
  
      delete_expr = (
          f"{ct.default_int64_field_name} in [0,1,2,3,4,5,6,7,8,9]"
      )
      # delete data for growing segment
      if is_deleted:
          collection_w.delete(expr=delete_expr)
      if segment_status == "only_growing":
          pytest.skip("already get growing segment, skip testcase")
      # insert with flush multiple times to generate multiple sealed segment
      for i in range(5):
          self.init_collection_general(
              insert_data=True,
              is_binary=is_binary,
              nb=data_size,
              is_flush=False,
              name=name,
          )
      if is_binary:
          default_index_field = ct.default_binary_vec_field_name
      else:
          default_index_field = ct.default_float_vec_field_name
      if is_vector_indexed:
          # create index
          default_index_param = gen_index_param(index_type)
          collection_w.create_index(
              default_index_field, default_index_param
          )
      if is_string_indexed:
          # create index
          default_string_index_params = {}
          collection_w.create_index(
              default_string_field_name, default_string_index_params
          )
      # delete data for sealed segment
      delete_expr = f"{ct.default_int64_field_name} in [10,11,12,13,14,15,16,17,18,19]"
      if is_deleted:
          collection_w.delete(expr=delete_expr)
      if is_compacted:
          collection_w.compact()
      # reload after flush and create index
      if replica_number > 0:
          collection_w.release()
          collection_w.load(replica_number=replica_number)
  
file_path: milvus/tests/python_client/deploy/testcases/test_action_after_reinstall.py
imports: import pytest
  import random
  from common import common_func
  from common import common_type
  from common.common_type import CaseLabel, CheckTasks
  from common.milvus_sys import MilvusSys
  from utils.util_pymilvus import *
  from deploy.base import TestDeployBase
  from deploy import common
  from deploy.common import gen_index_param, gen_search_param
label_desc: Use image node_id 4 for calling the TestActionBeforeReinstall obj's underlying member method code with example usage: obj.test_task_all(index_type, is_compacted, segment_status, is_vector_indexed, is_string_indexed, replica_number, is_deleted, data_size) without return types