quota: Catch correct exception type for Compute quotas
There is a flaw (IMO) in the design of Nova's os-quota-sets API: despite project IDs forming the identifier for an individual resource, we get a HTTP 400 (Bad Request) error if you pass an ID that does not exist, rather than the HTTP 404 (Not Found) we would expect. Correct this, noting why we're doing what we're doing for readers from the future (hi!). Note that HTTP 400 is unfortunately quite broad and means we'll also catch things like invalid requests but the exception may have been translated so we can't rely on a string match. Change-Id: I720502930d50be8ead5f2033d9dbcab5d99a37a9 Signed-off-by: Stephen Finucane <stephenfin@redhat.com> Closes-bug: #2091086
This commit is contained in:
parent
ecc744a4fd
commit
99cef9354b
@ -249,9 +249,14 @@ class ListQuota(command.Lister):
|
||||
for project_id in project_ids:
|
||||
try:
|
||||
project_data = compute_client.get_quota_set(project_id)
|
||||
# NOTE(stephenfin): Unfortunately, Nova raises a HTTP 400 (Bad
|
||||
# Request) if the project ID is invalid, even though the project
|
||||
# ID is actually the resource's identifier which would normally
|
||||
# lead us to expect a HTTP 404 (Not Found).
|
||||
except (
|
||||
sdk_exceptions.NotFoundException,
|
||||
sdk_exceptions.BadRequestException,
|
||||
sdk_exceptions.ForbiddenException,
|
||||
sdk_exceptions.NotFoundException,
|
||||
) as exc:
|
||||
# Project not found, move on to next one
|
||||
LOG.warning(f"Project {project_id} not found: {exc}")
|
||||
@ -312,8 +317,8 @@ class ListQuota(command.Lister):
|
||||
try:
|
||||
project_data = volume_client.get_quota_set(project_id)
|
||||
except (
|
||||
sdk_exceptions.NotFoundException,
|
||||
sdk_exceptions.ForbiddenException,
|
||||
sdk_exceptions.NotFoundException,
|
||||
) as exc:
|
||||
# Project not found, move on to next one
|
||||
LOG.warning(f"Project {project_id} not found: {exc}")
|
||||
|
Loading…
x
Reference in New Issue
Block a user