Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion cli/odc-cli
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ from argparse import (
RawTextHelpFormatter,
)
from datetime import datetime, timezone
from http import HTTPStatus
from typing import Any, Callable
from urllib.error import HTTPError, URLError
from urllib.parse import parse_qsl, urlencode, urlparse, urlunparse, quote
Expand Down Expand Up @@ -214,7 +215,15 @@ class HttpResponse:
props['data'] = self.data
props['statusCode'] = self.status or 'N/A'
elif not self.ok:
props.update(**self.data)
# Every failure carries its status; an API body with its own statusCode still wins.
props['statusCode'] = self.status or 'N/A'
if isinstance(self.data, dict):
props.update(self.data)
else:
try:
props['error'] = HTTPStatus(self.status).phrase
except (TypeError, ValueError):
pass
return to_json(props)

@property
Expand Down