func (d *Deployment) destroyUnits(f scheduler.Scheduler, units []string, ui *stateUI) error { if len(units) == 0 { return maskAny(fmt.Errorf("No units on cluster: %s", d.cluster.Stack)) } ui.MessageSink <- fmt.Sprintf("Stopping %d unit(s)", len(units)) stats, err := f.Stop(ui.EventSink, units...) if err != nil { ui.Warningf("Warning: stop failed.\n%s\n", err.Error()) } if stats.StoppedGlobalUnits > 0 { InterruptibleSleep(ui.MessageSink, d.StopDelay, "Waiting for %s...") } ui.MessageSink <- fmt.Sprintf("Destroying %d unit(s)", len(units)) if err := f.Destroy(ui.EventSink, units...); err != nil { return maskAny(err) } return nil }