in step_wait_for_instances_signal.go [430:455]
func validateForWaitForInstancesSignal(w *[]*InstanceSignal, s *Step) DError {
// Instance checking.
for _, i := range *w {
if _, err := s.w.instances.regUse(i.Name, s); err != nil {
return err
}
if i.interval == 0*time.Second {
return Errf("%q: cannot wait for instance signal, no interval given", i.Name)
}
if i.Stopped && len(i.Status) > 0 {
return Errf("%q: Stopped and Status cannot be set simultaneously", i.Name)
}
if i.SerialOutput == nil && i.GuestAttribute == nil && i.Stopped == false && len(i.Status) < 1 {
return Errf("%q: cannot wait for instance signal, nothing to wait for", i.Name)
}
if i.SerialOutput != nil {
if i.SerialOutput.Port == 0 {
return Errf("%q: cannot wait for instance signal via SerialOutput, no Port given", i.Name)
}
if i.SerialOutput.SuccessMatch == "" && len(i.SerialOutput.FailureMatch) == 0 {
return Errf("%q: cannot wait for instance signal via SerialOutput, no SuccessMatch or FailureMatch given", i.Name)
}
}
}
return nil
}