Skip to content
This repository was archived by the owner on Mar 23, 2026. It is now read-only.

Commit d8dcf16

Browse files
Update provider
1 parent c924f96 commit d8dcf16

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

  • localstack-core/localstack/services/dynamodb

localstack-core/localstack/services/dynamodb/provider.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -748,6 +748,9 @@ def create_table(
748748
if "NumberOfDecreasesToday" not in table_description["ProvisionedThroughput"]:
749749
table_description["ProvisionedThroughput"]["NumberOfDecreasesToday"] = 0
750750

751+
if "WarmThroughput" in table_description:
752+
table_description["WarmThroughput"] = "UPDATING"
753+
751754
tags = table_definitions.pop("Tags", [])
752755
if tags:
753756
get_store(context.account_id, context.region).TABLE_TAGS[table_arn] = {
@@ -765,6 +768,13 @@ def delete_table(
765768
) -> DeleteTableOutput:
766769
global_table_region = self.get_global_table_region(context, table_name)
767770

771+
self.ensure_table_exists(
772+
context.account_id,
773+
global_table_region,
774+
table_name,
775+
error_message=f"Requested resource not found: Table: {table_name} not found",
776+
)
777+
768778
# Limitation note: On AWS, for a replicated table, if the source table is deleted, the replicated tables continue to exist.
769779
# This is not the case for LocalStack, where all replicated tables will also be removed if source is deleted.
770780

@@ -825,6 +835,9 @@ def describe_table(
825835
table_description["TableClassSummary"] = {
826836
"TableClass": table_definitions["TableClass"]
827837
}
838+
if warm_throughput := table_definitions.get("WarmThroughput"):
839+
table_description["WarmThroughput"] = warm_throughput.copy()
840+
table_description["WarmThroughput"].setdefault("Status", "ACTIVE")
828841

829842
if "GlobalSecondaryIndexes" in table_description:
830843
for gsi in table_description["GlobalSecondaryIndexes"]:
@@ -837,6 +850,14 @@ def describe_table(
837850
# Terraform depends on this parity for update operations
838851
gsi["ProvisionedThroughput"] = default_values | gsi.get("ProvisionedThroughput", {})
839852

853+
# Set defaults for warm throughput
854+
if "WarmThroughput" not in table_description:
855+
table_description["WarmThroughput"] = {
856+
"ReadUnitsPerSecond": 5,
857+
"WriteUnitsPerSecond": 5,
858+
}
859+
table_description["Status"] = table_description.get("TableStatus") or "ACTIVE"
860+
840861
return DescribeTableOutput(
841862
Table=select_from_typed_dict(TableDescription, table_description)
842863
)

0 commit comments

Comments
 (0)