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

View File

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