(nodes []*api.Node)
| 609 | } |
| 610 | |
| 611 | func cloneAndSortStorageNodes(nodes []*api.Node) []*api.Node { |
| 612 | cloned := make([]*api.Node, 0, len(nodes)) |
| 613 | cloned = append(cloned, nodes...) |
| 614 | sort.Slice(cloned, func(i, j int) bool { |
| 615 | if cloned[i].Name == cloned[j].Name { |
| 616 | return cloned[i].SourceProfile < cloned[j].SourceProfile |
| 617 | } |
| 618 | return cloned[i].Name < cloned[j].Name |
| 619 | }) |
| 620 | return cloned |
| 621 | } |
| 622 | |
| 623 | func selectionKey(node *api.Node, storage *api.Storage) string { |
| 624 | if node == nil { |