Capitalize AWS image filter key/value arguments

ERROR zuul.Launcher: [e: ...] [req: ...] Marking node <AwsProviderNode uuid=..., label=.., state=building, path=...> as failed
Traceback (most recent call last):
  [ ... some output omitted ...]
  File "/opt/zuul/lib/python3.11/site-packages/zuul/driver/aws/awsendpoint.py", line 1285, in _getLatestImageIdByFilters
    res = list(self.ec2_client.describe_images(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/zuul/lib/python3.11/site-packages/botocore/client.py", line 570, in _api_call
    return self._make_api_call(operation_name, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/zuul/lib/python3.11/site-packages/botocore/context.py", line 124, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/zuul/lib/python3.11/site-packages/botocore/client.py", line 988, in _make_api_call
    request_dict = self._convert_to_request_dict(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/zuul/lib/python3.11/site-packages/botocore/client.py", line 1055, in _convert_to_request_dict
    request_dict = self._serializer.serialize_to_request(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/zuul/lib/python3.11/site-packages/botocore/validate.py", line 381, in serialize_to_request
    raise ParamValidationError(report=report.generate_report())
botocore.exceptions.ParamValidationError: Parameter validation failed:
Unknown parameter in Filters[0]: "name", must be one of: Name, Values
Unknown parameter in Filters[0]: "values", must be one of: Name, Values

Change-Id: Ic6d9b1eb253a68299446e5b75a684f2039a685ae
This commit is contained in:
Simon Westphahl
2025-04-09 13:02:50 +02:00
parent 0027952441
commit 3f2358eada

View File

@@ -1284,7 +1284,10 @@ class AwsProviderEndpoint(BaseProviderEndpoint):
with self.non_mutating_rate_limiter:
res = list(self.ec2_client.describe_images(
Filters=image_filters
Filters=[
{k.capitalize(): v for k, v in fltr.items()}
for fltr in image_filters
]
).get("Images"))
images = sorted(