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:
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user