func (w *worker) Undeploy(app spi.Application) error { w.wc.logger.Info("worker.Undeploy(): w=", w) if w.desc.Aid != app.Id() { return errors.New("Cannot undeploy application: expected Id=" + string(app.Id()) + ", but actual one is " + string(w.desc.Aid)) } if err := w.setSA(WS_UNDEPLOYING, spi.NO_APP_ID); err != nil { return err } instance := w.instance() if err := app.Undeploy(instance); err != nil { w.wc.logger.Warn("worker.Undeploy(): got unexpected error=", err, ", ignoring it") } go func() { instance.Stop() w.startInstance(true) }() return nil }