fix edge cases when data doesn't exist

This commit is contained in:
Laura Abro
2025-04-24 22:00:54 -03:00
parent 80774287e2
commit 5c41ec9119
5 changed files with 19 additions and 11 deletions

View File

@ -21,4 +21,5 @@ def execute(runner, worker, data):
) )
response.raise_for_status() response.raise_for_status()
return response.json() # Return a formatted response regardless of type
return {"success": True, "message": response.text}

View File

@ -6,17 +6,22 @@ import requests
def prepare(runner, worker): def prepare(runner, worker):
"""Prepare data for worker task""" """Prepare data for worker task"""
# Create fetch-todo payload for stakingSignature and publicSignature # Create fetch-todo payload for stakingSignature and publicSignature
round_state = runner.state["rounds"][str(runner.current_round)] round_state = runner.state["rounds"].get(str(runner.current_round), {})
if not round_state.get("pr_urls"):
print(f"✓ No PR URLs found for {worker.name} - continuing")
return
return { return {
"stakingKey": worker.staking_public_key, "stakingKey": worker.staking_public_key,
"roundNumber": runner.current_round, "roundNumber": runner.current_round,
"githubUsername": worker.env.get("GITHUB_USERNAME"), "githubUsername": worker.env.get("GITHUB_USERNAME"),
"prUrl": round_state["pr_urls"][worker.name], "prUrl": round_state.get("pr_urls", {}).get(worker.name),
} }
def execute(runner, worker, data): def execute(runner, worker, data):
"""Execute worker task step""" """Execute worker task step"""
if not data:
return {"success": True, "message": "No PR URL found"}
url = f"{runner.config.middle_server_url}/summarizer/worker/check-todo" url = f"{runner.config.middle_server_url}/summarizer/worker/check-todo"
response = requests.post( response = requests.post(
url, url,

View File

@ -45,7 +45,8 @@ def execute(runner, worker, data):
response.raise_for_status() response.raise_for_status()
if result.get("success"): if result.get("success"):
runner.state["repo_url"] = ( round_state = runner.state["rounds"][runner.current_round]
round_state["repo_url"] = (
f"https://github.com/{result['data']['repo_owner']}/{result['data']['repo_name']}" f"https://github.com/{result['data']['repo_owner']}/{result['data']['repo_name']}"
) )

View File

@ -3,9 +3,9 @@ from prometheus_test.utils import create_signature
def prepare(runner, worker): def prepare(runner, worker):
round_state = runner.state["rounds"][str(runner.current_round)] round_state = runner.state["rounds"].get(str(runner.current_round), {})
if worker.name not in round_state["pr_urls"]: if worker.name not in round_state.get("pr_urls", {}):
print(f"✓ No PR URL found for {worker.name} - continuing") print(f"✓ No PR URL found for {worker.name} - continuing")
return None return None

View File

@ -5,20 +5,21 @@ import requests
def prepare(runner, worker): def prepare(runner, worker):
"""Prepare data for worker task""" """Prepare data for worker task"""
round_state = runner.state["rounds"].get(str(runner.current_round), {})
if not round_state.get("repo_url"):
print(f"✓ No repo url found for {worker.name} - continuing")
return
return { return {
"taskId": runner.config.task_id, "taskId": runner.config.task_id,
"round_number": str(runner.current_round), "round_number": str(runner.current_round),
"repo_url": runner.state["repo_url"], "repo_url": round_state["repo_url"],
} }
def execute(runner, worker, data): def execute(runner, worker, data):
"""Execute worker task step""" """Execute worker task step"""
if not runner.state["repo_url"]: if not data:
print(f"✓ No repo url found for {worker.name} - continuing")
return {"success": True, "message": "No repo url found"} return {"success": True, "message": "No repo url found"}
url = f"{worker.url}/worker-task/{runner.current_round}" url = f"{worker.url}/worker-task/{runner.current_round}"
response = requests.post(url, json=data) response = requests.post(url, json=data)
result = response.json() result = response.json()