func validateFlags()

in spanner_prober/main.go [174:224]


func validateFlags() []error {
	var errs []error

	projectRegex, err := regexp.Compile(`^[-_:.a-zA-Z0-9]*$`)
	if err != nil {
		return []error{err}
	}
	instanceDBRegex, err := regexp.Compile(`^[-_.a-zA-Z0-9]*$`)
	if err != nil {
		return []error{err}
	}

	// We limit qps to < 1000 to ensure we don't overload Spanner accidentally.
	if *qps <= 0 || *qps > 1000 {
		errs = append(errs, fmt.Errorf("qps must be 1 <= qps <= 1000, was %v", *qps))
	}

	if *numRows <= 0 {
		errs = append(errs, fmt.Errorf("num_rows must be > 0, was %v", *numRows))
	}

	if *payloadSize <= 0 {
		errs = append(errs, fmt.Errorf("payload_size must be > 0, was %v", *payloadSize))
	}

	if matched := projectRegex.MatchString(*project); !matched {
		errs = append(errs, fmt.Errorf("project did not match %v, was %v", projectRegex, *project))
	}

	if matched := projectRegex.MatchString(*opsProject); !matched {
		errs = append(errs, fmt.Errorf("ops_project did not match %v, was %v", projectRegex, *opsProject))
	}

	if matched := instanceDBRegex.MatchString(*instance_name); !matched {
		errs = append(errs, fmt.Errorf("instance did not match %v, was %v", instanceDBRegex, *instance_name))
	}

	if matched := instanceDBRegex.MatchString(*database_name); !matched {
		errs = append(errs, fmt.Errorf("database did not match %v, was %v", instanceDBRegex, *database_name))
	}

	if matched := instanceDBRegex.MatchString(*instanceConfig); !matched {
		errs = append(errs, fmt.Errorf("instance_config did not match %v, was %v", instanceDBRegex, *instanceConfig))
	}

	if _, err := proberlib.ParseProbeType(*probeType); err != nil {
		errs = append(errs, err)
	}

	return errs
}