forked from yandex/pandora
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathagent.sh
executable file
·120 lines (106 loc) · 2.88 KB
/
agent.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/env bash
set -eo pipefail
# shellcheck disable=SC2155
export _SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
# shellcheck source=_functions.sh
source "$_SCRIPT_DIR/_functions.sh"
# shellcheck source=_variables.sh
source "$_SCRIPT_DIR/_variables.sh"
# ---------------------------------------------------------------------------- #
# Retrieve arguments from command line #
# ---------------------------------------------------------------------------- #
_CMD=''
while [[ $# -gt 0 ]]; do
case "$1" in
create)
_CMD='create'
shift
break
;;
delete)
_CMD='delete'
shift
break
;;
-h | --help | *)
echo "Usage: $(basename "$0") subcommand [ARG]..."
echo ""
echo "Subcommands:"
echo " $(basename "$0") create [--count N] [ARG]..."
echo " create specified number of agents"
echo " $(basename "$0") delete [ARG]..."
echo " delete agents"
exit 0
;;
esac
done
if [[ -z "${VAR_FOLDER_ID:-$(yc_ config get folder-id)}" ]]; then
_log "Folder ID must be specified either via YC_LT_FOLDER_ID or via CLI profile."
exit 1
fi
if [[ "$_CMD" == 'create' ]]; then
_CNT=$VAR_AGENTS_CNT
while [[ $# -gt 0 ]]; do
case "$1" in
-h | --help)
echo "Usage: $(basename "$0") create [--count N] [ARG]..."
echo ""
echo "Call agent creation subroutine N times and wait until all agents are READY_FOR_TEST"
echo ""
echo "Subroutine help:"
run_script "$_SCRIPT_DIR/_agent_create.sh" --help
exit 0
;;
--count)
_CNT="$2"
shift
shift
break
;;
--)
shift
break
;;
*)
break
;;
esac
done
_log "Compute Agents create request. Number of agents: $_CNT"
_pids=()
for _i in $(seq 1 "$_CNT"); do
_log_stage "[$_i]"
run_script "$_SCRIPT_DIR/_agent_create.sh" "$@" &
_pids+=("$!")
done
_rc=0
for _pid in "${_pids[@]}"; do
wait "$_pid"
_rc=$((_rc | $?))
done
exit ${_rc}
elif [[ "$_CMD" == 'delete' ]]; then
while [[ $# -gt 0 ]]; do
case "$1" in
-h | --help)
echo "Usage: $(basename "$0") delete [ARG]..."
echo ""
echo "Call agent deletion subroutine"
echo ""
echo "Subroutine help:"
run_script "$_SCRIPT_DIR/_agent_delete.sh" --help
exit 0
;;
--)
shift
break
;;
*)
break
;;
esac
done
_log "Compute Agents delete request."
run_script "$_SCRIPT_DIR/_agent_delete.sh" "$@"
exit $?
fi