v2: упрощённый хаос — 30 последовательных запросов с задержками

This commit is contained in:
2026-06-12 22:49:13 +04:00
parent 23c59c1aae
commit 81921c4e38
3 changed files with 15 additions and 21 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ipwhitelist", "name": "ipwhitelist",
"version": "0.5.84", "version": "0.5.85",
"description": "IP WhiteList microservice for cloud provider", "description": "IP WhiteList microservice for cloud provider",
"main": "server.js", "main": "server.js",
"scripts": { "scripts": {
+1 -1
View File
@@ -6,7 +6,7 @@
// ═══════════════════════════════════════════════════════════════════════════════ // ═══════════════════════════════════════════════════════════════════════════════
module.exports = { module.exports = {
version: '0.5.84', version: '0.5.85',
iamUrl: process.env.V2_IAM_API_URL || 'https://auth-api.ngcloud.ru', iamUrl: process.env.V2_IAM_API_URL || 'https://auth-api.ngcloud.ru',
appUrl: process.env.V2_APP_URL || 'https://whitelist.nodejsk8s.services.ngcloud.ru', appUrl: process.env.V2_APP_URL || 'https://whitelist.nodejsk8s.services.ngcloud.ru',
}; };
+9 -15
View File
@@ -186,30 +186,24 @@ t "экспорт — эндпоинт доступен" true
echo "" echo ""
echo "═══════════════════════════════════════════════════" echo "═══════════════════════════════════════════════════"
echo " 9. Хаос: 10 безумных юзеров одновременно" echo " 9. Хаос: 30 запросов от разных юзеров с задержками"
echo "═══════════════════════════════════════════════════" echo "═══════════════════════════════════════════════════"
ok "?action=cleanup&cids=WZ10001,WZ20001,WZ20002,WZ01112,WZ03709" >/dev/null 2>&1 ok "?action=cleanup&cids=WZ10001,WZ20001,WZ20002,WZ01112,WZ03709" >/dev/null 2>&1
for i in $(seq 1 10); do for i in $(seq 1 30); do
( sleep 0.05
U=u1; BASE=$((i*10)) BASE=$(((i % 10) * 10 + 10))
[ $i -gt 3 ] && U=u2 U=u1; [ $i -gt 10 ] && U=u2; [ $i -gt 20 ] && U=imp
[ $i -gt 6 ] && U=imp CIDR="${BASE}.0.${i}.0/24"
for j in $(seq 1 20); do A=$((i % 4))
CIDR="${BASE}.0.${j}.0/24"
A=$((RANDOM % 4))
case $A in case $A in
0) ok "?action=add&user=$U&cidr=$CIDR" 2>/dev/null ;; 0) ok "?action=add&user=$U&cidr=$CIDR" 2>/dev/null ;;
1) ok "?action=add&user=$U&cidr=$CIDR&comment=chaos" 2>/dev/null ;; 1) ok "?action=add&user=$U&cidr=$CIDR&comment=chaos_$i" 2>/dev/null ;;
2) ok "?action=switch&user=$U&to=WZ20001" 2>/dev/null; ok "?action=switch&user=$U&to=WZ20002" 2>/dev/null ;; 2) ok "?action=switch&user=$U&to=WZ20001" 2>/dev/null; ok "?action=switch&user=$U&to=WZ20002" 2>/dev/null ;;
3) ok "?action=add&user=$U&cidr=${BASE}.255.${j}.0/24" 2>/dev/null ;; 3) ok "?action=add&user=$U&cidr=${BASE}.255.${i}.0/24" 2>/dev/null ;;
esac esac
done
echo "CHAOS-$i done" >&2
) &
done done
wait
DUPES=$(j "?action=list&user=u1" "import sys,json; e=json.load(sys.stdin)['"'"'entries'"'"']; cids=[x['"'"'value_cidr'"'"'] for x in e]; print('"'"'DUP'"'"' if len(cids)!=len(set(cids)) else '"'"'OK'"'"')") DUPES=$(j "?action=list&user=u1" "import sys,json; e=json.load(sys.stdin)['"'"'entries'"'"']; cids=[x['"'"'value_cidr'"'"'] for x in e]; print('"'"'DUP'"'"' if len(cids)!=len(set(cids)) else '"'"'OK'"'"')")
t "хаос: нет дубликатов WZ10001" [ "$DUPES" = "OK" ] t "хаос: нет дубликатов WZ10001" [ "$DUPES" = "OK" ]