8000 add service_name attribute to AssetDirectory (#9125) · codeperl/localstack@b05a613 · GitHub
[go: up one dir, main page]

Skip to content

Commit b05a613

Browse files
authored
add service_name attribute to AssetDirectory (localstack#9125)
1 parent 982da5d commit b05a613

File tree

7 files changed

+23
-15
lines changed

7 files changed

+23
-15
lines changed

localstack/services/dynamodb/provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ def on_before_start(self):
363363
def accept_state_visitor(self, visitor: StateVisitor):
364364
visitor.visit(dynamodb_stores)
365365
visitor.visit(dynamodbstreams_stores)
366-
visitor.visit(AssetDirectory(os.path.join(config.dirs.data, self.service)))
366+
visitor.visit(AssetDirectory(self.service, os.path.join(config.dirs.data, self.service)))
367367

368368
def on_before_state_reset(self):
369369
self.server.stop_dynamodb()

localstack/services/kinesis/provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def __init__(self):
6262

6363
def accept_state_visitor(self, visitor: StateVisitor):
6464
visitor.visit(kinesis_stores)
65-
visitor.visit(AssetDirectory(os.path.join(config.dirs.data, "kinesis")))
65+
visitor.visit(AssetDirectory(self.service, os.path.join(config.dirs.data, "kinesis")))
6666

6767
def on_before_state_load(self):
6868
# no need to restart servers, since that happens lazily in `server_manager.get_server_for_account`.

localstack/services/opensearch/provider.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -405,8 +405,8 @@ def get_store(account_id: str, region_name: str) -> OpenSearchStore:
405405

406406
def accept_state_visitor(self, visitor: StateVisitor):
407407
visitor.visit(opensearch_stores)
408-
visitor.visit(AssetDirectory(os.path.join(config.dirs.data, "opensearch")))
409-
visitor.visit(AssetDirectory(os.path.join(config.dirs.data, "elasticsearch")))
408+
visitor.visit(AssetDirectory(self.service, os.path.join(config.dirs.data, "opensearch")))
409+
visitor.visit(AssetDirectory(self.service, os.path.join(config.dirs.data, "elasticsearch")))
410410

411411
def on_after_state_load(self):
412412
"""Starts clusters whose metadata has been restored."""

localstack/services/redshift/provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def fix_keys(o, **kwargs):
3737
class RedshiftProvider(RedshiftApi):
3838
def accept_state_visitor(self, visitor: StateVisitor):
3939
visitor.visit(redshift_backends)
40-
visitor.visit(AssetDirectory(os.path.join(config.dirs.data, "redshift")))
40+
visitor.visit(AssetDirectory(self.service, os.path.join(config.dirs.data, "redshift")))
4141

4242
@handler("DescribeClusterSecurityGroups", expand=False)
4343
def describe_cluster_security_groups(

localstack/services/s3/v3/provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ def on_after_init(self):
304304

305305
def accept_state_visitor(self, visitor: StateVisitor):
306306
visitor.visit(s3_stores)
307-
visitor.visit(AssetDirectory(self._storage_backend.root_directory))
307+
visitor.visit(AssetDirectory(self.service, self._storage_backend.root_directory))
308308

309309
def on_before_state_save(self):
310310
self._storage_backend.flush()

localstack/services/stepfunctions/provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def get_forward_url(self) -> str:
3838
return f"http://{LOCALHOST}:{config.LOCAL_PORT_STEPFUNCTIONS}"
3939

4040
def accept_state_visitor(self, visitor: StateVisitor):
41-
visitor.visit(AssetDirectory(os.path.join(config.dirs.data, self.service)))
41+
visitor.visit(AssetDirectory(self.service, os.path.join(config.dirs.data, self.service)))
4242

4343
def on_before_start(self):
4444
start_stepfunctions()

localstack/state/core.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22
import io
33
from typing import IO, Any, Protocol, runtime_checkable
44

5-
StateContainer = Any
6-
"""While a StateContainer can in principle be anything, localstack currently supports by default the following
7-
containers:
85

9-
- BackendDict (moto backend state)
10-
- AccountRegionBundle (localstack stores)
11-
- AssetDirectory (folders on disk)
12-
"""
6+
class StateContainer(Protocol):
7+
"""While a StateContainer can in principle be anything, localstack currently supports by default the following
8+
containers:
9+
10+
- BackendDict (moto backend state)
11+
- AccountRegionBundle (localstack stores)
12+
- AssetDirectory (folders on disk)
13+
"""
14+
15+
service_name: str
1316

1417

1518
class StateLifecycleHook:
@@ -70,12 +73,17 @@ class AssetDirectory:
7073
A state container manifested as a directory on the file system.
7174
"""
7275

76+
service_name: str
7377
path: str
7478

75-
def __init__(self, path: str):
79+
def __init__(self, service_name: str, path: str):
80+
if not service_name:
81+
raise ValueError("service name must be set")
82+
7683
if not path:
7784
raise ValueError("path must be set")
7885

86+
self.service_name = service_name
7987
self.path = path
8088

8189
def __str__(self):

0 commit comments

Comments
 (0)
0