_tmp_sd7_rerun.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env python3
  2. """Reset UAT passwords and run a named WP-SD8 API loop. Do not commit."""
  3. from __future__ import annotations
  4. import os
  5. import sys
  6. from pathlib import Path
  7. os.environ.setdefault("AIDOP_API_BASE", "http://127.0.0.1:5005")
  8. HERE = Path(__file__).resolve().parent
  9. sys.path.insert(0, str(HERE))
  10. from run_wp_sd7_api_loop import TENANTS, login, request, unwrap, main as run_loop # noqa: E402
  11. SUPER_CIPHER = os.environ.get("AIDOP_SUPER_CIPHER", "").strip()
  12. if not SUPER_CIPHER:
  13. raise SystemExit("AIDOP_SUPER_CIPHER required")
  14. def reset_password(super_token: str, user_id: str) -> str:
  15. status, body = request("POST", "/api/sysUser/resetPwd", {"id": int(user_id)}, super_token)
  16. pwd = unwrap(body)
  17. if status != 200 or not isinstance(pwd, str) or not pwd:
  18. raise SystemExit(f"resetPwd failed for {user_id}: HTTP {status}")
  19. return pwd
  20. def main() -> None:
  21. suffix = os.environ.get("AIDOP_UAT_OUT_PREFIX", "08-rerun1")
  22. modules = os.environ.get("AIDOP_UAT_MODULES", "").strip()
  23. super_token = login("superAdmin.NET", "1300000000001", SUPER_CIPHER, already_encrypted=True)
  24. passwords = {}
  25. for code, meta in TENANTS.items():
  26. passwords[code] = reset_password(super_token, meta["user_id"])
  27. print("reset_ok", code, meta["account"])
  28. argv = sys.argv[:]
  29. for code in TENANTS:
  30. args = [
  31. "run_wp_sd7_api_loop.py",
  32. "--tenant",
  33. code,
  34. "--password",
  35. passwords[code],
  36. "--out",
  37. f"{suffix}-{code}.json",
  38. ]
  39. if modules:
  40. args.extend(["--modules", modules])
  41. sys.argv = args
  42. run_loop()
  43. sys.argv = argv
  44. if __name__ == "__main__":
  45. main()