in fixtures.go [558:604]
func (t *TestVM) Reboot() error {
// TODO: better solution than a shared counter for name collisions.
t.testWorkflow.counter++
stepSuffix := fmt.Sprintf("%s-%d", t.name, t.testWorkflow.counter)
lastStep, err := t.testWorkflow.getLastStepForVM(t.name)
if err != nil {
return fmt.Errorf("failed resolve last step")
}
stopInstancesStep, err := t.testWorkflow.addStopStep(stepSuffix, t.name)
if err != nil {
return err
}
if err := t.testWorkflow.wf.AddDependency(stopInstancesStep, lastStep); err != nil {
return err
}
waitStopStep, err := t.testWorkflow.addWaitStoppedStep("stopped-"+stepSuffix, t.name)
if err != nil {
return err
}
if err := t.testWorkflow.wf.AddDependency(waitStopStep, stopInstancesStep); err != nil {
return err
}
startInstancesStep, err := t.testWorkflow.addStartStep(stepSuffix, t.name)
if err != nil {
return err
}
if err := t.testWorkflow.wf.AddDependency(startInstancesStep, waitStopStep); err != nil {
return err
}
waitStartedStep, err := t.testWorkflow.addWaitStep("started-"+stepSuffix, t.name)
if err != nil {
return err
}
if err := t.testWorkflow.wf.AddDependency(waitStartedStep, startInstancesStep); err != nil {
return err
}
return nil
}