Skip to content

Commit b500834

Browse files
Removed unnecessary changes and refactor implementations
1 parent 3fe1d44 commit b500834

6 files changed

Lines changed: 20 additions & 22 deletions

File tree

src/dstack/_internal/cli/services/profile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def apply_profile_args(
159159
if args.idle_duration is not None:
160160
profile_settings.idle_duration = args.idle_duration
161161
elif args.dont_destroy:
162-
profile_settings.idle_duration = False
162+
profile_settings.idle_duration = "off"
163163
if args.creation_policy_reuse:
164164
profile_settings.creation_policy = CreationPolicy.REUSE
165165

src/dstack/_internal/core/models/profiles.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,9 @@ def parse_off_duration(v: Optional[Union[int, str, bool]]) -> Optional[Union[str
7474
return parse_duration(v)
7575

7676

77-
def parse_idle_duration(v: Optional[Union[int, str, bool]]) -> Optional[Union[str, int, bool]]:
78-
if v is False:
77+
def parse_idle_duration(v: Optional[Union[int, str]]) -> Optional[Union[str, int]]:
78+
if v == "off" or v == -1:
7979
return -1
80-
if v is True:
81-
return None
8280
return parse_duration(v)
8381

8482

src/dstack/_internal/core/models/volumes.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ class VolumeConfiguration(CoreModel):
4545
Optional[str],
4646
Field(description="The volume ID. Must be specified when registering external volumes"),
4747
] = None
48-
idle_duration: Annotated[
49-
Optional[Union[str, int, bool]],
48+
auto_cleanup_duration: Annotated[
49+
Optional[Union[str, int]],
5050
Field(
5151
description=(
5252
"Time to wait after volume is no longer used by any job before deleting it. "
5353
"Defaults to keep the volume indefinitely. "
54-
"Use the value 'off' to disable auto-cleanup."
54+
"Use the value 'off' or -1 to disable auto-cleanup."
5555
)
5656
),
5757
] = None
@@ -67,9 +67,9 @@ class VolumeConfiguration(CoreModel):
6767
] = None
6868

6969
_validate_tags = validator("tags", pre=True, allow_reuse=True)(tags_validator)
70-
_validate_idle_duration = validator("idle_duration", pre=True, allow_reuse=True)(
71-
parse_idle_duration
72-
)
70+
_validate_auto_cleanup_duration = validator(
71+
"auto_cleanup_duration", pre=True, allow_reuse=True
72+
)(parse_idle_duration)
7373

7474
@property
7575
def size_gb(self) -> int:

src/dstack/_internal/server/background/tasks/process_idle_volumes.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@ async def process_idle_volumes():
5555
def _should_delete_volume(volume: VolumeModel) -> bool:
5656
config = get_volume_configuration(volume)
5757

58-
if not config.idle_duration:
58+
if not config.auto_cleanup_duration:
5959
return False
6060

61-
if isinstance(config.idle_duration, int) and config.idle_duration < 0:
61+
if isinstance(config.auto_cleanup_duration, int) and config.auto_cleanup_duration < 0:
6262
return False
6363

64-
duration_seconds = parse_duration(config.idle_duration)
64+
duration_seconds = parse_duration(config.auto_cleanup_duration)
6565
if not duration_seconds or duration_seconds <= 0:
6666
return False
6767

@@ -100,5 +100,5 @@ async def _delete_volumes(session: AsyncSession, volumes: List[VolumeModel]):
100100
for project, names in by_project.items():
101101
try:
102102
await delete_volumes(session, project, names)
103-
except Exception as e:
104-
logger.error("Failed to delete volumes for project %s: %s", project.name, str(e))
103+
except Exception:
104+
logger.exception("Failed to delete volumes for project %s", project.name)

src/dstack/_internal/server/testing/common.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -820,15 +820,15 @@ def get_volume_configuration(
820820
region: str = "eu-west-1",
821821
size: Optional[Memory] = Memory(100),
822822
volume_id: Optional[str] = None,
823-
idle_duration: Optional[Union[str, int, bool]] = None,
823+
auto_cleanup_duration: Optional[Union[str, int]] = None,
824824
) -> VolumeConfiguration:
825825
return VolumeConfiguration(
826826
name=name,
827827
backend=backend,
828828
region=region,
829829
size=size,
830830
volume_id=volume_id,
831-
idle_duration=idle_duration,
831+
auto_cleanup_duration=auto_cleanup_duration,
832832
)
833833

834834

src/tests/_internal/server/background/tasks/test_process_idle_volumes.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ async def test_idle_duration_disabled(self, test_db, session: AsyncSession):
4646
user = await create_user(session=session)
4747

4848
config = get_volume_configuration(name="test-volume")
49-
config.idle_duration = -1
49+
config.auto_cleanup_duration = -1
5050

5151
volume = await create_volume(
5252
session=session,
@@ -65,7 +65,7 @@ async def test_volume_attached(self, test_db, session: AsyncSession):
6565
user = await create_user(session=session)
6666

6767
config = get_volume_configuration(name="test-volume")
68-
config.idle_duration = "1h"
68+
config.auto_cleanup_duration = "1h"
6969

7070
volume = await create_volume(
7171
session=session,
@@ -90,7 +90,7 @@ async def test_idle_duration_threshold(self, test_db, session: AsyncSession):
9090
user = await create_user(session=session)
9191

9292
config = get_volume_configuration(name="test-volume")
93-
config.idle_duration = "1h"
93+
config.auto_cleanup_duration = "1h"
9494

9595
volume = await create_volume(
9696
session=session,
@@ -138,7 +138,7 @@ async def test_integration(self, test_db, session: AsyncSession):
138138
user = await create_user(session=session)
139139

140140
config = get_volume_configuration(name="test-volume")
141-
config.idle_duration = "1h"
141+
config.auto_cleanup_duration = "1h"
142142

143143
volume = await create_volume(
144144
session=session,

0 commit comments

Comments
 (0)