Model files are now deleted from the fileserver on models.delete call

This commit is contained in:
clearml 2024-12-05 22:38:06 +02:00
parent e48e64a82f
commit 8c4932c7eb
2 changed files with 24 additions and 6 deletions

View File

@ -583,14 +583,13 @@ def _delete_model_events(
"services.async_urls_delete.enabled", True
)
if delete_external_artifacts:
for m in models:
if not m.uri:
continue
model_urls = {m.uri for m in models if m.uri}
if model_urls:
schedule_for_delete(
task_id=m.id,
task_id=model_ids[0],
company=company_id,
user=user_id,
urls=m.uri,
urls=model_urls,
can_delete_folders=False,
)

View File

@ -1,3 +1,5 @@
import unittest
from apiserver.apierrors import errors
from apiserver.apierrors.errors.bad_request import InvalidModelId
from apiserver.tests.automated import TestService
@ -236,6 +238,23 @@ class TestModelsService(TestService):
res = self.api.models.get_frameworks(projects=[project])
self.assertEqual([], res.frameworks)
@unittest.skip(
"""This test requires the following setting
CLEARML__services__async_urls_delete__fileserver__url_prefixes=["https://files.allegro-master.hosted.allegro.ai"
Check the test results in the logs of async_delete service
"""
)
def test_delete_many_with_files(self):
models = [
self._create_model(
name=f"delete model test{idx}",
uri=f"https://files.allegro-master.hosted.allegro.ai/models/test{idx}.txt"
)
for idx in range(2)
]
self.api.models.delete_many(ids=models)
def test_make_public(self):
m1 = self._create_model(name="public model test")
@ -277,7 +296,7 @@ class TestModelsService(TestService):
service="models",
delete_params=dict(can_fail=True, force=True),
name=kwargs.pop("name", "test"),
uri=kwargs.pop("name", "file:///a"),
uri=kwargs.pop("uri", "file:///a"),
labels=kwargs.pop("labels", {}),
**kwargs,
)