fix: AE test fixed GO_NS+600s retry; tf: go-builder-fast:v1 in simple_function
This commit is contained in:
@@ -68,7 +68,7 @@ var runtimeRegistry = map[string]runtimeMeta{
|
||||
},
|
||||
"go": {
|
||||
image: "ghcr.io/fission/go-env:latest",
|
||||
builderImage: "ghcr.io/fission/go-builder:latest",
|
||||
builderImage: "naeel/go-builder-fast:v1",
|
||||
deployType: "source",
|
||||
entrypoint: "Handler",
|
||||
poolSize: 3,
|
||||
|
||||
+14
-6
@@ -6,6 +6,12 @@ PASS=0; FAIL=0
|
||||
RUN_ID=$(date +%s%N 2>/dev/null || date +%s)$(od -An -N2 -tu2 /dev/urandom 2>/dev/null | tr -d ' ' || echo "$$")
|
||||
RUN_ID=$(echo "$RUN_ID" | sha256sum 2>/dev/null | head -c 8 || echo "${RUN_ID}" | cut -c1-8)
|
||||
|
||||
# GO_NS фиксированный — namespace создаётся один раз, Fission не рестартует при повторных прогонах.
|
||||
# Первый прогон занимает ~5 мин (rolling restart Fission), последующие — мгновенно.
|
||||
GO_NS="go-livetest@test.local"
|
||||
# Триггерим ensureUserNamespace заранее — Fission начнёт регистрировать NS пока идут остальные тесты.
|
||||
curl -s -o /dev/null -X GET ${BASE}/functions -H "X-Test-Sub: ${GO_NS}" || true
|
||||
|
||||
pass() { PASS=$((PASS+1)); echo " PASS: $1"; }
|
||||
fail() { FAIL=$((FAIL+1)); echo " FAIL: $1"; }
|
||||
check_http() { local got=$1 want=$2 label=$3; [ "$got" = "$want" ] && pass "$label (HTTP $got)" || fail "$label --- got HTTP $got, want $want"; }
|
||||
@@ -772,19 +778,21 @@ check_http "$CODE" "400" "Невалидный язык cobol → 400"
|
||||
echo ""
|
||||
echo ">>> БЛОК AE: Go — создание и вызов"
|
||||
|
||||
# Go использует newdeploy executor + buildermgr (~60-90s на сборку).
|
||||
# Используем отдельный namespace чтобы не ждать executor rollout.
|
||||
GO_NS="go-${RUN_ID}@test.local"
|
||||
# Go: namespace GO_NS уже прогрет в начале теста (curl в самом верху).
|
||||
# При первом прогоне Fission делает rolling restart (~5 мин) — retry до 600s покрывает это.
|
||||
# При последующих прогонах NS уже зарегистрирован → invoke занимает ~10-15s.
|
||||
GO_CODE=$(python3 -c "import json; print(json.dumps('package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n)\n\nfunc Handler(w http.ResponseWriter, r *http.Request) {\n\tfmt.Fprintf(w, \"go-ok\")\n}'))")
|
||||
# Удаляем старую функцию если осталась от прошлого прогона (игнорируем ошибку)
|
||||
curl -s -o /dev/null -X DELETE ${BASE}/functions/go-fn -H "X-Test-Sub: ${GO_NS}" || true
|
||||
R=$(curl -s -w "\n%{http_code}" -X POST ${BASE}/functions \
|
||||
-H "X-Test-Sub: ${GO_NS}" -H "Content-Type: application/json" \
|
||||
-d "{\"name\":\"go-fn\",\"language\":\"go\",\"code\":${GO_CODE},\"ttl\":\"10m\"}")
|
||||
-d "{\"name\":\"go-fn\",\"language\":\"go\",\"code\":${GO_CODE},\"ttl\":\"30m\"}")
|
||||
CODE=$(echo "$R" | tail -1)
|
||||
check_http "$CODE" "201" "Go: create → 201"
|
||||
|
||||
# Retry до 240s (24 итерации × 10s): ждём сборку + запуск newdeploy pod.
|
||||
# Retry до 600s (60 итераций × 10s): первый прогон — ждём Fission rolling restart + build + pool pod.
|
||||
STATUS=""; RAW=""
|
||||
for _try in $(seq 1 24); do
|
||||
for _try in $(seq 1 60); do
|
||||
sleep 10
|
||||
INV=$(curl -s -X POST ${BASE}/functions/go-fn/invoke \
|
||||
-H "X-Test-Sub: ${GO_NS}")
|
||||
|
||||
Reference in New Issue
Block a user