Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions src/dstack/_internal/cli/services/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
Profile,
ProfileRetry,
SpotPolicy,
TerminationPolicy,
parse_duration,
parse_max_duration,
)
Expand Down Expand Up @@ -149,10 +148,9 @@ def apply_profile_args(
profile_settings.max_duration = args.max_duration

if args.idle_duration is not None:
profile_settings.termination_idle_time = args.idle_duration

if args.dont_destroy:
profile_settings.termination_policy = TerminationPolicy.DONT_DESTROY
profile_settings.idle_duration = args.idle_duration
elif args.dont_destroy:
profile_settings.idle_duration = False
if args.creation_policy_reuse:
profile_settings.creation_policy = CreationPolicy.REUSE

Expand Down
19 changes: 0 additions & 19 deletions src/dstack/_internal/core/models/fleets.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
ProfileParams,
ProfileRetry,
SpotPolicy,
TerminationPolicy,
parse_duration,
parse_idle_duration,
)
from dstack._internal.core.models.resources import Range, ResourcesSpec
Expand Down Expand Up @@ -217,30 +215,13 @@ class InstanceGroupParams(CoreModel):
Optional[float],
Field(description="The maximum instance price per hour, in dollars", gt=0.0),
] = None

idle_duration: Annotated[
Optional[Union[Literal["off"], str, int]],
Field(
description="Time to wait before terminating idle instances. Defaults to `5m` for runs and `3d` for fleets. Use `off` for unlimited duration"
),
] = None
# Deprecated:
termination_policy: Annotated[
Optional[TerminationPolicy],
Field(
description="Deprecated in favor of `idle_duration`",
),
] = None
termination_idle_time: Annotated[
Optional[Union[str, int]],
Field(
description="Deprecated in favor of `idle_duration`",
),
] = None

_validate_termination_idle_time = validator(
"termination_idle_time", pre=True, allow_reuse=True
)(parse_duration)
_validate_idle_duration = validator("idle_duration", pre=True, allow_reuse=True)(
parse_idle_duration
)
Expand Down
16 changes: 0 additions & 16 deletions src/dstack/_internal/core/models/profiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,29 +240,13 @@ class ProfileParams(CoreModel):
Optional[UtilizationPolicy],
Field(description="Run termination policy based on utilization"),
] = None
# Deprecated:
termination_policy: Annotated[
Optional[TerminationPolicy],
Field(
description="Deprecated in favor of `idle_duration`",
),
] = None
termination_idle_time: Annotated[
Optional[Union[str, int]],
Field(
description="Deprecated in favor of `idle_duration`",
),
] = None

_validate_max_duration = validator("max_duration", pre=True, allow_reuse=True)(
parse_max_duration
)
_validate_stop_duration = validator("stop_duration", pre=True, allow_reuse=True)(
parse_stop_duration
)
_validate_termination_idle_time = validator(
"termination_idle_time", pre=True, allow_reuse=True
)(parse_duration)
_validate_idle_duration = validator("idle_duration", pre=True, allow_reuse=True)(
parse_idle_duration
)
Expand Down
4 changes: 0 additions & 4 deletions src/dstack/_internal/core/services/profiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,6 @@ def get_termination(
) -> Tuple[TerminationPolicy, int]:
termination_policy = TerminationPolicy.DESTROY_AFTER_IDLE
termination_idle_time = default_termination_idle_time
if profile.termination_policy is not None:
termination_policy = profile.termination_policy
if profile.termination_idle_time is not None:
termination_idle_time = profile.termination_idle_time
if profile.idle_duration is not None and int(profile.idle_duration) < 0:
termination_policy = TerminationPolicy.DONT_DESTROY
elif profile.idle_duration is not None:
Expand Down
4 changes: 2 additions & 2 deletions src/dstack/api/_public/runs.py
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,8 @@ def get_plan(
configuration: AnyRunConfiguration,
repo: Optional[Repo] = None,
configuration_path: Optional[str] = None,
# Unused profile args are deprecated and removed but
# kept for signature backward compatibility.
backends: Optional[List[BackendType]] = None,
regions: Optional[List[str]] = None,
instance_types: Optional[List[str]] = None,
Expand Down Expand Up @@ -646,8 +648,6 @@ def get_plan(
max_price=max_price,
creation_policy=creation_policy,
idle_duration=idle_duration,
termination_policy=termination_policy,
termination_idle_time=termination_policy_idle,
)
run_spec = RunSpec(
run_name=run_name,
Expand Down
8 changes: 0 additions & 8 deletions src/tests/_internal/server/routers/test_fleets.py
Original file line number Diff line number Diff line change
Expand Up @@ -345,8 +345,6 @@ async def test_creates_fleet(self, test_db, session: AsyncSession, client: Async
"retry": None,
"max_price": None,
"idle_duration": None,
"termination_policy": None,
"termination_idle_time": None,
"type": "fleet",
"name": "test-fleet",
"reservation": None,
Expand All @@ -364,8 +362,6 @@ async def test_creates_fleet(self, test_db, session: AsyncSession, client: Async
"max_price": None,
"creation_policy": None,
"idle_duration": None,
"termination_policy": None,
"termination_idle_time": None,
"utilization_policy": None,
"name": "",
"default": False,
Expand Down Expand Up @@ -467,8 +463,6 @@ async def test_creates_ssh_fleet(self, test_db, session: AsyncSession, client: A
"retry": None,
"max_price": None,
"idle_duration": None,
"termination_policy": None,
"termination_idle_time": None,
"type": "fleet",
"name": spec.configuration.name,
"reservation": None,
Expand All @@ -486,8 +480,6 @@ async def test_creates_ssh_fleet(self, test_db, session: AsyncSession, client: A
"max_price": None,
"creation_policy": None,
"idle_duration": None,
"termination_policy": None,
"termination_idle_time": None,
"utilization_policy": None,
"name": "",
"default": False,
Expand Down
8 changes: 0 additions & 8 deletions src/tests/_internal/server/routers/test_runs.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,6 @@ def get_dev_env_run_plan_dict(
"retry": None,
"spot_policy": "spot",
"idle_duration": None,
"termination_idle_time": 300,
"termination_policy": None,
"utilization_policy": None,
"reservation": None,
},
Expand All @@ -142,8 +140,6 @@ def get_dev_env_run_plan_dict(
"retry": None,
"spot_policy": "spot",
"idle_duration": None,
"termination_idle_time": 300,
"termination_policy": None,
"utilization_policy": None,
"reservation": None,
},
Expand Down Expand Up @@ -276,8 +272,6 @@ def get_dev_env_run_dict(
"retry": None,
"spot_policy": "spot",
"idle_duration": None,
"termination_idle_time": 300,
"termination_policy": None,
"utilization_policy": None,
"reservation": None,
},
Expand All @@ -296,8 +290,6 @@ def get_dev_env_run_dict(
"retry": None,
"spot_policy": "spot",
"idle_duration": None,
"termination_idle_time": 300,
"termination_policy": None,
"utilization_policy": None,
"reservation": None,
},
Expand Down