@@ -72,6 +72,21 @@ type SLLMBase struct {
7272 Devices * api.Devices `charset:"utf8" length:"medium" nullable:"true" list:"user" update:"user" create:"optional"`
7373}
7474
75+ // GetEffectiveDevices returns the devices to apply: llm's override takes priority over sku when non-empty.
76+ // Drivers should call this when materializing container device specs so that SLLM overrides on the
77+ // instance are honored (not just on server-level IsolatedDevices allocation).
78+ func GetEffectiveDevices (llm * SLLM , sku * SLLMSku ) * api.Devices {
79+ var llmBase * SLLMBase
80+ var skuBase * SLLMSkuBase
81+ if llm != nil {
82+ llmBase = & llm .SLLMBase
83+ }
84+ if sku != nil {
85+ skuBase = & sku .SLLMSkuBase
86+ }
87+ return getEffectiveDevices (llmBase , skuBase )
88+ }
89+
7590func getEffectiveDevices (llmBase * SLLMBase , skuBase * SLLMSkuBase ) * api.Devices {
7691 if llmBase != nil && llmBase .Devices != nil && ! llmBase .Devices .IsZero () {
7792 return llmBase .Devices
@@ -82,6 +97,19 @@ func getEffectiveDevices(llmBase *SLLMBase, skuBase *SLLMSkuBase) *api.Devices {
8297 return nil
8398}
8499
100+ // GetEffectiveHostPaths returns the host_paths to apply with llm's override taking priority over sku.
101+ func GetEffectiveHostPaths (llm * SLLM , sku * SLLMSku ) * api.HostPaths {
102+ var llmBase * SLLMBase
103+ var skuBase * SLLMSkuBase
104+ if llm != nil {
105+ llmBase = & llm .SLLMBase
106+ }
107+ if sku != nil {
108+ skuBase = & sku .SLLMSkuBase
109+ }
110+ return getEffectiveHostPaths (llmBase , skuBase )
111+ }
112+
85113func getEffectiveHostPaths (llmBase * SLLMBase , skuBase * SLLMSkuBase ) * api.HostPaths {
86114 if llmBase != nil && llmBase .HostPaths != nil && ! llmBase .HostPaths .IsZero () {
87115 return llmBase .HostPaths
0 commit comments