refactor: rewrite tsg diagnose scripts.

This commit is contained in:
fumingwei
2024-05-22 19:37:04 +08:00
parent e1d6b84deb
commit 1c57ecf46d
2 changed files with 77 additions and 70 deletions

View File

@@ -1,56 +1,56 @@
#!/bin/bash -e #!/bin/bash -e
K3S_BIN_PATH="/usr/bin/k3s" K3S_BIN_PATH="/usr/bin/k3s"
max_service_function_index=1 service_function_names_regexp=".+"
service_function_index="" case_names_regexp=".+"
ARGS=`getopt -a -o m:i:h -l max-service-function-index:,service-function-index:,help -- "$@"`
eval set -- "${ARGS}"
usage(){ usage(){
echo "" echo ""
echo "usage: tsg-diagnose-oneshot [option]" echo "usage: tsg-diagnose-oneshot [option]"
echo "" echo ""
echo "Options:" echo "Options:"
echo " -h --help Detailed usage syntax" echo " -h --help Detailed usage syntax"
echo " -m --max-service-function-index Count of service-function,default:1" echo " --service_function_names_regexp Regexp of the service function names to run. Default: .+"
echo " -i --service-function-index List of service-function index" echo " --case_names_regexp Regexp of the case names to run. Default: .+"
echo "Example: tsg-diagnose-oneshot -m 5" echo "Example: tsg-diagnose-oneshot --service_function_names_regexp .+ --case_names_regexp .+"
echo " or tsg-diagnose-oneshot -i 1 -i 2 -i 3"
exit 0 exit 0
} }
function get_args(){ get_args() {
while true while [[ $# -gt 0 ]]; do
do case "$1" in
case "$1" in --service_function_names_regexp)
-m|--max-service-function-index) export service_function_names_regexp="$2"
export max_service_function_index=$2 shift 2
;; ;;
-i|--service-function-index) --case_names_regexp)
export service_function_index="$2 $service_function_index" export case_names_regexp="$2"
;; shift 2
;;
-h|--help) -h|--help)
usage usage
;; ;;
--) --)
shift shift
break break
;; ;;
esac *)
shift echo "Unknown option: $1"
usage
exit 1
;;
esac
done done
} }
get_args $@ ARGS=$(getopt -a -o h -l service_function_names_regexp:,case_names_regexp:,help -- "$@")
eval set -- "${ARGS}"
get_args "$@"
command="python bin/client.py --service_function_names_regexp $service_function_names_regexp --case_names_regexp $case_names_regexp"
if [ -f "$K3S_BIN_PATH" ]; then if [ -f "$K3S_BIN_PATH" ]; then
if [ -z "$service_function_index" ]; then kubectl exec -n tsg-os-system -it daemonset/dign-client -- $command
kubectl exec -it daemonset/dign-client -- python bin/client.py -m $max_service_function_index
else
kubectl exec -it daemonset/dign-client -- python bin/client.py -d $service_function_index
fi
else else
systemctl start tsg-diagnose systemctl start tsg-diagnose
sleep 10 sleep 10
docker exec -it dign-client /bin/sh -c "python bin/client.py -o" docker exec -it dign-client $command
fi fi

View File

@@ -1,56 +1,63 @@
#!/bin/bash -e #!/bin/bash -e
K3S_BIN_PATH="/usr/bin/k3s" K3S_BIN_PATH="/usr/bin/k3s"
max_service_function_index=1 service_function_names_regexp=".+"
service_function_index="" case_names_regexp=".+"
interval="30"
ARGS=`getopt -a -o m:i:h -l max-service-function-index:,service-function-index:,help -- "$@"`
eval set -- "${ARGS}"
usage(){ usage(){
echo "" echo ""
echo "usage: tsg-diagnose-oneshot [option]" echo "usage: tsg-diagnose-oneshot [option]"
echo "" echo ""
echo "Options:" echo "Options:"
echo " -h --help Detailed usage syntax" echo " -h --help Detailed usage syntax"
echo " -m --max-service-function-index Count of service-function,default:1" echo " --service_function_names_regexp Regexp of the service function names to run. Default: .+"
echo " -i --service-function-index List of service-function index" echo " --case_names_regexp Regexp of the case names to run. Default: .+"
echo "Example: tsg-diagnose-oneshot -m 5" echo " --interval The time interval in seconds between consecutive TSG diagnose operations. Default: 30."
echo " or tsg-diagnose-oneshot -i 1 -i 2 -i 3" echo "Example: tsg-diagnose-oneshot --service_function_names_regexp .+ --case_names_regexp .+ --interval 60"
exit 0 exit 0
} }
function get_args(){ get_args() {
while true while [[ $# -gt 0 ]]; do
do case "$1" in
case "$1" in --service_function_names_regexp)
-m|--max-service-function-index) export service_function_names_regexp="$2"
export max_service_function_index=$2 shift 2
;; ;;
-i|--service-function-index) --case_names_regexp)
export service_function_index="$2 $service_function_index" export case_names_regexp="$2"
;; shift 2
;;
--interval)
export interval="$2"
shift 2
;;
-h|--help) -h|--help)
usage usage
;; ;;
--) --)
shift shift
break break
;; ;;
esac *)
shift echo "Unknown option: $1"
usage
exit 1
;;
esac
done done
} }
get_args $@ ARGS=$(getopt -a -o h -l service_function_names_regexp:,case_names_regexp:,interval:,help -- "$@")
eval set -- "${ARGS}"
get_args "$@"
command="python bin/client.py --periodical --service_function_names_regexp $service_function_names_regexp --case_names_regexp $case_names_regexp --interval $interval"
if [ -f "$K3S_BIN_PATH" ]; then if [ -f "$K3S_BIN_PATH" ]; then
if [ -z "$service_function_index" ]; then kubectl exec -n tsg-os-system -it daemonset/dign-client -- $command
kubectl exec -it daemonset/dign-client -- python bin/client.py -m $max_service_function_index -l
else
kubectl exec -it daemonset/dign-client -- python bin/client.py -d $service_function_index -l
fi
else else
systemctl start tsg-diagnose systemctl start tsg-diagnose
sleep 10 sleep 10
docker exec -it dign-client /bin/sh -c "python bin/client.py -l -o" docker exec -it dign-client $command
fi fi