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
}