Prepare release 4.0.7 (#5543)

This commit is contained in:
Bert Blommers 2022-10-09 12:23:21 +00:00 committed by GitHub
parent cf2ce3324a
commit 98932ac63a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 79 additions and 5 deletions

View File

@ -1,6 +1,40 @@
Moto Changelog Moto Changelog
============== ==============
4.0.7
-----
Docker Digest for 4.0.7: <autopopulateddigest>
New Services:
* Comprehend:
* create_entity_recognizer()
* delete_entity_recognizer()
* describe_entity_recognizer()
* list_entity_recognizers()
* list_tags_for_resource()
* stop_training_entity_recognizer()
* MeteringMarketplace:
* batch_meter_usage()
New Methods:
* EC2:
* modify_vpc_endpoint()
* MediaConnect:
* grant_flow_entitlements()
* revoke_flow_entitlement()
* update_flow_entitlement()
* update_flow_output()
Miscellaneous:
* DynamoDB:transact_write_items() - Now includes validation if multipel operations are provided in the same item
* EC2:cancel_spot_fleet_request() - Fixed a bug where instances were always terminated
* EC2:create_instances() - Now uses the private IP address as as provided in the NetworkInterface
* EC2:describe_instance_types() - Now supports all filters
* ECS:run_task() - Now creates/attaches an ENI if appropriate
* S3: Fixed an issue where file handles were not closed on large uploads
4.0.6 4.0.6
----- -----
Docker Digest for 4.0.6: _sha256:01582a705be7c50bc15993acc2271cd190db9c08c5fc09d85c59c8ddae6bb260_ Docker Digest for 4.0.6: _sha256:01582a705be7c50bc15993acc2271cd190db9c08c5fc09d85c59c8ddae6bb260_

View File

@ -5246,7 +5246,7 @@
## s3 ## s3
<details> <details>
<summary>61% implemented</summary> <summary>62% implemented</summary>
- [X] abort_multipart_upload - [X] abort_multipart_upload
- [X] complete_multipart_upload - [X] complete_multipart_upload
@ -5331,7 +5331,7 @@
- [X] put_bucket_replication - [X] put_bucket_replication
- [ ] put_bucket_request_payment - [ ] put_bucket_request_payment
- [X] put_bucket_tagging - [X] put_bucket_tagging
- [ ] put_bucket_versioning - [X] put_bucket_versioning
- [ ] put_bucket_website - [ ] put_bucket_website
- [X] put_object - [X] put_object
- [X] put_object_acl - [X] put_object_acl

View File

@ -122,7 +122,7 @@ s3
- [X] put_bucket_replication - [X] put_bucket_replication
- [ ] put_bucket_request_payment - [ ] put_bucket_request_payment
- [X] put_bucket_tagging - [X] put_bucket_tagging
- [ ] put_bucket_versioning - [X] put_bucket_versioning
- [ ] put_bucket_website - [ ] put_bucket_website
- [X] put_object - [X] put_object
- [X] put_object_acl - [X] put_object_acl

View File

@ -1565,7 +1565,7 @@ class S3Backend(BaseBackend, CloudWatchMetricProvider):
else: else:
return self.buckets.pop(bucket_name) return self.buckets.pop(bucket_name)
def set_bucket_versioning(self, bucket_name, status): def put_bucket_versioning(self, bucket_name, status):
self.get_bucket(bucket_name).versioning_status = status self.get_bucket(bucket_name).versioning_status = status
def get_bucket_versioning(self, bucket_name): def get_bucket_versioning(self, bucket_name):

View File

@ -757,7 +757,7 @@ class S3Response(BaseResponse):
body = self.body.decode("utf-8") body = self.body.decode("utf-8")
ver = re.search(r"<Status>([A-Za-z]+)</Status>", body) ver = re.search(r"<Status>([A-Za-z]+)</Status>", body)
if ver: if ver:
self.backend.set_bucket_versioning(bucket_name, ver.group(1)) self.backend.put_bucket_versioning(bucket_name, ver.group(1))
template = self.response_template(S3_BUCKET_VERSIONING) template = self.response_template(S3_BUCKET_VERSIONING)
return template.render(bucket_versioning_status=ver.group(1)) return template.render(bucket_versioning_status=ver.group(1))
else: else:

View File

@ -18,6 +18,7 @@ def is_delete_keys(request, path, bucket_name):
return ( return (
path == "/" + bucket_name + "/?delete" path == "/" + bucket_name + "/?delete"
or path == "/" + bucket_name + "?delete" or path == "/" + bucket_name + "?delete"
or path == "/" + bucket_name + "?delete="
or ( or (
path == "/" + bucket_name path == "/" + bucket_name
and getattr(request, "query_string", "") == "delete" and getattr(request, "query_string", "") == "delete"

View File

@ -243,9 +243,48 @@ route53|2:
- TestAccRoute53HealthCheck_disappears - TestAccRoute53HealthCheck_disappears
- TestAccRoute53ResolverEndpoint - TestAccRoute53ResolverEndpoint
s3: s3:
- TestAccS3Bucket_Basic_forceDestroyWithEmptyPrefixes
- TestAccS3Bucket_Basic_namePrefix
- TestAccS3Bucket_Basic_keyEnabled
- TestAccS3Bucket_Basic_forceDestroyWithObjectLockEnabled
- TestAccS3Bucket_Basic_generatedName
- TestAccS3Bucket_Basic_acceleration
- TestAccS3Bucket_Basic_forceDestroy
- TestAccS3Bucket_Basic_emptyString
- TestAccS3BucketPolicy - TestAccS3BucketPolicy
- TestAccS3BucketPublicAccessBlock - TestAccS3BucketPublicAccessBlock
- TestAccS3BucketVersioning_basic
- TestAccS3BucketVersioning_disappears
- TestAccS3BucketVersioning_update
- TestAccS3BucketVersioning_Status_
- TestAccS3ObjectCopy - TestAccS3ObjectCopy
- TestAccS3Object_noNameNoKey
- TestAccS3Object_sse
- TestAccS3Object_kms
- TestAccS3Object_empty
- TestAccS3Object_source
- TestAccS3Object_content
- TestAccS3Object_etagEncryption
- TestAccS3Object_contentBase64
- TestAccS3Object_sourceHashTrigger
- TestAccS3Object_withContentCharacteristics
- TestAccS3Object_nonVersioned
- TestAccS3Object_acl
- TestAccS3Object_metadata
- TestAccS3Object_tags
- TestAccS3ObjectDataSource_kmsEncrypted
- TestAccS3ObjectDataSource_readableBody
- TestAccS3ObjectDataSource_bucketKeyEnabled
- TestAccS3ObjectDataSource_allParams
- TestAccS3ObjectDataSource_object
- TestAccS3ObjectDataSource_leadingSlash
- TestAccS3ObjectDataSource_multipleSlashes
- TestAccS3ObjectDataSource_singleSlashAsKey
- TestAccS3ObjectsDataSource_all
- TestAccS3ObjectsDataSource_prefixes
- TestAccS3ObjectsDataSource_maxKeys
- TestAccS3ObjectsDataSource_startAfter
- TestAccS3ObjectsDataSource_fetchOwner
sagemaker: sagemaker:
- TestAccSageMakerPrebuiltECRImageDataSource - TestAccSageMakerPrebuiltECRImageDataSource
servicediscovery: servicediscovery: