Fix: Add page limit to debug script to prevent infinite loops

This commit is contained in:
kim
2026-01-29 17:30:47 +08:00
parent f9de77d7a2
commit e64bdbe2fa
+21 -2
View File
@@ -100,9 +100,18 @@ def fetch_all_packages():
version = "2022-01-01" version = "2022-01-01"
all_packages = [] all_packages = []
current_token = "" current_token = ""
page_count = 0
MAX_PAGES = 15 # 🛑 Safety Limit for Debugging
while True: while True:
try: try:
page_count += 1
if page_count > MAX_PAGES:
print(
f"⚠️ Reached MAX_PAGES ({MAX_PAGES}). Stopping fetch to prevent infinite loop."
)
break
payload = { payload = {
"ResourceType": "Package", "ResourceType": "Package",
"MaxResults": "20", "MaxResults": "20",
@@ -111,7 +120,7 @@ def fetch_all_packages():
headers, body = get_signed_headers(action, version, payload) headers, body = get_signed_headers(action, version, payload)
url = f"https://{HOST}/?Action={action}&Version={version}" url = f"https://{HOST}/?Action={action}&Version={version}"
print(f" POST {url}") print(f" [Page {page_count}] POST {url} (Token: {current_token[:10]}...)")
response = requests.post(url, data=body, headers=headers, timeout=60) response = requests.post(url, data=body, headers=headers, timeout=60)
if response.status_code != 200: if response.status_code != 200:
@@ -128,8 +137,18 @@ def fetch_all_packages():
all_packages.extend(items) all_packages.extend(items)
next_token = data.get("Result", {}).get("NextToken", "") next_token = data.get("Result", {}).get("NextToken", "")
if not next_token or next_token == current_token:
# Debug Token Transition
# print(f" Token: '{current_token}' -> '{next_token}'")
if not next_token:
print(" ✅ No NextToken. Done.")
break break
if next_token == current_token:
print(" ⚠️ NextToken did not change. Stopping.")
break
current_token = next_token current_token = next_token
time.sleep(0.2) time.sleep(0.2)
except Exception as e: except Exception as e: