Skip to content

Commit 0cef404

Browse files
committed
remove call_moto in list_multipart_uploads
1 parent 338ca3c commit 0cef404

File tree

1 file changed

+41
-41
lines changed

1 file changed

+41
-41
lines changed

localstack/services/s3/provider.py

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -568,50 +568,50 @@ def list_multipart_uploads(
568568
request: ListMultipartUploadsRequest,
569569
) -> ListMultipartUploadsResult:
570570

571-
try:
572-
response: ListMultipartUploadsResult = call_moto(context)
573-
except NotImplementedError:
574-
# TODO: implement KeyMarker and UploadIdMarker (using sort)
575-
# implement Delimiter and MaxUploads
576-
# see https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
577-
bucket = request["Bucket"]
578-
moto_backend = get_moto_s3_backend(context)
579-
multiparts = list(moto_backend.get_all_multiparts(bucket).values())
580-
if (prefix := request.get("Prefix")) is not None:
581-
multiparts = [upload for upload in multiparts if upload.key_name.startswith(prefix)]
582-
583-
# TODO: this is taken from moto template, hardcoded strings.
584-
uploads = [
585-
MultipartUpload(
586-
Key=upload.key_name,
587-
UploadId=upload.id,
588-
Initiator={
589-
"ID": f"arn:aws:iam::{context.account_id}:user/user1-11111a31-17b5-4fb7-9df5-b111111f13de",
590-
"DisplayName": "user1-11111a31-17b5-4fb7-9df5-b111111f13de",
591-
},
592-
Owner={
593-
"ID": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
594-
"DisplayName": "webfile",
595-
},
596-
StorageClass=StorageClass.STANDARD, # hardcoded in moto
597-
Initiated=datetime.datetime.now(), # hardcoded in moto
598-
)
599-
for upload in multiparts
600-
]
601-
602-
response = ListMultipartUploadsResult(
603-
Bucket=request["Bucket"],
604-
MaxUploads=request.get("MaxUploads") or 1000,
605-
IsTruncated=False,
606-
Uploads=uploads,
607-
UploadIdMarker=request.get("UploadIdMarker") or "",
608-
KeyMarker=request.get("KeyMarker") or "",
571+
# TODO: implement KeyMarker and UploadIdMarker (using sort)
572+
# implement Delimiter and MaxUploads
573+
# see https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
574+
bucket = request["Bucket"]
575+
moto_backend = get_moto_s3_backend(context)
576+
# getting the bucket from moto to raise an error if the bucket does not exist
577+
get_bucket_from_moto(moto_backend=moto_backend, bucket=bucket)
578+
579+
multiparts = list(moto_backend.get_all_multiparts(bucket).values())
580+
if (prefix := request.get("Prefix")) is not None:
581+
multiparts = [upload for upload in multiparts if upload.key_name.startswith(prefix)]
582+
583+
# TODO: this is taken from moto template, hardcoded strings.
584+
uploads = [
585+
MultipartUpload(
586+
Key=upload.key_name,
587+
UploadId=upload.id,
588+
Initiator={
589+
"ID": f"arn:aws:iam::{context.account_id}:user/user1-11111a31-17b5-4fb7-9df5-b111111f13de",
590+
"DisplayName": "user1-11111a31-17b5-4fb7-9df5-b111111f13de",
591+
},
592+
Owner={
593+
"ID": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
594+
"DisplayName": "webfile",
595+
},
596+
StorageClass=StorageClass.STANDARD, # hardcoded in moto
597+
Initiated=datetime.datetime.now(), # hardcoded in moto
609598
)
599+
for upload in multiparts
600+
]
601+
602+
response = ListMultipartUploadsResult(
603+
Bucket=request["Bucket"],
604+
MaxUploads=request.get("MaxUploads") or 1000,
605+
IsTruncated=False,
606+
Uploads=uploads,
607+
UploadIdMarker=request.get("UploadIdMarker") or "",
608+
KeyMarker=request.get("KeyMarker") or "",
609+
)
610610

611-
if "Delimiter" in request:
612-
response["Delimiter"] = request["Delimiter"]
611+
if "Delimiter" in request:
612+
response["Delimiter"] = request["Delimiter"]
613613

614-
# TODO: add NextKeyMarker and NextUploadIdMarker to response once implemented
614+
# TODO: add NextKeyMarker and NextUploadIdMarker to response once implemented
615615

616616
return response
617617

0 commit comments

Comments
 (0)