github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/dm/tests/_utils/get_leader (about)

     1  #!/bin/bash
     2  # tools to run get-leader command by dmctl and echo leader's name
     3  # parameter 1: work directory
     4  # parameter 2: master-addr port
     5  
     6  workdir=$1
     7  master_addr=$2
     8  
     9  PWD=$(pwd)
    10  binary=$PWD/bin/dmctl.test
    11  ts=$(date +"%s")
    12  dmctl_log=$workdir/dmctl.$ts.log
    13  pid=$$
    14  
    15  leader_name=""
    16  
    17  for ((k = 0; k < 30; k++)); do
    18  	leader_name=$($binary -test.coverprofile="$TEST_DIR/cov.$TEST_NAME.dmctl.$ts.$pid.out" DEVEL --master-addr=$master_addr list-member --leader | grep name | gawk 'match($2,/"(.*)",/,a) {print a[1]}')
    19  	if [[ ! -z "$leader_name" ]]; then
    20  		echo $leader_name
    21  		break
    22  	fi
    23  	sleep 2
    24  done
    25  
    26  if [[ -z "$leader_name" ]]; then
    27  	exit 1
    28  fi