in pkg/csi_driver/controller.go [363:383]
func pickZoneFromTopology(top *csi.TopologyRequirement) (string, error) {
reqZones, err := getZonesFromTopology(top.GetRequisite())
if err != nil {
return "", fmt.Errorf("could not get zones from requisite topology: %w", err)
}
prefZones, err := getZonesFromTopology(top.GetPreferred())
if err != nil {
return "", fmt.Errorf("could not get zones from preferred topology: %w", err)
}
if len(prefZones) == 0 && len(reqZones) == 0 {
return "", errors.New("both requisite and preferred topology list empty")
}
if len(prefZones) != 0 {
return prefZones[0], nil
}
return reqZones[0], nil
}