func parseRules()

in src/terraform/providers/terraform-provider-avere/export_rules.go [171:210]


func parseRules(rules string) (exportAccess string, exportSquash string, allowSuid string, allowSubmounts string, err error) {
	exportAccess = ExportAccessDefault
	exportSquash = ExportSquashDefaultArg
	allowSuid = ExportAllowSuidDefault
	allowSubmounts = ExportAllowSubmountsDefault

	var errors strings.Builder

	trimmedRule := strings.Trim(strings.TrimSpace(rules), "()")
	ruleList := strings.Split(trimmedRule, ",")
	for _, r := range ruleList {
		r = strings.TrimSpace(r)
		switch r {
		case ExportAccessReadOnly:
			exportAccess = ExportAccessReadOnly
		case ExportAccessReadWrite:
			exportAccess = ExportAccessReadWrite
		case ExportSquashAll:
			exportSquash = ExportSquashAllArg
		case ExportSquashRoot:
			exportSquash = ExportSquashRootArg
		case ExportSquashNone:
			exportSquash = ExportSquashNoneArg
		case ExportAllowSuid:
			allowSuid = ExportBoolArgYes
		case ExportAllowSubmounts:
			allowSubmounts = ExportBoolArgYes
		case "":
			continue
		default:
			errors.WriteString(fmt.Sprintf("invalid rule: '%s' ", r))
		}
	}

	if errors.Len() > 0 {
		err = fmt.Errorf(errors.String())
	}

	return exportAccess, exportSquash, allowSuid, allowSubmounts, err
}