fix: classify unsent upload connections and omit raw photo filenames [skip ci]
This commit is contained in:
@@ -10,6 +10,7 @@ from collections import deque
|
||||
from urllib.parse import quote
|
||||
|
||||
import requests
|
||||
from urllib3.exceptions import MaxRetryError, NewConnectionError
|
||||
|
||||
from pigway_frame_flow.errors import ErrorCode as E
|
||||
from pigway_frame_flow.errors import FlowError
|
||||
@@ -124,7 +125,15 @@ class SafeTransport:
|
||||
),
|
||||
"request_error",
|
||||
)
|
||||
not_sent = isinstance(exc, requests.ConnectTimeout)
|
||||
# A socket/DNS establishment failure precedes the HTTP write. A
|
||||
# dropped established connection still has an uncertain outcome.
|
||||
not_sent = isinstance(exc, requests.ConnectTimeout) or any(
|
||||
isinstance(cause, MaxRetryError)
|
||||
and isinstance(cause.reason, NewConnectionError)
|
||||
for cause in exc.args
|
||||
)
|
||||
if not_sent and category == "connection_error":
|
||||
category = "connect_error"
|
||||
uncertain = write and not not_sent
|
||||
raise FlowError(
|
||||
E.WRITE_RESULT_UNKNOWN if uncertain else E.CLOUD_UNAVAILABLE,
|
||||
|
||||
Reference in New Issue
Block a user