fix: deploy directory uses {code}-test for trial environment

測試環境 deploy 目錄改為 {code}-test,避免與正式環境同 code 租戶衝突。
ssh_compose_up 也傳入正確的 deploy_name。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
VMIS Developer
2026-03-16 01:45:44 +08:00
parent 1ee0e98243
commit 60e85f565a

View File

@@ -137,7 +137,8 @@ def _ensure_tenant_compose(tenant, is_active: bool) -> bool:
try: try:
import paramiko import paramiko
code = tenant.code code = tenant.code
deploy_dir = f"{settings.TENANT_DEPLOY_BASE}/{code}" deploy_name = code if is_active else f"{code}-test"
deploy_dir = f"{settings.TENANT_DEPLOY_BASE}/{deploy_name}"
compose_path = f"{deploy_dir}/docker-compose.yml" compose_path = f"{deploy_dir}/docker-compose.yml"
env_path = f"{deploy_dir}/.env" env_path = f"{deploy_dir}/.env"
@@ -863,6 +864,7 @@ def run_tenant_check(schedule_log_id: int, db: Session):
realm = tenant.code realm = tenant.code
is_active = tenant.status == "active" is_active = tenant.status == "active"
deploy_name = tenant.code if is_active else f"{tenant.code}-test"
nc_name = f"nc-{tenant.code}" if is_active else f"nc-{tenant.code}-test" nc_name = f"nc-{tenant.code}" if is_active else f"nc-{tenant.code}-test"
oo_name = f"oo-{tenant.code}" if is_active else f"oo-{tenant.code}-test" oo_name = f"oo-{tenant.code}" if is_active else f"oo-{tenant.code}-test"
kc_host = KC_HOST_ACTIVE if is_active else KC_HOST_TRIAL kc_host = KC_HOST_ACTIVE if is_active else KC_HOST_TRIAL
@@ -952,7 +954,7 @@ def run_tenant_check(schedule_log_id: int, db: Session):
logger.info(f"NC {nc_name}: not found, ensuring compose/DB and deploying") logger.info(f"NC {nc_name}: not found, ensuring compose/DB and deploying")
_ensure_tenant_compose(tenant, is_active) _ensure_tenant_compose(tenant, is_active)
_ensure_nc_db(pg_host, pg_db, pg_port) _ensure_nc_db(pg_host, pg_db, pg_port)
ok = docker.ssh_compose_up(tenant.code) ok = docker.ssh_compose_up(deploy_name)
result.nc_result = True if ok else False result.nc_result = True if ok else False
if not ok: if not ok:
fail_reasons.append("nc: deploy failed") fail_reasons.append("nc: deploy failed")
@@ -963,7 +965,7 @@ def run_tenant_check(schedule_log_id: int, db: Session):
elif nc_state is False: elif nc_state is False:
# 容器存在但已停止 → 重啟 # 容器存在但已停止 → 重啟
logger.info(f"NC {nc_name}: stopped, restarting") logger.info(f"NC {nc_name}: stopped, restarting")
ok = docker.ssh_compose_up(tenant.code) ok = docker.ssh_compose_up(deploy_name)
result.nc_result = True if ok else False result.nc_result = True if ok else False
if not ok: if not ok:
fail_reasons.append("nc: start failed") fail_reasons.append("nc: start failed")
@@ -997,12 +999,12 @@ def run_tenant_check(schedule_log_id: int, db: Session):
try: try:
oo_state = docker.check_container_ssh(oo_name) oo_state = docker.check_container_ssh(oo_name)
if oo_state is None: if oo_state is None:
ok = docker.ssh_compose_up(tenant.code) ok = docker.ssh_compose_up(deploy_name)
result.office_result = True if ok else False result.office_result = True if ok else False
if not ok: if not ok:
fail_reasons.append("oo: deploy failed") fail_reasons.append("oo: deploy failed")
elif oo_state is False: elif oo_state is False:
ok = docker.ssh_compose_up(tenant.code) ok = docker.ssh_compose_up(deploy_name)
result.office_result = True if ok else False result.office_result = True if ok else False
if not ok: if not ok:
fail_reasons.append("oo: start failed") fail_reasons.append("oo: start failed")