in pkg/selector/emr.go [56:134]
func (e EMR) getEMRInstanceTypes(version semver.Version) ([]string, error) {
instanceTypes := []string{}
for _, instanceType := range e.getAllEMRInstanceTypes() {
if semver.MustParseRange(">=5.33.0")(version) {
instanceTypes = append(instanceTypes, instanceType)
} else if semver.MustParseRange(">=5.25.0 <5.33.0")(version) {
if e.isOnlyEMR_5_33_0_plus(instanceType) {
continue
}
instanceTypes = append(instanceTypes, instanceType)
} else if semver.MustParseRange(">=5.20.0 <5.25.0")(version) {
if e.isOnlyEMR_5_25_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_33_0_plus(instanceType) {
continue
}
instanceTypes = append(instanceTypes, instanceType)
} else if semver.MustParseRange(">=5.15.0 <5.20.0")(version) {
if instanceType == "c1.medium" {
continue
}
if e.isOnlyEMR_5_20_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_25_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_33_0_plus(instanceType) {
continue
}
instanceTypes = append(instanceTypes, instanceType)
} else if semver.MustParseRange(">=5.13.0 <5.15.0")(version) {
if e.isOnlyEMR_5_20_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_25_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_33_0_plus(instanceType) {
continue
}
instanceTypes = append(instanceTypes, instanceType)
} else if semver.MustParseRange(">=5.9.0 <5.13.0")(version) {
if e.isEMR_5_13_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_20_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_25_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_33_0_plus(instanceType) {
continue
}
instanceTypes = append(instanceTypes, instanceType)
} else {
if e.isEMR_5_13_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_20_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_25_0_plus(instanceType) {
continue
}
if e.isOnlyEMR_5_33_0_plus(instanceType) {
continue
}
if strings.HasPrefix(instanceType, "i3") {
continue
}
instanceTypes = append(instanceTypes, instanceType)
}
}
return instanceTypes, nil
}