@@ -2,7 +2,6 @@ package clusters
22
33import (
44 "context"
5- "sort"
65 "strings"
76
87 "github.com/databrickslabs/terraform-provider-databricks/common"
@@ -32,33 +31,21 @@ type NodeTypeList struct {
3231
3332// Sort NodeTypes within this struct
3433func (l * NodeTypeList ) Sort () {
35- sort .Slice (l .NodeTypes , func (i , j int ) bool {
36- if l .NodeTypes [i ].IsDeprecated != l .NodeTypes [j ].IsDeprecated {
37- return ! l .NodeTypes [i ].IsDeprecated
34+ sortByChain (l .NodeTypes , func (i int ) sortCmp {
35+ var localDisks , localDiskSizeGB int32
36+ if l .NodeTypes [i ].NodeInstanceType != nil {
37+ localDisks = l .NodeTypes [i ].NodeInstanceType .LocalDisks
38+ localDiskSizeGB = l .NodeTypes [i ].NodeInstanceType .LocalDiskSizeGB
39+ }
40+ return sortChain {
41+ boolAsc (l .NodeTypes [i ].IsDeprecated ),
42+ intAsc (localDisks ),
43+ intAsc (localDiskSizeGB ),
44+ intAsc (l .NodeTypes [i ].MemoryMB ),
45+ intAsc (l .NodeTypes [i ].NumCores ),
46+ intAsc (l .NodeTypes [i ].NumGPUs ),
47+ strAsc (l .NodeTypes [i ].InstanceTypeID ),
3848 }
39- if l .NodeTypes [i ].NodeInstanceType != nil &&
40- l .NodeTypes [j ].NodeInstanceType != nil {
41- if l .NodeTypes [i ].NodeInstanceType .LocalDisks !=
42- l .NodeTypes [j ].NodeInstanceType .LocalDisks {
43- return l .NodeTypes [i ].NodeInstanceType .LocalDisks <
44- l .NodeTypes [j ].NodeInstanceType .LocalDisks
45- }
46- if l .NodeTypes [i ].NodeInstanceType .LocalDiskSizeGB !=
47- l .NodeTypes [j ].NodeInstanceType .LocalDiskSizeGB {
48- return l .NodeTypes [i ].NodeInstanceType .LocalDiskSizeGB <
49- l .NodeTypes [j ].NodeInstanceType .LocalDiskSizeGB
50- }
51- }
52- if l .NodeTypes [i ].MemoryMB != l .NodeTypes [j ].MemoryMB {
53- return l .NodeTypes [i ].MemoryMB < l .NodeTypes [j ].MemoryMB
54- }
55- if l .NodeTypes [i ].NumCores != l .NodeTypes [j ].NumCores {
56- return l .NodeTypes [i ].NumCores < l .NodeTypes [j ].NumCores
57- }
58- if l .NodeTypes [i ].NumGPUs != l .NodeTypes [j ].NumGPUs {
59- return l .NodeTypes [i ].NumGPUs < l .NodeTypes [j ].NumGPUs
60- }
61- return l .NodeTypes [i ].InstanceTypeID < l .NodeTypes [j ].InstanceTypeID
6249 })
6350}
6451
0 commit comments