func()

in validate.go [35:66]


func (w *Workflow) validateRequiredFields() DError {
	if w.Name == "" {
		return Errf("must provide workflow field 'Name'")
	}
	if !rfc1035Rgx.MatchString(strings.ToLower(w.Name)) {
		return Errf("workflow field 'Name' must start with a letter and only contain letters, numbers, and hyphens")
	}
	if w.Project == "" {
		return Errf("must provide workflow field 'Project'")
	}
	if exists, err := projectExists(w.ComputeClient, w.Project); err != nil {
		return Errf("bad project lookup: %q, error: %v", w.Project, err)
	} else if !exists {
		return Errf("project does not exist: %q", w.Project)
	}
	if w.Zone != "" {
		if exists, err := w.zoneExists(w.Project, w.Zone); err != nil {
			return Errf("bad zone lookup: %q, error: %v", w.Zone, err)
		} else if !exists {
			return Errf("zone does not exist: %q", w.Zone)
		}
	}
	if len(w.Steps) == 0 {
		return Errf("must provide at least one step in workflow field 'Steps'")
	}
	for name := range w.Steps {
		if name == "" {
			return Errf("no name defined for Step %q", name)
		}
	}
	return nil
}