in gcloud/computeengine.go [231:260]
func (c *Client) MachineTypeListByFamily(imgs *compute.MachineTypeList, family string) LabeledValues {
lb := LabeledValues{}
tempTypes := []compute.MachineType{}
for _, v := range imgs.Items {
if strings.Contains(v.Name, family) {
tempTypes = append(tempTypes, *v)
}
}
sort.Slice(tempTypes, func(i, j int) bool {
return tempTypes[i].GuestCpus < tempTypes[j].GuestCpus
})
for _, v := range tempTypes {
if strings.Contains(v.Name, family) {
value := v.Name
label := fmt.Sprintf("%s %s", v.Name, v.Description)
lb = append(lb, LabeledValue{
Value: value,
Label: label,
IsDefault: false,
})
}
}
lb.SetDefault(lb[0].Value)
return lb
}