func doUpgradeTakeOver(stateless bool, b backend.Backend, cb config.Backend) error { var wg sync.WaitGroup nodes, err := listPublishedServices(cb) if err != nil { return err } b.Stop([]string{"publisher"}, &wg, Stdout, Stderr) wg.Wait() b.Destroy([]string{"publisher"}, &wg, Stdout, Stderr) wg.Wait() if err := republishServices(1800, nodes, cb); err != nil { return err } b.RollingRestart("router", &wg, Stdout, Stderr) wg.Wait() b.Create([]string{"publisher"}, &wg, Stdout, Stderr) wg.Wait() b.Start([]string{"publisher"}, &wg, Stdout, Stderr) wg.Wait() installUpgradeServices(b, stateless, &wg, Stdout, Stderr) wg.Wait() startUpgradeServices(b, stateless, &wg, Stdout, Stderr) wg.Wait() return nil }
// RollingRestart restart instance unit in a rolling manner func RollingRestart(target string, b backend.Backend) error { var wg sync.WaitGroup b.RollingRestart(target, &wg, Stdout, Stderr) wg.Wait() return nil }