Skip to content
Open
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
3 changes: 3 additions & 0 deletions src/dstack/_internal/cli/services/configurators/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -677,6 +677,9 @@ def register_args(cls, parser: argparse.ArgumentParser):
def apply_args(self, conf: ServiceConfiguration, args: argparse.Namespace):
super().apply_args(conf, args)
self.apply_commands_args(conf, args)
if conf.groups is not None:
for group in conf.groups:
self._interpolate_commands(group.commands, args)


def _get_ready_wait_interval(attempt: int) -> float:
Expand Down
20 changes: 2 additions & 18 deletions src/dstack/_internal/cli/services/presets/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def set_service_gpu_vendor_from_verification(
service: ServiceConfiguration,
verified_on: list[PresetVerificationReplicaGroup],
) -> None:
for group_num, group in enumerate(service.replica_groups):
for group in service.replica_groups:
resources = group.resources
if resources is None or not _requires_gpu(resources):
continue
Expand All @@ -105,9 +105,7 @@ def set_service_gpu_vendor_from_verification(
continue
if resources.gpu.vendor is not None and resources.gpu.vendor != verification_vendor:
raise ValueError("preset service GPU vendor does not match verification")
group_resources = _get_service_group_resources(service, group_num)
if group_resources.gpu is not None:
group_resources.gpu.vendor = verification_vendor
resources.gpu.vendor = verification_vendor


def _without_excluded_fields(configuration: ConfigurationT) -> ConfigurationT:
Expand Down Expand Up @@ -146,20 +144,6 @@ def _get_resources_gpu_vendor(resources: ResourcesSpec) -> gpuhunt.AcceleratorVe
return next(iter(vendors), None)


def _get_service_group_resources(
service: ServiceConfiguration,
group_num: int,
) -> ResourcesSpec:
resources = (
service.replicas[group_num].resources
if isinstance(service.replicas, list)
else service.resources
)
if resources is None:
raise ValueError("preset service object must specify resources")
return resources


def _requires_gpu(resources: ResourcesSpec) -> bool:
gpu = resources.gpu
if gpu is None or gpu.count.max == 0:
Expand Down
Loading
Loading