fix(release): accept canonical infra hostname
This commit is contained in:
parent
761a34a121
commit
94d35f0b97
@ -5,6 +5,7 @@ set -euo pipefail
|
||||
|
||||
readonly EXPECTED_ACK='IMPORT_NEWAPI_POOL_TO_STAGING'
|
||||
readonly EXPECTED_SOURCE_HOST='mini-infra'
|
||||
readonly EXPECTED_SOURCE_RUNTIME_HOST='minione-ubuntu-infra'
|
||||
readonly EXPECTED_TARGET_HOST='root@100.64.0.7'
|
||||
readonly MYSQL_CONTAINER='game-staging-mysql'
|
||||
readonly MYSQL_DATABASE='ruoyi-vue-pro'
|
||||
@ -31,8 +32,10 @@ esac
|
||||
|
||||
source_hostname="$("$HOSTNAME_BIN" -s 2>/dev/null || "$HOSTNAME_BIN")"
|
||||
source_hostname="${source_hostname%%.*}"
|
||||
[ "$source_hostname" = "$EXPECTED_SOURCE_HOST" ] || \
|
||||
die "只允许在 mini-infra 离线执行,actual=$source_hostname"
|
||||
case "$source_hostname" in
|
||||
"$EXPECTED_SOURCE_HOST"|"$EXPECTED_SOURCE_RUNTIME_HOST") ;;
|
||||
*) die "只允许在 mini-infra 离线执行,actual=$source_hostname" ;;
|
||||
esac
|
||||
[ "$NEWAPI_POOL_IMPORT_HOST" = "$EXPECTED_TARGET_HOST" ] || \
|
||||
die "导入目标只允许 $EXPECTED_TARGET_HOST"
|
||||
[ ! -e "$NEWAPI_POOL_IMPORT_EVIDENCE" ] || \
|
||||
|
||||
@ -65,7 +65,10 @@ run_import() {
|
||||
|
||||
run_import "$TMP_DIR/import-first.evidence" >"$TMP_DIR/first.log"
|
||||
run_import "$TMP_DIR/import-second.evidence" >"$TMP_DIR/second.log"
|
||||
for evidence in "$TMP_DIR/import-first.evidence" "$TMP_DIR/import-second.evidence"; do
|
||||
MOCK_HOSTNAME_VALUE=minione-ubuntu-infra run_import "$TMP_DIR/import-runtime-host.evidence" \
|
||||
>"$TMP_DIR/runtime-host.log"
|
||||
for evidence in "$TMP_DIR/import-first.evidence" "$TMP_DIR/import-second.evidence" \
|
||||
"$TMP_DIR/import-runtime-host.evidence"; do
|
||||
[ "$(mode_of "$evidence")" = 400 ] || fail "脱敏证据权限不是 400:$evidence"
|
||||
rg -q '^status=PASS$' "$evidence" || fail "证据未记录 PASS"
|
||||
rg -q '^source_row_count=4$' "$evidence" || fail "证据未记录四条输入"
|
||||
|
||||
@ -242,7 +242,8 @@ def validate_provision_request(start: int, count: int, prefix: str, hostname: st
|
||||
安全字符与 20 字符上限,防止空跑被误记为成功或把不安全文本带入 SQL。
|
||||
"""
|
||||
short_hostname = hostname.split(".", 1)[0].lower()
|
||||
if short_hostname != "mini-infra":
|
||||
# mini-infra 是 SSH/业务别名,minione-ubuntu-infra 是机器实际 hostname;两者指向同一受控宿主。
|
||||
if short_hostname not in {"mini-infra", "minione-ubuntu-infra"}:
|
||||
raise ValueError(f"额度池预置只允许在 mini-infra 离线执行,actual={short_hostname}")
|
||||
if start < 1:
|
||||
raise ValueError("--start 必须大于等于 1")
|
||||
|
||||
@ -26,6 +26,10 @@ class ProvisionRequestTest(unittest.TestCase):
|
||||
names = MODULE.validate_provision_request(51, 4, "neice_", "mini-infra")
|
||||
self.assertEqual(names, ["neice_051", "neice_052", "neice_053", "neice_054"])
|
||||
|
||||
def test_accepts_canonical_runtime_hostname(self) -> None:
|
||||
names = MODULE.validate_provision_request(51, 4, "neice_", "minione-ubuntu-infra")
|
||||
self.assertEqual(names, ["neice_051", "neice_052", "neice_053", "neice_054"])
|
||||
|
||||
def test_rejects_non_mini_infra_host(self) -> None:
|
||||
with self.assertRaisesRegex(ValueError, "mini-infra"):
|
||||
MODULE.validate_provision_request(51, 4, "neice_", "mini-desktop")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user