From 5661a9f299bd5c57338463f6344851fe20cd60fb Mon Sep 17 00:00:00 2001 From: Subroto Date: Mon, 12 Oct 2026 21:42:28 +0700 Subject: [PATCH] sync @ 15319b5 --- deploy/bootstrap.sh | 15 ++++++++++++++- deploy/scripts/test-generate.sh | 13 +++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/deploy/bootstrap.sh b/deploy/bootstrap.sh index ff2c503..eb9f00b 100755 --- a/deploy/bootstrap.sh +++ b/deploy/bootstrap.sh @@ -882,7 +882,20 @@ bootstrap_starrocks() { 'aws.s3.region' = '${S3_REGION:-us-east-1}' );" 2>/dev/null && echo -e "${OK} External Catalog 'iceberg_catalog' dibuat." || \ echo -e "${WARN} External Catalog gagal/mungkin sudah ada." - sr_mysql "SHOW CATALOGS;" | grep -q "iceberg_catalog" && echo -e "${OK} Catalog 'iceberg_catalog' terverifikasi." + sr_mysql "SHOW CATALOGS;" | grep -q "iceberg_catalog" && echo -e "${OK} Catalog 'iceberg_catalog' terverifikasi." + + # ── Uji MENDALAM (bukti konektivitas, bukan sekadar registrasi) ────────── + # CREATE EXTERNAL CATALOG + SHOW CATALOGS hanya sisi StarRocks (REST dihubungi + # LAZY) → keduanya bisa [OK] walau Nessie TIDAK menyajikan Iceberg REST. + # `SHOW DATABASES FROM` memaksa StarRocks menghubungi REST server → bukti nyata. + local _icd="" + if _icd="$(sr_mysql "SHOW DATABASES FROM iceberg_catalog;")"; then + echo -e "${OK} Iceberg REST Nessie terjangkau (uji metadata iceberg_catalog lolos)." + else + echo -e "${WARN} iceberg_catalog terdaftar TAPI metadata TIDAK terbaca — Nessie existing" + echo -e "${WARN} kemungkinan tanpa Iceberg REST (path '${NESSIE_ICEBERG_PREFIX:-/iceberg}') atau warehouse belum diset." + echo -e "${WARN} Bukti: curl -s -o /dev/null -w '%{http_code}\\n' '${NESSIE_URL:-http://nessie:19120}${NESSIE_ICEBERG_PREFIX:-/iceberg}/v1/config' (404 = REST tak ada)" + fi echo -e "${OK} ${GREEN}Step 5 selesai — StarRocks terkonfigurasi.${NC}" echo "" diff --git a/deploy/scripts/test-generate.sh b/deploy/scripts/test-generate.sh index 306f7e4..713305a 100755 --- a/deploy/scripts/test-generate.sh +++ b/deploy/scripts/test-generate.sh @@ -499,6 +499,19 @@ else bad "verify-phase2: pesan FAIL belum menampilkan kode HTTP + penyebab" fi +# ─── 0w. bootstrap: uji MENDALAM katalog StarRocks (bukan hanya registrasi) ─── +# CREATE EXTERNAL CATALOG + SHOW CATALOGS hanya sisi StarRocks (REST dihubungi lazy) +# → keduanya bisa [OK] walau Nessie TIDAK menyajikan Iceberg REST. Bootstrap wajib +# menjalankan `SHOW DATABASES FROM iceberg_catalog` sebagai bukti konektivitas. +_bw=1 +grep -qF 'SHOW DATABASES FROM iceberg_catalog;' "${DEPLOY_DIR}/bootstrap.sh" || _bw=0 +grep -qF 'uji metadata iceberg_catalog lolos' "${DEPLOY_DIR}/bootstrap.sh" || _bw=0 +if [[ "${_bw}" == "1" ]]; then + ok "bootstrap: uji mendalam katalog StarRocks (SHOW DATABASES FROM iceberg_catalog)" +else + bad "bootstrap: tak ada uji mendalam katalog StarRocks (bisa false-green saat Nessie tanpa REST)" +fi + # ─── 1. generate ──────────────────────────────────────────────────────────── if ! python3 "${DEPLOY_DIR}/lib/cluster/generate.py" render \ "${INVENTORY}" "${DEPLOY_DIR}/docker-compose.yml" "${DEPLOY_DIR}/.env" \