INNER CODE UNIT · Python
_post_agent_payload
ChrispyBacon-dev/DockFlare · dockflare-agent/app/main.py:416
def _post_agent_payload(payload):
global last_successful_master_contact
endpoint = f"{MASTER_URL}/api/v2/agents/{AGENT_ID}/events"
for attempt in range(3):
try:
response = requests.post(endpoint, json=payload, headers=get_headers(), timeout=15)
code = _safe_response_code(response)
accepted_code = code in {"accepted", "accepted_noop", "duplicate_sequence", "inventory_incomplete"}
if response.status_code in (200, 202) and (accepted_code or PROTOCOL_VERSION == 1):
last_successful_master_contact = datetime.now(timezone.utc)
return True
if response.status_code == 409 and code == "registration_required":
with _registration_lock:
if register_with_master():
return False
if response.status_code == 429 or response.status_code >= 500:
if attempt < 2:
retry_after = response.headers.get("Retry-After") if hasattr(response, "headers") else None