raise error on non 200 or 202 status in HttpClient.post

This commit is contained in:
Izalia Mae 2024-09-15 07:34:09 -04:00
parent c5633808f7
commit c482677c32
2 changed files with 10 additions and 10 deletions

View file

@ -220,16 +220,12 @@ class HttpClient:
logging.verbose('Sending "%s" to %s', mtype, url) logging.verbose('Sending "%s" to %s', mtype, url)
async with self._session.post(url, headers = headers, data = body) as resp: async with self._session.post(url, headers = headers, data = body) as resp:
# Not expecting a response, so just return if resp.status not in (200, 202):
if resp.status in {200, 202}: raise HttpError(
logging.verbose('Successfully sent "%s" to %s', mtype, url) resp.status,
return await resp.text(),
headers = {k: v for k, v in resp.headers.items()}
logging.error('Received error when pushing to %s: %i', url, resp.status) )
logging.debug(await resp.read())
logging.debug("message: %s", body.decode("utf-8"))
logging.debug("headers: %s", json.dumps(headers, indent = 4))
return
async def fetch_nodeinfo(self, domain: str, force: bool = False) -> Nodeinfo: async def fetch_nodeinfo(self, domain: str, force: bool = False) -> Nodeinfo:

View file

@ -5,6 +5,7 @@ import traceback
from aiohttp.client_exceptions import ClientConnectionError, ClientSSLError from aiohttp.client_exceptions import ClientConnectionError, ClientSSLError
from asyncio.exceptions import TimeoutError as AsyncTimeoutError from asyncio.exceptions import TimeoutError as AsyncTimeoutError
from blib import HttpError
from dataclasses import dataclass from dataclasses import dataclass
from multiprocessing import Event, Process, Queue, Value from multiprocessing import Event, Process, Queue, Value
from multiprocessing.queues import Queue as QueueType from multiprocessing.queues import Queue as QueueType
@ -94,6 +95,9 @@ class PushWorker(Process):
try: try:
await self.client.post(item.inbox, item.message, item.instance) await self.client.post(item.inbox, item.message, item.instance)
except HttpError as e:
logging.error('HTTP Error when pushing to %s: %i %s', item.inbox, e.status, e.message)
except AsyncTimeoutError: except AsyncTimeoutError:
logging.error('Timeout when pushing to %s', item.domain) logging.error('Timeout when pushing to %s', item.domain)