Prepare release 4.0.7 (#5543)
This commit is contained in:
parent
cf2ce3324a
commit
98932ac63a
34
CHANGELOG.md
34
CHANGELOG.md
@ -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_
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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):
|
||||||
|
@ -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:
|
||||||
|
@ -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"
|
||||||
|
@ -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:
|
||||||
|
Loading…
Reference in New Issue
Block a user