Skip to main content
Glama
remedy_retry.py1.47 kB
# type: ignore from behave import when, then, register_type from behave.api.async_step import async_run_until_complete from typing import Any from utils.policies import EndpointPolicy, PoliciesRequests def parse_int(text: str) -> int: return int(text) register_type(Int=parse_int) @when( "policies.yaml includes retry remedy for {method} {host} {path:Path} requests with attempts={attempts:Int}, initial_cooldown_seconds={initial_cooldown_seconds:Int} and cooldown_multiplier={cooldown_multiplier:Int}" ) @async_run_until_complete async def step_impl( context: Any, method: str, host: str, path: str, attempts: int, initial_cooldown_seconds: int, cooldown_multiplier: int, ): policies_requests: PoliciesRequests = context.policies_requests context.account_list = list(policies_requests.accounts.keys()) remedy = { "name": f"retry for {method} {host}{path}", "enabled": True, "config": { "retry": { "attempts": attempts, "initial_cooldown_seconds": initial_cooldown_seconds, "cooldown_multiplier": cooldown_multiplier, # for simplicity purposes, this config simply assumes all errors should be retried "conditions": {"status_code": [{"from": 400, "to": 599}]}, } }, } policies_requests.endpoints.append( EndpointPolicy(method, f"{host}{path}", remedies=[remedy]) )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheLunarCompany/lunar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server