Skip to content

Commit 2b17776

Browse files
committed
endpoint
1 parent b907241 commit 2b17776

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

python_modules/dagster/dagster/_core/storage/legacy_storage.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,9 @@ def wipe(self) -> None:
288288
def delete_run(self, run_id: str) -> None:
289289
return self._storage.run_storage.delete_run(run_id)
290290

291+
def delete_runs(self, run_ids: Sequence[str]) -> None:
292+
return self._storage.run_storage.delete_runs(run_ids)
293+
291294
def migrate(self, print_fn: Optional[PrintFn] = None, force_rebuild_all: bool = False) -> None:
292295
return self._storage.run_storage.migrate(print_fn, force_rebuild_all)
293296

python_modules/dagster/dagster/_core/storage/runs/base.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,10 @@ def wipe(self) -> None:
318318
def delete_run(self, run_id: str) -> None:
319319
"""Remove a run from storage."""
320320

321+
@abstractmethod
322+
def delete_runs(self, run_ids: Sequence[str]) -> None:
323+
"""Remove a list of runs from storage."""
324+
321325
@property
322326
def supports_bucket_queries(self) -> bool:
323327
return False

python_modules/dagster/dagster_tests/storage_tests/utils/run_storage.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,6 +1032,24 @@ def test_delete(self, storage):
10321032
storage.delete_run(run_id)
10331033
assert list(storage.get_runs()) == []
10341034

1035+
def test_delete_multiple(self, storage):
1036+
if not self.can_delete_runs():
1037+
pytest.skip("storage cannot delete runs")
1038+
1039+
assert storage
1040+
run_ids = []
1041+
for _ in range(3):
1042+
run_id = make_new_run_id()
1043+
storage.add_run(TestRunStorage.build_run(run_id=run_id, job_name="some_pipeline"))
1044+
run_ids.append(run_id)
1045+
1046+
storage.add_run(
1047+
TestRunStorage.build_run(run_id=make_new_run_id(), job_name="some_pipeline")
1048+
)
1049+
assert len(storage.get_runs()) == 4
1050+
storage.delete_runs(run_ids)
1051+
assert len(storage.get_runs()) == 1
1052+
10351053
def test_delete_with_tags(self, storage: RunStorage):
10361054
if not self.can_delete_runs():
10371055
pytest.skip("storage cannot delete runs")
@@ -1051,6 +1069,34 @@ def test_delete_with_tags(self, storage: RunStorage):
10511069
assert list(storage.get_runs()) == []
10521070
assert run_id not in [key for key, value in storage.get_run_tags(tag_keys=[run_id])]
10531071

1072+
def test_delete_multiple_with_tags(self, storage: RunStorage):
1073+
if not self.can_delete_runs():
1074+
pytest.skip("storage cannot delete runs")
1075+
1076+
assert storage
1077+
run_ids = []
1078+
for _ in range(3):
1079+
run_id = make_new_run_id()
1080+
storage.add_run(
1081+
TestRunStorage.build_run(
1082+
run_id=run_id,
1083+
job_name="some_pipeline",
1084+
tags={run_id: run_id},
1085+
)
1086+
)
1087+
run_ids.append(run_id)
1088+
1089+
storage.add_run(
1090+
TestRunStorage.build_run(
1091+
run_id=make_new_run_id(),
1092+
job_name="some_pipeline",
1093+
tags={"not_deleted": "true"},
1094+
)
1095+
)
1096+
assert len(storage.get_runs()) == 4
1097+
storage.delete_runs(run_ids)
1098+
assert len(storage.get_runs()) == 1
1099+
10541100
def test_wipe_tags(self, storage: RunStorage):
10551101
if not self.can_delete_runs():
10561102
pytest.skip("storage cannot delete")

0 commit comments

Comments
 (0)