func()

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
}