in machine.go [388:416]
func (m *Machine) Start(ctx context.Context) error {
m.logger.Debug("Called Machine.Start()")
alreadyStarted := true
m.startOnce.Do(func() {
m.logger.Debug("Marking Machine as Started")
alreadyStarted = false
})
if alreadyStarted {
return ErrAlreadyStarted
}
var err error
defer func() {
if err != nil {
if cleanupErr := m.doCleanup(); cleanupErr != nil {
m.Logger().Errorf(
"failed to cleanup VM after previous start failure: %v", cleanupErr)
}
}
}()
err = m.Handlers.Run(ctx, m)
if err != nil {
return err
}
err = m.startInstance(ctx)
return err
}